操作系统复习题(2)及答案全解 下载本文

(1) 一个普通文件最多可有多少个文件页?

(2) 若要读文件J中某一页,最多启动磁盘多少次? (3) 若要读文件W中某一页,最少启动磁盘多少次?

(4) 就上一问而言,为最大限度减少启动磁盘的次数,可采用什么方法?

此时,磁盘最多启动多少次?

答:由于一个索引表占一个磁盘块(512字节),一个磁盘地址占2个字节,因此一个一级索引表可容纳256个磁盘地址。同样,一个二级索引表可容纳256个一级索引表地址,一个三级索引表可容纳256个二级索引表地址。这样,一个普通文件最多可以有的页数为 10+256+256*256+256*256*256 对于访问文件J,首先从内存中的根目录文件中找到目录A的目录文件,读入内存(一次访问磁盘),然后再从目录A的目录文件中找出目录D的文件磁盘地址,并读入内存(第二次访问磁盘)。在目录D的目录文件中,读出文件J的文件控制块地址,并读入内存(第三次访问磁盘)。若要访问的页是文件J中通过三级索引表找到的页面,则还需要访问磁盘三次(即读入三级索引表,读入二级索引表,读入一级索引表)。

对于访问文件W,首先从内存中的根目录文件中找到目录C的目录文件,读入内存(一次访问磁盘),然后再从目录C的目录文件中找出目录I的目录文件磁盘地址,并读入内存(第二次访问内存)。然后,再依次访问目录P和目录U(第三次,第四次访问磁盘),读出文件W的文件控制块(第五次访问磁盘)。若访问的页是文件W的文件控制块中直接指出的磁盘地址,则可直接访问该页。

由于通过文件控制块访问文件时所需的访问磁盘次数无法改变,因此要减少访问磁盘的次数, 只有通过减少访问目录文件的次数来达到。 (1) 一个普通文件最多可以有的页数为16843018页 (2) 若要读文件J 中某一页,最多启动磁盘7次 (3) 若要读文件W中某一页,最少启动磁盘6次

(4) 若要最大限度减少启动磁盘的次数,可以将文件W链接在根目录

的最左端。这样可减少4次访问磁盘的次数。此时要读文件W中某 一页,最多启动磁盘5次。

16. 今有3个并发进程R,M,和P,它们共享了一个可循环使用的缓冲区B,缓冲区B共有N个单元。进程R负责从输入设备读信息,每读一个字符后,把它存放在缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格符,则把它改成‘,’;进程P负责把处理后的字符取出并打印输出。当缓冲区单元中的字符被进程P取出后,则又可用来存放下一次读入的字符。请用P,V操作写出它们能并发执行的程序。

17. 一组合作进程,执行顺序如图,请用操作实现进程间的同步操作。