文章目录1. 冯诺依曼体系VonNeumann Architecture)2. CPU 基本工作流程2.1 寄存器(Register)和 内存(RAM)2.2 控制单元 CU(ControlUnit)2.3 指令Instruction)3. 操作系统OperatingSystem)3.1 操作系统的定位3.2 什么是进程/任务(Process/Task)3.3 进程控制块抽象(PCB Process Control Block)3.4 内存分配-内存管理(Memory Manage)3.5 进程间通信(InterProcessCommunication)话不多说我们就不扯什么计算机发展史了感兴趣的可以自行百度。我们直接进入正题了。1. 冯诺依曼体系VonNeumann Architecture)• CPU中央处理器由运算器和控制器组成CPU是电脑最核心的部分。1. 运算器执行指令完成计算工作。2. 控制器协调指令执行顺序。• 存储器:分为外存和内用于存储数据(使用二进制方式存储)。• 输入设备用户给计算机发号施令的设备(键盘、鼠标、扫描仪…)。• 输出设备计算机个用户汇报结果的设备显示器、音响、打印机。针对存储空间硬盘 内存 CPU针对数据访问速度CPU 内存 硬盘拜见两位计算机祖师爷–冯诺依曼 图灵2. CPU 基本工作流程当今两大CPU巨头英特尔公司和AMD公司。现代CPU的主要指标:这是我的电脑CPU以我的电脑为例。我们主要看下面这些部分基准速度也叫基频2.40GHzG相当于10^9 10亿表示此时这个CPU每秒进行24亿次计算。速度加速频率2.42GHz 。内核核心数CPU 中实际的物理处理单元。每个内核都可以独立地执行指令和处理数据。逻辑处理器逻辑处理器是操作系统和应用程序所看到的处理单元。在现代 CPU 中通过超线程Hyper - Threading技术可以将一个物理核心模拟成两个逻辑处理器。逻辑处理器数量 内核数量 × 每个内核通过超线程模拟出的逻辑处理器数量。我的笔记本电脑中的核心数有14个但是显示我的逻辑处理器不是28个而是20个。这代表着并不是所有的内核都开启了超线程技术或者超线程技术没有完全将每个内核模拟成两个逻辑处理器。频率和核心数都是影响CPU性能的重要指标。2.1 寄存器(Register)和 内存(RAM)寄存器属于存储器的一部分只不过是封装到了CPU里面。CPU中使用比较频繁的值或者运算过程中生成的中间值都会存放在寄存器中。硬盘内存寄存器容量最大最小速度最慢最快造价最低最高CPU 中寄存器的数量因架构、性能需求和应用场景等因素而异从十几个到几十个不等。2.2 控制单元 CU(ControlUnit)控制单元负责指令的调度哪些应该让CPU执行。负责指挥和协调计算机各个部件之间的工作确保计算机能够有条不紊地执行指令。2.3 指令Instruction)计算机的主要任务就是执行命令。电脑中我们安装好的App其实就是编译好的一堆指令。指令本身也是一个数字用二进制的形式保存在内存的某个区域中。3. 操作系统OperatingSystem)操作系统是⼀组做计算机资源管理的软件的统称。⽬前常⻅的操作系统有Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。3.1 操作系统的定位操作系统有两个基本功能1. 防止硬件被失控的应用程序滥用。2. 向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。操作系统如何管理进行中的程序对下硬件管理各种计算机设备。对上软件为软件提供一个稳定的运行环境。3.2 什么是进程/任务(Process/Task)进程是操作系统对⼀个正在运⾏的程序的⼀种抽象换⾔之可以把进程看做程序的⼀次运⾏过程同时在操作系统内部进程⼜是操作系统进行资源分配的基本单位。*每一个运行的程序在操作系统里都对应着一个进程。*程序安装完之后在系统中都是静态文件存放在磁盘中双击之后从磁盘加载到内存系统就会创建一个这个程序对应的进程这时程序就运行起来了。进程可以分为前台进程用户执行的进程后台进程系统创建的进程。操作系统本身也是一个程序它也创建了很多进程。3.3 进程控制块抽象(PCB Process Control Block)计算机同时可以跑很多个进程几百个这时就需要对进程进行管理。描述我们使用C语言中的结构体Java中的类定义进程的核心属性。PIDPID相当于数据表中的主键也相当于人的身份证号在操作系统中全局唯一。内存指针当程序运行时操作系统从磁盘中加载程序文件到内存中在程序运行之前就要在内存分配一片有效的空间。在内存中的数据与指令最终被CPU执行和读取。文件描述符表当程序运行起来之后需要访问一些文件资源这时操作系统就负责给程序分配这些资源程序需要的每个文件就被称为文件描述符多个文件描述符复合在一起就组成了文件描述符表类似于一个集合。默认每个程序运行时都会分配三个文件描述符标准输入System.in标准输出System.out标准错误System.error进程调度进程状态运行状态当前在CPU上正在执行指令。就绪状态排队中随叫随到随时可以上CPU运行。一般将运行状态和就绪状态理解为一个状态。阻塞状态当前不适合到CPU上执行。当前电脑上有百十个进程但是只有20个逻辑处理器也就意味着可以通过是处理20个指令。一个逻辑处理器并不是一次把一个进程执行完再去执行另一个进程而是一个进程执行一会就让它休息一会再去执行另一个进程这样不停的轮换着执行由于CPU的频率很高轮换的速度也很快人察觉不到而已。并发与并行进程优先级哪个进程有更多机会到CPU上运行优先级就越高机会就越大。进程的上下文进程调度的过程中进程一会失去了CPU一会又回到CPU上继续执行回到CPU之后要沿着上次的状态继续执行而不是从头开始。失去CPU时进程的中间值当前执行的指令是什么下一条指令是什么中间产生的一些变量从寄存器 — 内存中。回到CPU中时从内存中 — 寄存器。保存上下文–读档 回复上下文–存档。进程的记账信息统计功能统计每个进程在CPU上运行了多久哪些进程多长时间没有上CPU运行了。进程的组织方式通过一个双向链表来组织PCB1. 创建一个进程-------把PCB加入到链表中。2. 销毁一个进程-------把PCB从链表中删除。3. 查看所有的进程-------遍历双向链表。3.4 内存分配-内存管理(Memory Manage)操作系统为了防止野指针使用了虚拟内存来规避这个现象通过内存管理单元MMU的方式来实现。3.5 进程间通信(InterProcessCommunication)