6.5 自测练习答案

一、填空题

1.文件

2.数据块

3.文件保护

4.文件系统

5.文件存储地址

6.物理块

7.索引文件

8.文件控制块

9.逻辑结构、物理结构

10.文件目录

11.文件名、索引节点号

12.open

13.字节、记录

14.顺序文件

15.直接寻址、一次间接寻址、多次间接寻址

16.文件卷

17.文件名、文件在磁盘上的存放地址

18.顺序访问、直接访问(或称随机访问、相对访问)、按键访问

19.物理结构

20.文件的起始块号、文件所占的存储块数

21.按名存取

22.FCB

23.目录文件

24.索引节点

25.文件重名或文件命名冲突

26.主文件目录

27.顺序结构

28.操作系统

29.成组链接

30.索引、数据、索引

二、单项选择题

1.B 2.B 3.C 4.B 5.A

6.A 7.A 8.B 9.B 10.A

11.C 12.D 13.A 14.B 15.A

16.B 17.B 18.D 19.B 20.D

21.A 22.D 23.C 24.B 25.B

26.D 27.A 28.D

29.B 说明:成组方式存储时,不能将一条记录分散到不同的磁盘块中,因此当在一个磁盘块中放置12条记录后(1024/80),余下空间已不足存放一条记录(磁盘块有64B的内碎片),因此会将第13条记录存放到下一个磁盘块中,依次类推,100条记录需要8个多(100/12)磁盘块。

30.D

三、不定项选择题

1.BAE 2.ADFG 3.BDE 4.BC 5.ACD

6.AC 7.A 8.AD 9.ACDF 10.ABCD

11.ABC 12.ABC 13.AC 14.ACD 15.BC

四、是非题

1.正确:因为磁盘是一种随机存取设备。

2.错误:在系统中,0#块一般用于系统的引导或空闲,而1#块用于存放文件系统的资源管理信息。

3.错误:索引顺序文件应放在顺序存取设备上。

4.错误:文件系统主要目标是实现文件的按名存取。

5.错误:多级文件目录结构中,对文件的访问是通过目录名和用户文件名来进行的。

6.错误:文件的物理块的大小是固定的。

7.正确

8.正确

9.正确

10.正确

11.正确

12.正确

13.错误:存放在磁盘上的文件,既可以随机访问,也可以顺序访问。

14.正确

15.正确

五、综合题

1.答:1)在目录D中可建立一个文件,取名为A,因为目录D中没有已取名为A文件或文件目录。

目录不可改名为A,因为目录C所在的目录中已有一个命名为A的目录。

2)用户E欲共享文件Q,需要用户E有访问文件Q的权限。用户E通过自己的主目录E,找到其父目录C,再访问到目录C的父目录的根目录,然后依次通过目录D、目录G、目录K和目录O访问到文件Q。

用户G需要通过依次访问目录K和目录P,才能访问到文件S及文件T。为了提高访问速度,可以在目录G下建立两个链接文件,分别链到文件S及文件T上。这样用户G就可以直接访问这两个文件了。

用户E可以通过修改文件I的存取控制表来对文件加以保护,不让别的用户使用。具体地,可以在文件I的存取控制表中,只留下用户E的访问权限,而不让其他用户访问。

2.答:1)显式的open操作完成文件的打开功能。它将基本文件目录中的内容读入用户文件表中,并在系统活动文件表中记录文件的打开次数。显式的close操作完成文件的关闭操作。它撤销用户的活动文件表中相应的表项,改变系统活动文件表中的文件打开次数信息。如果需要,还要将被改动过的文件目录信息写回基本文件目录中。

2)可以取消显式的open与close操作。如果取消了open与close操作,系统在进行文件操作前,需判断文件是否已打开。若未打开,则应自动完成文件的打开功能,以建立用户与文件间的联系。同时,在系统结束时还应自动关闭所有的被打开文件,更新系统的基本文件目录。

3)取消显式的open与close操作,使得文件的读写操作变得复杂,因为,在每次读写前都需要判断文件是否已被打开。此外,系统在结束时也要做一些额外的工作,以完成close应该完成的操作。

3.答:1)一个普通文件可以有的页数为16843018页。计算方法:

一个索引表占一个磁盘块(512字节),一个磁盘块地址占两个字节,因此,一个一级索引表可容纳256个磁盘地址。同样的,一个二级索引表可容纳256个一级索引表地址,一个三级索引表可容纳256个二级索引表地址。因为,每个磁盘块有512个字节,与普通文件的一页等长,所以一个普通文件最多拥有的页数为:

10+256+256×256+256×256×256=16843018

