CPU,中央处理器,是计算机系统的运算和控制中心,是信息处理、程序运行的最终执行单元。
程序,最终都会变成计算机指令
,然后被CPU调度执行
。
CPU分为:运算器、控制器、高速缓冲存储器。
运算器
,包含:算术运算器
、逻辑运算器
,是用来实现加减乘除、与或非、移位、异或等的运算器。
控制器
,包含:指令寄存器
、程序计数器
、操作控制器
,是用来指挥各个部件,按照计算机指令的要求协调工作的部件,是计算机的神经中枢
和指挥中心
。指令寄存器
:用来保存当前执行或者即将要执行的指令的寄存器。程序计数器
:用来指明程序下一次要执行的指令的地址。操作控制器
:根据指令操作码和时序信号,产生各自操作信号,以便正确地创建数据链路,从而完成取指令和执行指令的控制。
高速缓冲存储器
,位于主存和CPU之间的一级缓存,容量小,但是速度比主存快。
有了CPU之后,那么就需要利用调度算法去让CPU调度程序了。
CPU调度是多道程序操作系统的基础,通过在进程间转换CPU,操作系统可以提高计算机的生产力。
为了极尽CPU所能
,操作系统不会让CPU闲着,一旦就绪队列
中有新的进程,将被CPU调度,然后移交CPU使用权
执行,而CPU如何从就绪队列
中获取要执行的进程任务,就依赖于调度算法
。
CPU也不是随便就能调度的,需要等待时机
。
- 当进程从
运行
状态转换为等待
状态。 - 当进程从
运行
状态转换为就绪
状态。 - 当进程从
等待
状态转换为就绪
状态。 - 当进程
终止
的时候。
衡量CPU调度算法也是有指标
的。
- CPU利用率
- 吞吐量
- 周转时间
- 等待时间
- 响应时间
理想的情况是,CPU利用率、吞吐量最大化
,周转时间、等待时间、响应时间最小化
。
围绕以上指标,产生了一些CPU调度算法
。
CPU调度,决定了哪个进程会被从就绪队列中拿出来,并被分配CPU资源。
CPU就绪队列
作为一个队列,可以通过FIFO
、优先级
、树
、无序
来实现。
调度算法分为:
- 先来先服务算法
按照进入队列的顺序,一个一个调度。 - 短作业优先算法
本质上也是优先调度算法,根据CPU Burst排序。 - 优先调度算法
为每一进程配置优先级,根据优先级排序。 - 轮转调度算法
分配时间片,循环调度队列中的进程。 - 多级队列调度算法
将反馈队列分为多个队列,采用不同调度算法。 - 多级队列反馈调度算法
根据CPU Burst调整进程应该所处带有不同优先级的队列。