1 内容概览
这是第二章的第二部分内容基本上讲了以下几个内容:
- 什么是处理机调度,处理机调度大致可以分为几种?
- 处理机在什么情况下进行调度?
- 常见的处理机调度算法是什么,基于什么样的标准进行调度?
原文件(第二章所有)在这里。不仅有思维导图的原文件,还有PDF格式的思维导图。
源文件链接:第二章 进程管理
提取码:9o10
首先需要明白概念,什么是处理机呢?
处理机:包括中央处理器,主存储器,输入-输出接口,加接外围设备就构成完整的计算机系统。
所以通俗地讲,处理机就是计算机系统除去外围设备剩下的部分。
本部分内容如下所示。
2 调度算法
2.1 调度算法简介
如上图所示,常见的进程调度算法有以下几种:先来先服务调度算法、短作业优先调度算法、高响应比优先调度算法、时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法。可以用下图所示的口诀帮助记忆。
先来短坐高响应,时间轮转优先赠。可以想象是家里来了客人,先来的客人,就让他先坐一会儿,然后那个客人也很健谈,即所谓的“高响应”。所谓的时间轮转优先赠,时间一分一秒地过去,主人还没来,所我们就先给了点小食甜点打发时间,让客人再等一会儿。
2.2 多级反馈队列调度算法
前面的几个调度算法都比较好理解,作为综合的调度算法,多级反馈队列博采众长,兼具:
- 先来先服务算法的顺序公平性
- 短作业优先算法的高效(较低的平均等待/周转时间)
- 时间片轮转调度算法运行时间公平性
- 优先级调度算法的灵活性(根据任务的紧急程度进行进程调度)
举个例子,有下面几个进程,如何采用多级反馈队列调度算法进行处理?
进程 | 到达时间 | 运行时间 |
p1 | 0 | 8 |
p2 | 1 | 4 |
p3 | 5 | 1 |
分析:这个例子中,各个进程到达时间不一致,而且先到达的进程运行时间反而比较长,所以很具有代表性。
最先到达的是p1进程,进入第一级队列,由于没有其他进程,可直接执行,执行完一个时间片之后,还没有执行完,则会进入第二级队列。
此时p2到达,由于第一级队列的优先级较高,则会优先运行p2进程,运行完一个时间片之后,进入第二级队列,如下图所示:
此时运行了两个时间片,p3进程还没到,再次运行p1进程,运行两个时间片,运行完两个时间片之后,仍没有运行结束,还需要5个时间片,则将其放入下一级队列,p2上处理机进行运行,如下图所示:
但是,在p2尚未运行完毕的时候,p3进程到达,进入第一级队列,比p2的优先级高,所以暂时将p2退回第二级队列队尾,优先执行p3进程,执行完一个进程后,p3已经处理完毕,被调出内存,无需再次处理。如下图所示:
剩下的就比较简单了,p2此时已经运行了2个时间片,再运行完2个时间片,然后被调出内存,如下图所示:
最后再次执行p1进程,运行完一次之后,p1总共运行了7个时间片,仍未执行完毕,然后再次退出处理机,由于没有其他进程,所以会再次上处理机进行处理。自此,进程全部处理完毕。
更加具体的运行情况如下面的甘特图所示:
---------------------------------------------------------------------------------END----------------------------------------------