2)若要读文件J中某一页,最多启动磁盘7次(包括读入该页的磁盘访问)。

3)若要读文件W中某一页,最少启动磁盘6次(包括读入该页的磁盘访问)。

4)若要最大限度地减少启动磁盘的次数,可以将文件W链接在根目录的最左端。这样可以减少4次访问磁盘。此时,要读文件W中的某一页,最多启动磁盘5次(包括读入该页的磁盘访问)。

4.答:6200=1024×6+56,故要访问字节的逻辑记录号为6,对应物理磁盘块号为19(从链表头开始,第7项),即需要访问19号磁盘号。

5.答:对于问题1)有两种方法可以实现:

1)建立一个包含4990个用户名字的存取控制表。

2)将这4990个用户合为一组,并对该组设置相应的存取权,由于这组用户是受系统限制的,所以这种方案不一定总能实现。

对于问题2):“everyone else”信息适用于不在某存取控制表中的所有用户。据此,只要把剩余的10个用户的名字放入该存取表,但不给予任何存取权即可。

6.答:在UNIX系统中,空闲块管理采用一种改进的空闲块链法。它将空闲块分组,再通过指针把组与组之间链接起来,称这种管理空闲块的方法为成组链接法。

成组链接法的初始状态将所有的空闲块链在一起。为了说明的方便,假定这个文件存储空间一开始全为空闲块,并对所有的这些空闲块从尾开始倒着向前分组,末段第一组为49块,随后每组为50块,每组的总块数及相应的块号记在前一组的第一块中。最后一组不足50块,它的总块数(43)及其各块的块号记录在被称为卷组源表的数据结构中,如图6-15所示。需要指出的是末端第一组总数虽为49,但在其前一组第一块(450#)0号单元中登记的总数仍为50,且在一号单元中填“0”这个“0”用做文件卷的卷尾标志。当分配时遇到的块为0,表示此文件卷上已无空闲块可供分配。

6.5 自测练习答案 - 图1

图 6-15 UNIX系统的空闲块成组链接示意图

成组链法分配和释放空闲块的过程如下:

在系统开始工作后,把文件卷的卷资源表复制到主存指定的区域,使得以后空闲块的分配和释放都可在主存中进行。

资源表中登记空闲块号的区域是一种栈结构。其中记载的总块数,作为该空闲块的栈的指针ptr(S,F),在分配时执行:ptr(S,F)=ptr(S,F)-1。

然后取出栈中对应的顶,作为本次申请得到的物理块号。当ptr(S,F)=0时,系统要做特殊的处理:先把登记在此表中的块号(假定为50#)相对应的物理块号,读进主存中卷资源表的空闲块栈中,即把下一组空闲块的块号及总数50读入主存,如图6-16。此时,已经不需要50#块中的内容,因此可以把它分配出去。此后再分配时,又可以按照次序分配了。需要指出的是,当ptr(S,F)=0,且此时相应的表目中的值又为0,则表示遇到了卷尾标志。

对于空闲块的回收,与之类似。在回收时,先按指针所指的单元登记其块号,然后执行:ptr(S,F)=ptr(S,F)+1,当ptr(S,F)>50时,系统要做特殊处理。首先把次栈区中的50个块号及总数50记入回收的空闲块中,然后将栈区指针ptr(S,F)置为零,并将刚回收的块号记入相应的表目中(即栈底),最后在总块数表目中记为1。

6.5 自测练习答案 - 图2

图 6-16 将下一组空闲块的块号及总数50读入主存

7.答:将存放文件说明信息和相应标志符的BFD称为i节点。i节点又分为磁盘i节点和内存i节点。其中磁盘i节点以静态形式存放文件说明信息。磁盘i节点的结构包括:


struct dinode

{

文件的模式;

与该i节点连接文件数;

用户标志;

文件大小;

存取权限;

同组用户标识;

该文件所用的物理块块号;

文件的存取时间、修改时间和建立时间;

}


其中,文件模式表示文件类型,而用户标志符以及同组用户标志定义对该文件具有存取权的用户集合,与该i节点连接的文件数,表示有多少个不同的文件名指向该文件。另外,该文件所用的物理块号是一个由40个字节组成的字符数组di_addr[40],它指明文件数据放在逻辑盘上的位置。在UNIX system V中,磁盘i节点占用64个字节。因此,一个长512个字节的块可存放8个i节点项。

内存i节点结构除了磁盘节点的各项之外,还包含了当前打开文件的信息。例如,内存i节点的状态:包括该节点是否已被锁住,是否有进程等待访问该i节点等。

8.答:UNIX操作系统的文件共享包含两个方面,即磁盘文件的共享和打开文件共享。UNIX操作系统实现磁盘文件共享非常方便,不同目录中的文件指向同一个i节点,就可实现共享,i节点有共享连接计数。此外,利用符号链也可以实现共享。系统创建一个LINK型文件,在新文件只包含链接文件的路径名,符号链接实际上是一个文件。

对于打开文件,文件表中的文件控制块指向同一个内存i节点,实现共享。父子进程的用户文件描述表指向同一个系统文件表。

9.答:1)保存在目录项中的信息之一是文件的位置。如果用户可以修改这个位置信息,那么,他也会访问其他文件,从而违背存取保护的规定。

2)不允许用户直接向子目录写入信息,而应有系统提供的操作来完成这些事情。

