第5章 文件系统
5-9. 文件存贮空间管理可采用成组自由块链表或位示图。若一磁盘有
B个盘块,其中有F个自由块。若盘块号用D位表示。试给出使用自由块链表比使用位示图占用更少的空间的条件。当D为16时,给出满足条件的自由空间占整个空间的百分比。
解:一磁盘有B个盘块,用位图表示要使用B位
现有F个自由块,若表示一个盘块需用D位。则采用链表接连F个盘块,需要F个链指针,共占F*D位。使用自由块链表比使用位示图占用更少的空间的条件是F*D<B。
当D=16时,满足条件的自由空间占整个空间的百分比为 F/B<1/16=6.25%。
5-10. 文件系统的执行速度依赖于缓冲池中找到盘块的比率。假设盘块从缓冲池读出用1毫秒,从盘上读出用40毫秒。从缓冲池找到盘块的比率为n,请给出一个公式计算读盘块的平均时间,并画出n从0到1.0的函数图像。
解:读一个盘块的平均时间=n+40(1-n)=40-39n
n
5-13.
1574/256=6……38, 因此,要访问文件的第7个记录内的38B处。每个块放两个记录,所要访问的字节处在第4个逻辑块内,其对应的物理块号为4,应访问4号块内的第38个字节。要访问4次磁盘才能将该字节的内容读出。
5-14.共需要4次磁盘操作
5-15.1GB=230 ,16KB=214 , 230/214 =216 ,每个磁盘块号需要2个字节表示,即2B。
(1)10KB<16KB, 所以,只占用1个磁盘块。
(2)1089KB/16KB=69 需一个索引块和69个数据块,共70个盘块。 (3)129MB/16KB=8256 , 16KB/2B=8K(个索引项)<8256
所以,需2个一级索引表和一个1个二级索引表,8256个数据块。 共需8259个磁盘块。
第6章 设备管理
6-6.下列工作各是在四层I/O软件的哪一层上实现的? (1) 对于读磁盘,计算柱面、磁头和扇区(设备驱动)
(2) 维持最近所用块而设的高速缓冲(独立于设备的软件层) (3) 向设备寄存器写命令(设备驱动)
(4) 查看是否允许用户使用设备(独立于设备的软件层) (5) 为了打印,把二进制整数转换成ASCII码(用户进程)
6-13.假设移动头磁盘有200个磁道(从0号到199号)。目前正在处理143号磁道上的请求,而刚刚处理结束的请求是125号,如果下面给出的是按到达时间的先后排成的等待服务队列:86,147,91,177,94,150,102,75,130。那么,用下列各种磁盘调度算法来满足这些请求所需的总磁头移动量是多少?
(1) FCFS:满足这些请求所需的总磁头移动量=(143-86)+(147-86)+(147-91)+(177-91)+(177-94)+(150-94)+(150-102)+(102-75)+(130-75)=57+61+56+86+83+56+48+27+55=524
(2) SSTF:满足这些请求所需的总磁头移动量
=(150-143)+(150-75)+(177-75)=7+75+102=182 (3)SCAN:199--130--102--94--91--86--75 满足这些请求所需的总磁头移动量= (199-143)+(199-75)=56+124=180 (5)C-SCAN:125 199--0--75--86--91-94—102 --130满足这些请求所需的总磁头移动量=(199-143)+(199-0)+(130-0)=56+199+130=385
(4)C-LOOK:满足这些请求所需的总磁头移动量
=(177-143)+(177-75)+(130-75)=33+102+55=190