操作系统 - - - - 课后答案(1) 下载本文

《操作系统教程》(第三版)CH1应用题参考答案

6. 在UNIX/Linux系统中,如果当前目录是/usr/wang,那么,相对路径为‥/ast/xxx文

件的绝对路径名是什么? 答:在UNIX/Linux系统中,“/”表示根目录,“.”是指当前目录,“‥” 是指父目录。在本题中当前目录是/usr/wang,故相对路径为‥/ast/xxx文件实际上是usr目录下的文件,故绝对路径名是/usr/ast/xxx。

7. 一个UNIX文件F的存取权限为:rwxr-x---,该文件的文件主uid=12,gid=1,另一个

用户的uid=6,gid=1,是否允许该用户执行文件F? 答:F的存取权限为:rwxr-x---,表示文件主可对F进行读、写及执行操作,同组用户可对F进行读及执行操作,但其他用户不能对F操作。因为另一用户的组标识符gid相同,所以,允许访问。

8. 设某文件为连接文件,由5个逻辑记录组成,每个逻辑记录的大小与磁盘块大小相

等,均为512字节,并依次存放在50、121、75、80、63号磁盘块上。若要存取文件的第1569逻辑字节处的信息,问要访问哪一个磁盘块? 答:1569/512得到商为:3,余数为:33。所以,访问的是75磁盘块的第33个字节。 9. 一个UNIX/Linux文件,如果一个盘块的大小为1KB,每个盘块占4个字节,那么,

若进程欲访问偏移为263168字节处的数据,需经过几次间接? 答:UNIX/Linux文件系统中,直接寻址为10块,一次间接寻址为256块,二次间接寻址为2562块,三次间接寻址为2563块。

偏移为263168字节的逻辑块号是:263168/1024=257。块内偏移量=263168-257×1024=0。由于10<257<256+10,故263168字节在一次间接寻址内。

10. 设某个文件系统的文件目录中,指示文件数据块的索引表长度为13,其中0到9

项为直接寻址方式,后3项为间接寻址方式。试描述出文件数据块的索引方式;给出对文件第n个字节(设块长512字节)的寻址算法. 答:索引表长度为13,其中0到9项为直接寻址方式,后3项为一次、二次和三次间接寻址。

步1 将逻辑文件的字节偏移量转换为文件的逻辑块号和块内偏移。方法是:将逻辑文件的字节偏移量n/盘块大小(512),商为文件的逻辑块号,余数是块内偏移。

步2将文件的逻辑块号转换为物理块号。使用多重索引结构,在索引节点中根据逻辑块号通过直接索引或间接索引找到对应物理块号。再判别逻辑块号在10块以内或以上,分别采用可直接寻址,一次、二次和三次间接寻址。

11. 设文件ABCD为定长记录的连续文件,共有18个逻辑记录。如果记录长为512B,

物理块长为1024B,采用成组方式存放,起始块号为12,叙述第15号逻辑记录读入内存缓冲区的过程。 答:采用成组方式存放,块因子为2。由于共有18个逻辑记录,故占用了9个物理块,而第15号逻辑记录占用的是第15/2=8(向上取整)物理块。因为,是连续文件物理块也是连续的,所以,该逻辑记录占用的是12+8-1=19块。所以,第15号逻辑记录读入内存缓冲区的过程如下:根据块因子,计算占用的相对物理块号8;根据起始块号为12,计算出绝对物

41

《操作系统教程》(第三版)CH1应用题参考答案

理块号19;把物理块号19读入内存缓冲区;把所要的逻辑记录分解出来。

12. 若某操作系统仅支持单级目录,但允许该目录有任意多个文件,且文件名可任意长,

试问能否模拟一个层次式文件系统?如能的话,如何模拟。 答:可以,文件名中可以用插入多个“/”来模拟文件分层。例如/usu1/datafile/data1和/user1/datafile/data2。但在此操作系统中,这些仅仅是包含“/”的单个文件名。

