0%

操作系统 - CPU

CPU,中央处理器,是计算机系统的运算和控制中心,是信息处理、程序运行的最终执行单元。

CPU

程序,最终都会变成计算机指令,然后被CPU调度执行

CPU分为:运算器、控制器、高速缓冲存储器。

运算器,包含:算术运算器逻辑运算器,是用来实现加减乘除、与或非、移位、异或等的运算器。

控制器,包含:指令寄存器程序计数器操作控制器,是用来指挥各个部件,按照计算机指令的要求协调工作的部件,是计算机的神经中枢指挥中心
指令寄存器:用来保存当前执行或者即将要执行的指令的寄存器。
程序计数器:用来指明程序下一次要执行的指令的地址。
操作控制器:根据指令操作码和时序信号,产生各自操作信号,以便正确地创建数据链路,从而完成取指令和执行指令的控制。

高速缓冲存储器,位于主存和CPU之间的一级缓存,容量小,但是速度比主存快。

有了CPU之后,那么就需要利用调度算法去让CPU调度程序了。

CPU调度是多道程序操作系统的基础,通过在进程间转换CPU,操作系统可以提高计算机的生产力。

为了极尽CPU所能,操作系统不会让CPU闲着,一旦就绪队列中有新的进程,将被CPU调度,然后移交CPU使用权执行,而CPU如何从就绪队列中获取要执行的进程任务,就依赖于调度算法

CPU也不是随便就能调度的,需要等待时机

  • 当进程从运行状态转换为等待状态。
  • 当进程从运行状态转换为就绪状态。
  • 当进程从等待状态转换为就绪状态。
  • 当进程终止的时候。

衡量CPU调度算法也是有指标的。

  • CPU利用率
  • 吞吐量
  • 周转时间
  • 等待时间
  • 响应时间

理想的情况是,CPU利用率、吞吐量最大化,周转时间、等待时间、响应时间最小化

cpu-mark

围绕以上指标,产生了一些CPU调度算法

CPU调度,决定了哪个进程会被从就绪队列中拿出来,并被分配CPU资源。

CPU就绪队列作为一个队列,可以通过FIFO优先级无序来实现。

调度算法分为:

  • 先来先服务算法
    按照进入队列的顺序,一个一个调度。
  • 短作业优先算法
    本质上也是优先调度算法,根据CPU Burst排序。
  • 优先调度算法
    为每一进程配置优先级,根据优先级排序。
  • 轮转调度算法
    分配时间片,循环调度队列中的进程。
  • 多级队列调度算法
    将反馈队列分为多个队列,采用不同调度算法。
  • 多级队列反馈调度算法
    根据CPU Burst调整进程应该所处带有不同优先级的队列。