1. CPU 的管理
CPU的工作原理:
从内存中取出程序的指令, 执行程序中的指令;
1.1 多道程序
假设A 程序运行时, 遇到 IO
处理时, 为了能够执行A 程序的后续指令, 正常情况下 cpu 需要等待着IO
处理完成, 而这个等待的期间 CPU 是闲置着,
为了提高cpu 的利用率,
同时运行程序A 和程序B,
当程序A 需要处理 IO
时, 此时,跳出程序A, 去执行程序B, 这样CPU 就不需要等待着, 从而可以继续执行 指令;
1.2 进程的概念
当一个程序运行起来时, 其中包含了多个信息,比方运行到某个时间节点时, 该程序中多个寄存器的数值。
为了区别 运行中的程序和 静态程序,
将运行中的程序 定义为 进程
, 即进行中的程序。
1.3 PCB 的作用
然而多道程序并发, 这样引出另外一个问题,
当cpu 从程序B 返回到 程序A 继续执行时, 应该从 程序A 的何处地方开始执行?
这就需要,当CPU从 程序A 切换出去时, 需要保存当时程序A运行的现场信息,
比如CPU 跳出时, 运行到程序A 哪个地址了, 此时程序A 中所对应的各个寄存器存放的数值为多少;
为了将 一个运行中的程序所包含的上述信息保存起来,引入了PCB的概念, 即将上述信息存放在 PCB
的数据结构中。
1.4 进程五种基本状态
-
创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态
-
就绪状态:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行
-
执行状态:进程处于就绪状态被调度后,进程进入执行状态
-
阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用
-
终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行。
如果进程运行时间片使用完也会进入就绪状态。
另外为用户观察需要,进程还有挂起和激活两种操作。挂起后进程处于静止状态进程不再被系统调用,对于操作是激活操作。
1.5 小结
当CPU 只执行一个 程序时, 遇到IO
处理的任务时, 此时,CPU会闲置等待着,
所以, 为了提高 CPU的利用率, CPU 同时执行 多个 程序,
从而引入 进程, PCB 数据结构 这两个重要的概念;
2. os 管理多个进程
使用进程控制模块 PCB
, process control block, 来管理多个进程,