JavaEE语法第一章、计算机工作原理

news2024/11/25 18:31:34

【计算机科学速成课】[40集全/精校] - Crash Course Computer Science_哔哩哔哩_bilibili

目录

一、计算机发展史

二、冯诺依曼体系(Von Neumann Architecture)

三、CPU简单介绍

3.1CPU介绍

3.2并行和并发

四、操作系统(Operating System) 

4.1操作系统的定位

4.2进程/任务

4.2进程结构体的核心属性(PCB:进程管理快)

 4.3CPU 分配 —— 进程调度(Process Scheduling)

4.4内存分配 —— 内存管理(Memory Manage)

4.4.1操作系统对内存资源的分配

4.4.2虚拟地址空间

4.5进程间通信(Inter Process Communication)

4.6线程


一、计算机发展史

计算的需求在人类的历史中是广泛存在的,发展大体经历了从一般计算工具到机械计算机到目前的电子计算机的发展历程。 

第一代计算机:埃尼阿克,主频5000(每秒计算5000次)

 人类对计算的需求,驱动我们不断的发明、改善计算机。目前这个时代是“电子计算机”的时代,发展的潮流是:更快速、更稳定、更微型。计算机的以后将如何发展,期待大家的努力。


二、冯诺依曼体系(Von Neumann Architecture)

现代的计算机, 大多遵守 冯诺依曼体系结构。

计算机最核心的部分:

CPU、内存、硬盘、主板、散热器、电源、机箱、显卡

 

  • CPU 中央处理器: 进行算术运算和逻辑判断.
  • 存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)
  • 输入设备: 用户给计算机发号施令的设备.
  • 输出设备: 计算机个用户汇报结果的设备. 

针对存储空间
硬盘 > 内存 >> CPU
针对数据访问速度
CPU >> 内存 > 硬盘

认识计算机的祖师爷 -- 冯诺依曼
冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日), 美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是布达佩斯大学数学博士,在现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“现代计算机之父”、“博弈论之父”.


三、CPU简单介绍

3.1CPU介绍

 

  

3.2并行和并发


 四、操作系统(Operating System) 

 操作系统是一组做计算机资源管理的软件的统称。目前常见的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。

4.1操作系统的定位

操作系统由两个基本功能:
1) 防止硬件被时空的应用程序滥用;
2) 向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。 

 

 

4.2进程/任务

每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

4.2进程结构体的核心属性(PCB:进程管理快)

计算机内部要管理任何现实事物,都需要将其抽象成一组有关联的、互为一体的数据。在 Java 语言中,我们可以通过类/对象来描述这一特征。

// 以下代码是 Java 代码的伪码形式,重在说明,无法直接运行
class PCB {
// 进程的唯一标识 —— pid;
// 进程关联的程序信息,例如哪个程序,加载到内存中的区域等
// 分配给该资源使用的各个资源
// 进度调度信息(留待下面讲解)
}

这样,每一个 PCB 对象,就代表着一个实实在在运行着的程序,也就是进程。
操作系统再通过这种数据结构,例如线性表、搜索树等将 PCB 对象组织起来,方便管理时进行增删查改的操作。 

 

 4.3CPU 分配 —— 进程调度(Process Scheduling)

概念:操作系统按照某找策略或规则选择进程占用CPU进行运行的过程

4.4内存分配 —— 内存管理(Memory Manage)

4.4.1操作系统对内存资源的分配

操作系统对内存资源的分配,采用的是空间模式 —— 不同进程使用内存中的不同区域,互相之间不会干扰。

4.4.2虚拟地址空间

 

 

4.5进程间通信(Inter Process Communication)

如上所述,进程是操作系统进行资源分配的最小单位,这意味着各个进程互相之间是无法感受到对方存在的,这就是操作系统抽象出进程这一概念的初衷,这样便带来了进程之间互相具备”隔离性
(Isolation)“。但现代的应用,要完成一个复杂的业务需求,往往无法通过一个进程独立完成,总是需要进程和进程进行配合地达到应用的目的,如此,进程之间就需要有进行“信息交换“的需求。进程间通信的需求就应运而生。目前,主流操作系统提供的进程通信机制有如下: 

1. 管道
2. 共享内存
3. 文件
4. 网络
5. 信号量
6. 信号

其中,网络是一种相对特殊的 IPC 机制,它除了支持同主机两个进程间通信,还支持同一网络内部非同一主机上的进程间进行通信。

4.6线程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【netty基础四】netty与nio

文章目录 一. 反应堆1. 堵塞模型2. Java NIO的工作原理 二. Netty与NIO 一. 反应堆 1. 堵塞模型 阻塞I/O在调用InputStream.read()方法时是阻塞的,它会一直等到数据到来(或超时)时才会返回; 同样,在调用ServerSocke…

PN7160 card emulation

AN13861.pdf 1 简介 本文档的目的是举例说明如何为特定的 CE 场景正确设置卡仿真 (CE)。 有关 CE 体系结构的详细说明,请查看用户手册 [5]。 卡仿真的硬件设置,参考[13]和[14]。 要求: • MCUXpresso 和/或Android 和/或Linux 的知识 • PN…

[游戏开发]Unity多边形分割为三角形_耳切法