13. 文件系统的性能取决于高速缓存的命中率,从高速缓存读取数据需要1ms,从磁盘

读取数据需要40ms。若命中率为h,给出读取数据所需平均时间的计算公式,并画出h从0到1变化时的函数曲线。 答:读取数据所需平均时间T=h×1+40×(1-h)=h+40×(1-h)。

T(ms)

.30 . . . . . 20 .

. . . .10 . . . . . h(%) 0 .2 . 3 .4 .5 .6 .7 .8 .9

14. 有一个磁盘组共有10个盘面,每个盘面有100个磁道,每个磁道有16个扇区。若

以扇区为分配单位,现问:(1)用位示图管理磁盘空间,则位示图占用多少空间?(2)若空白文件目录的每个目录项占5个字节,则什么时候空白文件目录大于位示图? 答: (1)磁盘扇区总数为:10×16×100=16000个,故位示图占用16000/8=2000字节。 (2)己知空白文件目录的每个目录项占5个字节,而位示图占用2000字节,也就是说

2000字节可容纳400个文件目录项。当空白文件目录>400时,空白文件目录大于位示图。

15. 某磁盘共有100个柱面,每个柱面有8个磁头,每个盘面分4个扇区。若逻辑记录

与扇区等长,柱面、磁道、扇区均从0起编号。现用16位的200个字(0-199)来组成位示图来管理盘空间。现问:(1)位示图第15个字的第7位为0而准备分配给某一记录,该块的柱面号、磁道号、扇区号是多少?(2)现回收第56柱面第6磁道第3扇区,这时位示图的第几个字的第几位应清0? 答:(1)位示图第15个字的第7位对应的块号=15×16(字长)+7=247,而块号247对应的:

柱面号=247/(8×4)=7(从0编号,向下取整) 磁头号=(247 MOD 32)/4=5

42

《操作系统教程》(第三版)CH1应用题参考答案

扇区号=247 MOD 32 MOD 4=3

(2)块号=柱面号×柱面扇区数+磁道号×盘扇区+盘扇区=56×(8×4)+6×4+3=1819

字号=1819/16=113

位号=1819 MOD 16 =11

所以,回收第56柱面第6磁道第3扇区时,位示图的第113字的第11位应清0。

16. 如果一个索引节点为128B,指针长4B,状态信息占用68B,而每块大小为8KB。

问在索引节点中有多大空间给指针?使用直接、一次间接、二次间接和三次间接指针分别可表示多大的文件?

答:由于索引节点为128B,而状态信息占用68B,故索引节点中用于磁盘指针的空间大小为:128-68=60字节。

一次间接、二次间接和三次间接指针占用三个指针项,因而直接指针项数为:60/4-3=12个。每块大小为8KB。所以,直接指针时:12×8192=98304B。

一次间接指针时:8192/4=2048,即一个磁盘块可装2048个盘块指针,2048×8192=16MB。

二次间接指针时:2048×2048=4M,即二次间接可装4M个盘块指针,4M×8192=32GB。

三次间接指针时:2048×2048×2048=8G,即三次间接可装8G个盘块指针,8G×8192=16TB。

17. 设一个文件由100个物理块组成,对于连续文件、连接文件和索引文件,分别计算

执行下列操作时的启动磁盘I/O次数(假如头指针和索引表均在内存中):(1)把一块加在文件的开头;(2) 把一块加在文件的中间(第51块);(3) 把一块加在文件的末尾;(4)从文件的开头删去一块;(5)从文件的中间(第51块)删去一块;(6)从文件的未尾删去一块。 答:

操作名称 连续文件 链接文件 索引文件 加一块到文件开头 201 1 1 加一块到文件中间 101 51 1 加一块到文件末尾 1 2 1 从文件头删去一块 0 1 1 删去文件中间块 98 52 1 从文件尾删去一块 0 100 1 43