文章目录
1.冯诺依曼体系(Von Neumann Architecture)2.CPU 基本⼯作流程2.1 指阶段(Fetch)2.2解码阶段(Decode)2.3执行阶段(Execute)2.4 写回阶段(Write Back)
3.什么是进程/任务(Process/Task)3.1概念:3.2一个进程/任务通常包含以下几个部分:3.3进程/任务的特点:3.4进程/任务与线程 (Thread) 的区别:
4.CPU 分配⸺进程调度(Process Scheduling)5.内存分配⸺内存管理(Memory Manage)
1.冯诺依曼体系(Von Neumann Architecture)
现代的计算机, ⼤多遵守 冯诺依曼体系结构 •CPU 中央处理器: 进⾏算术运算和逻辑判断. • 存储器: 分为外存和内存, ⽤于存储数据(使⽤⼆进制⽅式存储) • 输⼊设备: ⽤户给计算机发号施令的设备. • 输出设备: 计算机个⽤户汇报结果的设备
针对储存空间: 磁盘>内存>>CPU 针对运行速度: CPU>>内存>磁盘
2.CPU 基本⼯作流程
2.1 指阶段(Fetch)
目标:从内存中读取下一条指令。 流程:程序计数器(PC) 保存当前指令的地址,CPU根据该地址向内存发出请求。 内存通过数据总线将指令传输到CPU的指令寄存器(IR)。PC自动递增,指向下一条指令的地址(除非遇到跳转指令)。
2.2解码阶段(Decode)
目标:解析指令含义,确定操作类型和操作数。 流程:控制单元(CU) 解析指令寄存器中的二进制指令,识别操作码(Opcode)(如加法、跳转等)和操作数(如寄存器地址或内存地址)。确定操作数的来源(例如从寄存器或内存读取数据)。
2.3执行阶段(Execute)
目标:执行指令对应的操作。 流程:算术逻辑单元(ALU) 执行计算(如加减乘除、逻辑运算等)。若需访问内存(如加载/存储数据),通过内存控制器读写内存。若为跳转指令(如条件分支、函数调用),更新**程序计数器(PC)**为目标地址,打破指令顺序。
2.4 写回阶段(Write Back)
目标:将执行结果保存到寄存器或内存。 流程:将ALU的计算结果写入目标寄存器(例如将加法结果存入指定寄存器)。 若为存储指令,将数据写入内存指定位置。 关键组件协作程序计数器(PC):跟踪指令地址,驱动指令顺序执行。 指令寄存器(IR):暂存当前指令。 控制单元(CU):解码指令并协调各部件。 算术逻辑单元(ALU):执行核心运算。 寄存器组:高速存储中间数据和地址。
3.什么是进程/任务(Process/Task)
3.1概念:
程序 (Program): 程序是一组指令的集合,存储在磁盘上,是静态的。 例如,一个可执行文件 (.exe, .app 等)。 进程/任务 (Process/Task): 进程是程序在内存中运行的一个实例,是动态的。 当一个程序被执行时,操作系统会创建一个进程来运行它。 进程/任务包含的内容:
3.2一个进程/任务通常包含以下几个部分:
程序代码 (Code): 程序的指令序列,告诉 CPU 要执行什么操作。 数据 (Data): 程序运行过程中需要使用的变量、数据结构等。 堆 (Heap): 动态分配的内存区域,用于存储程序运行时创建的对象和数据。 栈 (Stack): 用于存储函数调用信息、局部变量等。 栈是后进先出 (LIFO) 的数据结构。 程序计数器 (PC): 指向下一条要执行的指令的地址。 寄存器 (Registers): CPU 内部的存储单元,用于存储临时数据和控制信息。 文件描述符 (File Descriptors): 用于访问文件、网络连接等资源。 进程 ID (PID): 操作系统为每个进程分配的唯一标识符。
进程状态 (Process State): 表示进程当前的状态,例如: 新建 (New): 进程正在被创建。 就绪 (Ready): 进程已准备好运行,等待 CPU 调度。 运行 (Running): 进程正在 CPU 上执行。 阻塞/等待 (Blocked/Waiting): 进程正在等待某个事件发生 (例如,I/O 完成)。 终止 (Terminated): 进程已执行完毕。
3.3进程/任务的特点:
独立性 (Isolation): 进程之间是相互独立的,拥有独立的地址空间,一个进程的错误不会影响其他进程。 并发性 (Concurrency): 多个进程可以同时运行,共享 CPU 和其他资源。 操作系统通过时间片轮转等调度算法来实现并发。 动态性 (Dynamic): 进程是动态创建和销毁的。 资源拥有性 (Resource Ownership): 进程拥有程序运行所需的各种资源,例如内存、文件、网络连接等。
3.4进程/任务与线程 (Thread) 的区别:
进程 是资源分配的基本单位。 线程 是 CPU 调度的基本单位。 一个进程可以包含多个线程。 线程共享进程的地址空间和资源,但拥有独立的栈和程序计数器。 线程之间的切换比进程之间的切换更快,因为线程共享相同的地址空间,不需要进行内存切换。
4.CPU 分配⸺进程调度(Process Scheduling)
为了便于讨论和理解,我们⼤部分的场景下假设是单CPU单核的计算机。 操作系统对CPU资源的分配,采⽤的是时间模式⸺不同的进程在不同的时间段去使⽤ CPU 资源。
5.内存分配⸺内存管理(Memory Manage)
操作系统对内存资源的分配,采⽤的是空间模式⸺不同进程使⽤内存中的不同区域,互相之间不会⼲扰。