[ 目录 ] 0. 前言1. 耳切法(1)基础的概念(2)耳点判断(3)判断角度类型(4)点是否在三角形内(5)判断顺逆时针 2. 耳切法小优化3. 耳切法实现(1&#…

openGauss5 企业版之常用运维命令

文章目录 日维护检查项检查openGauss状态检查锁信息统计事件数据对象检查SQL报告检查备份基本信息检查 检查操作系统参数检查办法异常处理 检查openGauss健康状态检查办法 本章节主要介绍在 openGauss数据库 在日常运维中的常用命令 日维护检查项 检查openGauss状态 通过open…

Java性能权威指南-总结13

Java性能权威指南-总结13 堆内存最佳实践减少内存使用减少对象大小延迟初始化 堆内存最佳实践 减少内存使用 减少对象大小 对象会占用一定数量的堆内存,所以要减少内存使用,最简单的方式就是让对象小一些。考虑运行程序的机器的内存限制,增…

Nautilus Chain测试网迎阶段性里程碑,模块化区块链拉开新序幕

Nautilus Chain 是目前行业内少有的真实实践的 Layer3 模块化链,该链曾在几个月前上线了测试网,并接受用户测试交互。该链目前正处于测试网阶段,并即将在不久上线主网,这也将是行业内首个正式上线的模块化区块链底层。 而在上个月…

Android 13(T) Media框架 -异步消息机制

网上有许多优秀的博文讲解了Android的异步消息机制(ALooper/AHandler/AMessage那一套),希望看详细代码流程的小伙伴可以去网上搜索。这篇笔记将会记录我对android异步消息机制的理解,这次学完之后就可以熟练运用这套异步消息机制了…

【数据库二】数据库用户管理与授权

数据库用户管理与授权 1.MySQL数据库管理1.1 常用的数据类型1.2 char和varchar区别1.3 SQL语句分类 2.数据表高级操作2.1 克隆表2.2 清空表2.3 创建临时表 3.MySQL的六大约束4.外键约束4.1 外键概述4.2 创建主从表4.3 主从表中插入数据4.4 主从表中删除数据4.5 删除外键约束 5.…

conda环境中配置cuda+cudnn+pytorch深度学习环境

本文参考: 在conda虚拟环境中配置cudacudnnpytorch深度学习环境(新手必看!简单可行!)_conda安装cudnn_江江ahh的博客-CSDN博客 一、创建虚拟环境 conda create -n mytorch python3.8 二、执行sudo nvidia-smi查看CU…

物联网通信技术

通信的技术指标是什么?AB A. 可靠性 B. 有效性 C. 实时性D. 广覆盖 多路复用技术有哪些?ABCD A. FDMA B. CDMA C. SDMA D. TDMA 使用多个频率来传输信号的技术被称为扩展频谱技术,该技术使用的目的是什么? AB A. 抗干扰B. 提…

【VMware】VMware安装CentOS8-Stream虚拟机

本文首发于 慕雪的寒舍 VMware安装CentOS8-Stream虚拟机 1.安装VMware 由于最新版的vm要钱,这里提供一个VMware16pro的安装包;我知道度盘下载速度慢,但确实没啥其他选择,见谅。 后文将用vm来简称VMware 提取嘛: gdt9 亚索包解…

解决UGUI的图集导致Shader采样时UV错误的问题

大家好,我是阿赵。 在我们用UGUI的时候,很多时候需要通过在UI上面挂材质球,写Shader,来实现一些特殊的效果。 这里句一个很简单的例子,只为说明问题。 一、简单例子说明 这个例子是这样的,我想在某个Imag…

Python模块openpyxl 操作Excel文件

简介 openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。openpyxl以Python语言和MIT许可证发布。 openpyxl可以处理Excel文件中的绝大多数内容,包括图表、图像和公式。它可以处理大量数据,支持Pandas和NumPy库导入和导出数据。…

chatgpt赋能python:Python本地安装库:一个简单易懂的指南

Python本地安装库:一个简单易懂的指南 Python是一种高级的编程语言,它拥有庞大的社区支持和无数的第三方库。如果你在使用Python时需要一些额外的功能,那么你可能需要安装一些库。本文将介绍如何在本地安装库,以及一些需要注意的…

chatgpt赋能python:如何更新Python库?Python更新库完全指南

如何更新Python库?Python更新库完全指南 Python作为一种最受欢迎的编程语言,其库和工具的数量是惊人的。这些库是Python生态系统的重要组成部分,以便帮助开发人员解决不同类型的问题。然而,这些库会更新,开发人员需要…

什么是椭圆曲线上的加法

椭圆曲线图形示例 注意,椭圆曲线随着你参数的不同,有不同的形态,这里仅是一种示例,详细的关于椭圆曲线的知识可以后附扩展知识连接 椭圆曲线上的加法 椭圆曲线上的加法不是我们通常意义上的数值加法,而是一种特殊的几…

干翻Mybatis源码系列之第十篇:Mybatis Plugins基本概念

给自己的每日一句 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽…

Oracle中的行列互转———pivot、unpivot函数用法

一、需求说明 项目开发过程中涉及到oracle数据库的数据操作;但是需要将数据进行列的互转,通过查阅资料可知在oracle中有三种方式可以实现行列互转: ①使用decode 函数; ②使用case when 函数; ③使用pivot函数&…

Linux之设置主机名

目录 Linux之设置主机名 查看主机名 语法格式 案例 修改主机名 语法格式 案例 --- 修改静态主机名为joker 配置静态解析 为Linux主机指派域名解析 Linux之设置主机名 查看主机名 语法格式 hostnamectl [status] [--static|--transient|--pretty] 解析: s…

极致呈现系列之:Echarts地图的浩瀚视野(一)

目录 Echarts中的地图组件地图组件初体验下载地图数据准备Echarts的基本结构导入地图数据并注册展示地图数据结合visualMap展示地图数据 Echarts中的地图组件 Echarts中的地图组件是一种用于展示地理数据的可视化组件。它可以显示全国、各省市和各城市的地图,并支持…