第五章18题
SPOOLing系统主要有以下三个部分:
(1)输入井和输出井。这是在磁盘上开辟的两大存储空间。输入井是模拟脱机输入时的磁盘设备,用于存储I/O设备输入的数据;输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。
(2)输入缓冲区和输出缓冲区。为了缓和CPU与磁盘之间速度不匹配的矛盾,在内存中要开辟两个缓冲区:输入缓冲区和输出缓冲区;输入缓冲区用于暂存由输入设备送来的数据,以后再传输到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。
(3)输入进程SPi和输出进程SPo。这里利用两个进程来模拟脱机I/O时的外围控制机。其中,进程SPi模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时,直接从输入井读入内存;进程SPo模拟脱机输出时的外围控制机,把用户要求的输出数据先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输入设备上。 练习题:
1.假设磁头当前位于第105道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为35,45,12,68,110,180,170,195,采用SSTF调度(最短寻道时间优先调度)和SCAN调度(电梯调度)算法得到的磁道访问序列分别是什么,平均寻道距离分别是多少? SSTF调度: 从105道开始,像磁道号增加的方向访问 被访问的下一个磁道号 移动距离(磁道数) 110 5 68 42 45 23 35 10 12 23 170 158 180 10 195 15 平均寻道长度:35.75 SSTF算法选择进程的要求:其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。
SCAN调度: 从105道开始,像磁道号增加的方向访问 被访问的下一个磁道号 移动距离(磁道数) 110 5 170 60 180 10 195 15 68 127 45 23 35 10 12 23 平均寻道长度:34.125 SCAN算法选择进程的要求:该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。
2. 假设计算机系统采用CSCAN(循环扫描)磁盘调度策略。
(1)设某单面磁盘旋转速度为每分钟6000转。每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号大的方向移动,磁道号请求队列为50、90、30、120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这4个扇区点共需要多少时间?要求给出计算过程。
(2)如果将磁盘替换为随机访问的Flash半导体存储器(如U盘、SSD等),是否有比CSCAN更有效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。
解答:
(1)由于每分钟6000转,则转一圈的时间为60/6000=0.01s, 旋转延迟为0.01*0.5=0.005s。
又由于每个磁道100个扇区,则通过一个扇区的时间为0.1/100=0.0001s。根据CSCAN算法,被访问的磁道顺序为:100—120—30—50—90。 对应的移动距离为:20,90,20,40。
则寻道用去的时间为(20+90+20+40)*1ms=170s。 总共要随机读取四个扇区,要用的时间为:(0.005+0.0001)*4=0.0204s=20.4ms 读完这个扇区需要的总时间为:170ms+20.4ms=190.4ms。
(2)有比CSCAN更有效的磁盘调度策略,那就是采用FCFS调度策略。因为对于Flash半导体存储器来说,它不用考虑寻道的时间和旋转延迟,可以直接通过I/O设备根据先后顺序进行服务,FCFS调度就是采用这种方法。