课堂笔记学习视频来自 操作系统
说明:其他”课堂问答笔记“也在”操作系统“专栏
【5-7】
1、什么是“饥饿”现象?哪些磁盘调度算法会导致“饥饿”现象发生?
答:按照某种磁盘调度算法,可能会导致有些磁道总是得不到的访问(可能磁道优先级低),这就是“饥饿”现象。最短寻道时间优先(SSTF)算法会导致“饥饿”现象发生,因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必然优先满足(也就是距离磁头当前所在磁道的距离较远的磁道总是得不到访问)。
2、简述FCFS、SSTF、SCAN、CSCAN算法的基本原理(NStepSCAN和FSCAN调度算法不要求)
答:给出磁头将要访问的磁道号序列,以及磁盘调度算法(可能还包括当前磁头的移动方向),计算磁头总的寻道距离(寻道长度)或者平均寻道距离(寻道长度)是经常出现在各类考试中的典型题目。
先来先服务(FCFS)算法:根据进程请求访问磁盘的先后次序进行调度。
最短寻道时间优先(SSTF) 算法:该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种算法不能保证平均寻道时间最短(因为磁头可能经常往复运动,导致时间消耗过多)。
扫描(SCAN)算法:也叫电梯算法,总是从磁头当前位置开始,沿磁头的移动方向去选择离当前磁头最近的那个磁道。假设沿磁头的方向无请求访问时,就改变磁头的移动方向。采用这样的调度算法。需要设置两个队列。依据磁头的移动方向,能访问到的磁道由近及远排序。背离磁头移动方向的磁道也由近及远排队。先按磁头当前移动方向调度第一个队列,当该方向没有磁道时,再改变方向,调度另一个队列。
循环扫描(CSCAN)算法:也叫单向电梯算法、铲雪机算法(名字很形象的),循环扫描调度算法是在扫描算法的基础上改进的。磁头改为单项移动,由外向里。当前位置开始沿磁头的移动方向去选择离当前磁头最近的那个磁道。如果沿磁头的方向无请求访问时,再回到最外,访问磁道号最小的磁道。
例子如下(从左到右,从上到下依次使用FCFS、SSTF、SCAN、CSCAN算法):
3、高速磁盘缓冲,磁盘容错和廉价冗余磁盘阵列等内容是第8章磁盘存储器管理的内容(不要求),了解几个概念:
高速磁盘缓存:磁盘高速缓存是一种软件机制,它允许系统把通常存放在磁盘上的一些数据保留在RAM(内存)中,以便对那些数据的进一步访问而不用再访问磁盘。因为对同一磁盘数据的反复访问频繁发生,所以磁盘高速缓存对系统性能至关重要。与磁盘交互的用户进程可能需要反复请求读或写同一磁盘数据。此外,不同的进程可能也需要在不同的时间访问相同的磁盘数据。分配一些内存空间作为采用高速磁盘缓冲可以极大地提高磁盘I/O速度。
提高磁盘I/O速度的其它方法(除磁盘高速缓存外):提前读,延迟写,优化物理块的分布,虚拟盘。
廉价冗余磁盘阵列:磁盘阵列(Redundant Arrays of Independent Disks,RAID):独立磁盘构成的具有冗余能力的阵列,磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,把相同的数据存储在多个硬盘的不同的地方(冗余)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错性能。