10.答:保留单一副本,对于一个文件的多次并发更新,可能导致用户得到不正确的信息,并使结果处于不正确的状态。保留多个副本则浪费了一些存储空间,而且各副本彼此可能会不一致。

11.答:文件的存取控制是指限制文件共享,保护文件的方法。实施文件存取控制的方案有:存取控制的矩阵、存取控制表、用户权限表、口令等。

12.答:文件共享主要有两种方式:一是基于索引节点的共享方式,称为硬链接;二是利用符号链实现文件共享,称为软链接。首先文件F1的引用计数值均为1。当建立F1的符号链接F2时,F2的引用计数值仍为1,当建立F1的硬链接文件F3时,F3的引用计数值变为2,当删除F1后,F2的引用计数值不变,F3的引用计数值减1变成1。即此时F2和F3的引用计数值分别是1和1。

13.答:链接分配优点:不要求连续的存储空间,能较好地利用磁盘空间;无需先知道文件的长度,有利于文件的增长扩充。链接分配缺点:只适合顺序访问,不适合随机访问;链接指针需要占一定的存储空间,降低了存储效率,且可靠性差。

索引分配优点:既支持顺序访问,也支持随机访问,查找效率高;便于文件的删除。索引分配缺点:当文件比较大时,索引表也会变大,会占一些存储空间。

14.答:文件目录具有的作用:实现“按名存取”;提高对目录检索的速度;文件共享;允许文件重名。

一个文件目录项包括的信息主要有:

1)基本信息类:如文件名、文件物理地址、文件结构等。

2)存取控制信息:如文件主、核准用户、一般用户的存取权限。

3)使用信息类:如文件建立的日期、时间、大小以及当前使用信息等。

15.答:用户访问一个文件时,系统首先要检索目录结构,按名查找该文件控制块。打开文件的基本思想是,按制定文件名的目录结构,把找到的文件控制块读入并保存在内存中,此后每次访问该文件时,就无需再执行按名查找过程,可以直接在内存中找到它的文件控制块。从而加快了访问速度。文件打开后,可以对文件进行读写访问。当一个文件不再被访问时,需要关闭该文件,释放占用的活动文件控制块和系统打开文件表的资源,并将文件控制块的内容复制到存储设备上。一方面,提高了资源利用率;另一方面,保证数据安全,这对于延迟写的系统尤为重要。

16.答:由题可知,一个索引块最多含有1024/2=512个地址项,则该系统单个文件最大为8×1KB+2×512×1KB+2×512×512×1KB=525 320KB。

17.答:文件所占用的最后一个磁盘块中的空间会浪费掉,属于内碎片。

18.答:1)当访问一个块时,文件系统可以预取随后的块,预计未来对于这些块的要求,这种预取优化将减少未来进程将经历的等待时间。

2)可以将顺序文件预先进行N等分,每次访问文件的时候从每一个等分的起点获取N个数据,下次操作再依次类推,这样可以将访问文件的效率提高N倍。

19.答:在Windows中采用的方法是使用文件扩展名。Windows采用扩展名来表示文件类型以及可用的文件操作类型,即每种扩展名对应于一种文件类型,以及决定了某些程序来处理这种类型的文件。

20.答:由题目可知,字长为16位(位示图中每行的位数),需要给该文件分配2个磁盘块。磁盘块的分配过程如下:

1)逐行顺序扫描位示图,找到第一个值为0的二进制位所对应的字号和位号,即第1字第3位。

2)计算第1字第3位对应的磁盘块号。由公式:

磁盘块号=字号×字长+位号

可得:第1字第3位对应的磁盘块号为1×16+3=19。

3)将位示图中的该二进制位的值改为1。

4)将分配的磁盘块地址19写入文件的FCB中。

5)重复1)~3),将第2字第6位对应的磁盘块地址38写入文件的FCB中。

6)结束分配。