假设磁盘的移动臂位于18号柱面上,进程的请求序列如表所示。那么,最省时间的响应序列为 (35) ,最费时间的响应序列为 (36) 。
请求序列 | 柱面号 | 磁头号 | 扇区号 |
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ | 15 20 20 40 15 6 8 15 | 8 6 9 10 8 3 7 10 | 9 3 6 5 4 10 9 4 |
A.④⑥②③⑦⑤⑧①
B.④③②⑥①⑤⑧⑦
C.④⑥③②⑦①⑤⑧
D.④②③⑥⑤⑧①⑦
参考答案:C
解析: 磁盘是可被多个进程共享的设备。当有多个进程都请求访问磁盘时,为了保证信息的安全,系统每一时刻只允许一个进程启动磁盘进行I/0操作,其余的进程只能等待。因此,操作系统应采用一种适当的调度算法,以使各进程对磁盘的平均访问(主要是寻道)时间最短。磁盘调度分为移臂调度和旋转调度两类,并且先进行移臂调度,然后再进行旋转调度。由于访问磁盘最耗时的是寻道时间,因此磁盘调度的目标应是使磁盘的平均寻道时间最短。
当移动臂定位后,有多个进程等待访问该柱面时,应当如何决定这些进程的访问顺序呢这就是旋转调度要考虑的问题。显然系统应该选择延迟时间最短的进程对磁盘的扇区进行访问。当有若干等待进程请求访问磁盘上的信息时,旋转调度应考虑如下情况。
(1)进程请求访问的是同一磁道上的不同编号的扇区;
(2)进程请求访问的是不同磁道上的不同编号的扇区;
(3)进程请求访问的是不同磁道上具有相同编号的扇区。
对于(1)和(2),旋转调度总是让首先到达读写磁头位置下的扇区进行传送操作;对于(3),旋转调度可以任选一个读写磁头位置下的扇区进行传送操作。
为存取磁盘上的一个物理记录,必须给出3个参数:柱面号、磁头号(盘面号)、扇区号。磁盘机根据柱面号控制移动臂做径向运动,带动读写头到达所需的柱面;从磁头号可确定哪一个磁头来读写数据,然后便等待访问的信息块旋转到读写头下时进行存取。磁盘机实现这些功能的操作是:查找(将读写头定位到指定柱面并选择指定磁头)、搜索(指定磁头寻找访问的记录块)、读、写和控制等。
根据上面的讨论,我们知道,要决定一个进程的请求序列是否省时间,主要看移臂总量,哪个序列最少,然后再看旋转调度哪个延迟时间最短。本题主要考查分析能力,所以不要求基于某种算法来分析问题。通过分析,可以得出最省时间的是B,最费时间的是C。