目录
一、页面置换算法
在页面置换算法中分别有:先进先出置换算法(First In first Out,FIFO)、最近最少未使用置换算法(Least Recently Used,LRU)、最佳置换算法(OPtimal Replacement Algrithm,OPT)。
1、先进先出置换算法(FIFO)
现在来看看先进先出置换算法的例题吧
假定系统中某进程访问页面的顺序为 “0,7, 6, 5,7,4,7,3,5,4,7, 4,5,6,5” 利用FIFO 算法对上例进行页面置换的结果如图所示。
在图中我们可以看出,发生了 12 次 缺页中断,缺页率为 12 / 15 = 80%。
2、最近最少未使用置换算法(LRU)
同样的我们例子和上面一样(“0,7, 6, 5,7,4,7,3,5,4,7, 4,5,6,5” ),结果如图所示。
在图中我们可以看出,发生了 11 次 缺页中断,缺页率为 12 / 15 = 73.33%。
3、最佳置换算法(OPT)
在图中我们可以看出,发生了 7 次 缺页中断,缺页率为 7 / 15 = 46.66%。
二、磁盘调度算法
在磁盘调度算法中分别有:先来先服务(first come first service,FCFS)、最短寻道时间优先(Shortest Seek Time First, SSTF)、扫描算法(SCAN)、循环扫描算法(C - SCAN)。
1、先来先服务(FCFS)
下面我们来看看具体例子
我们现在有一个磁盘请求队列,涉及的柱面号为 98、183、37、122、14、124、65、67(也是请求的顺序),磁头的初始柱面位置是 53 。
那么它的平均移动时间是 (45 + 85 + 146 + 85 + 108 + 110 + 59 + 2) = 640 / 8 = 80
注意:我们看 第一项 45 是怎样来的呢?答案(98 - 53),85是怎样来的呢?答案(183 - 98)……
2、最短寻道时间优先(SSTF)
那么来看看效果图吧
那么它的平均移动时间只有 208 / 8 = 26
3、扫描算法(SCAN)
我们来看看效果图吧
那么它的平均移动时间只有 222 / 8 = 27.75
4、循环扫描算法(C - SCAN)
我们来看看效果图吧(这里用线性的不太好表示,所以我这里用了园状来表示)
这里从 53 开始,顺时针访问各个时间(53 -> 65 -> 67 -> 98 -> 122 -> 124 -> 183 -> 199 -> 0 -> 14 -> 37)
那么它的平均移动时间有 382 / 8 = 47.75
三、进程调度算法
在进程调度算法常见的算法有:先来先服务(FirstComeFirstServed,FCFS)、短作业优先(Shortest Job First, SIF)、轮转法(Round Robin)、优先级算法(Priority Scheduling)
1、先来先服务(FCFS)
我们直接来看效果图
遵循谁先来谁就执行,那么执行顺序是 1 -> 2 -> 3。
作业 1 的周转时间是 21(0 + 21) ;作业 2 的周转时间是 27 (0 + 21 + 6);作业3的周转时间是 33 (0 + 21 + 6 + 6);平均周转时间是(21 + 27 + 33) / 3 = 27。
2、短作业优先(SIF)
我们来看看效果图
遵循谁执行的时间短谁就执行,那么执行顺序是 2 -> 3 -> 1。
注意:这里有个小知识,当它们的时间都一样时,遵循先来先服务,比如这里2、3 执行时间都一样,但 2 先来,所以先执行2,在执行3。
平均周转时间是(6 + 12 + 33)/ 3 = 17。
3、轮转法(Round Robin)
4、优先级算法(Priority Scheduling)
好了,这篇就到这了,接下来要复习软考,以后更新会晚点(不定期更新)。
(求关注)持续更新中……