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

14.

0段 SQRT SQRT 1段

化简如图所示的资源分配图,并说明有无进程处于死锁状态?

R1

R0 P0 。。 P1 R2 。

。。 R3 。 。 R4 P2 P3 P4

15. 有一个文件系统如图所示,图中的框表示目录,圈表示普通文件。根目录常驻内存,目录文件组织成链接文件,不设文件控制块,普通文件组织成索引文件。目录文件指示下一级文件名及其磁盘地址(各占2个子,共4个字节)。若下级文件是目录文件,指示其第一个磁盘块地址。若下级文件是普通文件,指示其文件控制块的磁盘地址。每个目录文件磁盘块最后4个字节供拉链使用。下级文件在上级文件目录文件中的次序在图中为自左至右。每个磁盘块有512个字节,与普通文件的一页等长。 根目录 A B C H I D E F G P M N L J K U Q R K T V W

普通文件的文件控制块组织如图所示。其中, 每个磁盘地址占2个字节,前10个地址指示 该文件前10页的地址。第11个地址指示一级 索引表地址,一级索引表中每个磁盘地址指示 一个文件页地址;第12 个地址指示二级索引 表地址,二级索引表中每个地址指示一个一级 索引表地址;第13个地址指示三级索引表地址 ,三级索引表中每个地址指示一个二级索引表 地址。 问:

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

该文件的有关描述信息 磁盘地址 1 磁盘地址 2 磁盘地址 11 磁盘地址 12 磁盘地址 13 (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. 一组合作进程,执行顺序如图,请用操作实现进程间的同步操作。 P4 P2

P6 P1 P3 P5