之前笔者和大家讨论过FCFS(先来先服务算法)SSTF(最短路径搜索算法),那么今天我们就来讨论在计算机磁盘驱动调度当中,一种比较重要的算法,叫做SCAN(扫描调度算法),又叫做电梯算法

谈到电梯,大家往往会想到现实中的电梯,既能够上升又能够下降

那电梯的工作原理是什么呢

不知道大家有没有观察过生活中的电梯,它们往往是先沿着一个方向不停的到底,直到那个方向没有人按电梯按钮之后,再回过头来

比方说,当前电梯在10楼,然后有人先按11楼、12楼、21楼,后来有人按了9楼、8楼、1楼,电梯如果是先往上走,那么它就要先到11楼,再到12楼,最后到21楼,等21楼完成后,再回到9楼、8楼、1楼

那么,这也同样适用于计算机中的磁盘驱动调度

我们来看道例题

电梯调度算法代码(SCAN扫描调度算法)(1)

图一

这道题已经明确告诉我们,目前磁头位于100道,向磁道序号增加的方向移动

那么,从100开始,就得往增加的方向移动,下一号也就是110

所以A、B两个选项可以率先排除了

之后,磁头不停的移动,直到180为止,磁道序号增加的方向已经没有数据了,便会向磁道序号减少道方向移动,率先移动到的就是95

综上所述,这道题的答案显而易见,选C

最后做个总结,SCAN算法的磁头移动规律和电梯的移动轨迹真的很像,但是会对最近扫描过的数据不公平,比方说95就不公平了,但是却克服了不少缺点,总的来说有利有弊

,