0
点赞
收藏
分享

微信扫一扫

操作系统中几种最最最常见的调度算法(适用于软件设计师考试与期末考试复习)

目录

一、页面置换算法

1、先进先出置换算法(FIFO)

2、最近最少未使用置换算法(LRU)

3、最佳置换算法(OPT)

二、磁盘调度算法

1、先来先服务(FCFS)

2、最短寻道时间优先(SSTF)

3、扫描算法(SCAN)

4、循环扫描算法(C - SCAN)

三、进程调度算法

1、先来先服务(FCFS)

2、短作业优先(SIF)

 3、轮转法(Round Robin)

4、优先级算法(Priority Scheduling)


一、页面置换算法

在页面置换算法中分别有:先进先出置换算法(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)

好了,这篇就到这了,接下来要复习软考,以后更新会晚点(不定期更新)。

(求关注)持续更新中……

举报

相关推荐

0 条评论