第5章习题解答一、填空1.一个文件的文件名是在创建该文件时给出的。2.所谓“文件系统”,由与文件管理有关的那部分软件、被管理的文件以及管理所需要的数据结构三部分组成。3.块是辅助存储器与内存之间进行信息传输的单位。4.在用位示图管理磁盘存储空间时,位示图的尺寸由磁盘的总块数决定。5.采用空闲区表法管理磁盘存储空间,类似于存储管理中采用可变分区存储管理方法管理内存储器。6.操作系统是通过文件控制块(FCB)感知一个文件的存在的。7.按用户对文件的存取权限将用户分成若干组,规定每一组用户对文件的访问权限。这样,所有用户组存取权限的集合称为该文件的存取控制表。8.根据在辅存上的不同存储方式,文件可以有顺序、链接和索引三种不同的物理结构。9.如果把文件视为有序的字符集合,在其内部不再对信息进行组织划分,那么这种文件的逻辑结构被称为“流式文件”。10.如果用户把文件信息划分成一个个记录,存取时以记录为单位进行,那么这种文件的逻辑结构称为“记录式文件”。二、选择1.下面的B不是文件的存储结构。A.索引文件B.记录式文件C.串联文件D.连续文件2.有一磁盘,共有10个柱面,每个柱面20个磁道,每个盘面分成16个扇区。采用位示图对其存储空间进行管理。如果字长是16个二进制位,那么位示图共需A字。A.200B.128C.256D.1003.操作系统为每一个文件开辟一个存储区,在它的里面记录着该文件的有关信息。这就是所谓的B。A.进程控制块B.文件控制块C.设备控制块D.作业控制块4.文件控制块的英文缩写符号是C。A.PCBB.DCBC.FCBD.JCB5.一个文件的绝对路径名总是以C打头。A.磁盘名B.字符串C.分隔符D.文件名6.一个文件的绝对路径名是从B开始,逐步沿着每一级子目录向下,最后到达指定文件的整个通路上所有子目录名组成的一个字符串。A.当前目录B.根目录C.多级目录D.二级目录7.从用户的角度看,引入文件系统的主要目的是D。A.实现虚拟存储B.保存用户和系统文档C.保存系统文档D.实现对文件的按名存取8.按文件的逻辑结构划分,文件主要有两类:A。A.流式文件和记录式文件B.索引文件和随机文件C.永久文件和临时文件D.只读文件和读写文件9.位示图用于B。A.文件目录的查找B.磁盘空间的管理C.主存空间的共享D.文件的保护和保密10.用户可以通过调用C文件操作,来归还文件的使用权。A.建立B.打开C.关闭D.删除三、问答1.试说出MS-DOS或Windows对文件名的命名规则。举几个例子,说明哪个文件名起得是对的,哪个文件名起得是不符合命名规则的。答:例如MS-DOS,它的文件名由两部分组成:文件名和扩展名。文件名由1~8个字符组成;在文件名的后面,可以跟随扩展名(可选)。扩展名总是以一个点开始,然后是1~3个字符。组成文件名和扩展名的字符可以如下。英文字母:A~Z,a~z,共52个(不区分大小写)。数字符号:0~9。特殊符号:$、#、&、@等。不能使用的字符有*、?等。例如:test.txtabc.obj等都是正确的文件名;而:abcdefhgijk.txty是不正确的文件名。对于Windows,文件名最多可以有256个字符,其他与MS-DOS类同。2.试说出在MS-DOS里打印机的文件名。举一个包含有这个名字的MS-DOS命令,它的含义是什么?答:在MS-DOS里,可以把打印机视为只写文件来处理,这时打印机的文件名是:PRN。例如命令:COPY\USER\FILE1PRN表明是把文件“\USER\FILE1”拷贝到文件PRN,也就是把文件“\USER\FILE1”在打印机上打印出来。3.为什么位示图法适用于分页式存储管理和对磁盘存储空间的管理?如果在存储管理中采用可变分区存储管理方案,也能采用位示图法来管理空闲区吗?为什么?答:无论是分页式存储管理还是磁盘存储空间的管理,它们面对的管理对象——存储块(内存块或磁盘块)的数量,在系统的运行过程中是固定不变的。因此,可以很方便地用相同数量的二进制位来对应管理它们。但如果在存储管理中采用可变分区存储管理方案,那么在系统运行时,分区的数目是变化的。因此,也就无法用位示图法来管理这些分区的使用情况。4.有些操作系统提供系统调用命令RENAME给文件重新命名。同样,也可以通过把一个文件复制到一个新文件、然后删除旧文件的方法达到给文件重新命名的目的。试问这两种做法有何不同?答:使用RENAME命令给文件重新命名时,用户要提供两个参数:旧文件名,新文件名。RENAME命令将根据旧文件名找到文件的目录项,把里面登记的旧文件名改为新文件名。所以,文件重新命名的功能就是修改该文件目录里的文件名,其他特性不变。后一种方法是先对文件进行复制,为其起一个新的名字,然后再删除旧的文件。这时,复制过程犹如创建一个文件,新文件除了名字与以前不同外,文件的某些特性也改变了,例如存放的地址不同了。所以,采用这种方法虽然也能够达到给文件重新命名的目的,但显得要比前一种方法复杂一些。5.“文件目录”和“目录文件”有何不同?答:“文件目录”是指一个文件的目录项,里面存放着文件的有关数据信息。“目录文件”则是指如果文件很多,那么文件目录项的数量也就很多。为此,操作系统经常把这些目录项汇集在一起,作为一个文件来加以管理,这就是所谓的“目录文件”。因此,“文件目录”和“目录文件”是两个不同的概念,不能混为一谈。6.一个文件的绝对路径名和相对路径名有何不同?答:在树型目录结构中,用户要访问一个文件,必须使用文件的路径名来标识文件。从根目录出发、一直到所要访问的文件,将所经过的目录名字用分隔符连接起来,所形成的字符串,就是该文件的绝对路径名。如果是从当前目录出发,一直到所要访问的文件,将所经过的目录名字用分隔符连接起来,所形成的字符串,就是该文件的相对路径名。可以看出,绝对路径名是文件的全名,必须从根目录开始。所以,一个文件的绝对路径名是惟一的。相对路径名总是从当前目录往下,所以文件的相对路径名与当前位置有关,是不惟一的。7.试述“创建文件”与“打开文件”两个系统调用在功能上的不同之处。答:所谓“创建文件”,表示原先该文件并不存在。所以创建文件时,最主要的功能是在磁盘上为其开辟存储空间,建立起该文件的FCB。文件创建后,有了它的FCB,系统才真正感知到它的存在;“打开文件”是这个文件已经存在,只是它的有关信息不在内存。因此,打开文件最主要的功能是把该文件FCB中的信息复制到内存中,以便为随后对文件的操作带来便利。8.试述“删除文件”与“关闭文件”两个系统调用在功能上的不同之处。答:“删除文件”最主要的功能是把该文件的FCB收回。文件没有了FCB,系统也就无法感知到它的存在了。所以,在执行了删除文件的命令后,这个文件就在系统里消失了;而“关闭文件”最主要的功能是把复制到内存活动目录表里的该文件的FCB信息取消。这样一来,在内存活动目录表里没有了该文件的信息,就不能够对这个文件进行读、写了。所以,关闭一个文件后,这个文件还存在,只是不能对它操作了。如果要操作,就必须再次将它打开(即把FCB里的信息复制到内存的活动目录表),然后再进行操作。9.为什么在使用文件之前,总是先将其打开后再用?答:有关文件的信息都存放在该文件的FCB里,只有找到文件的FCB,才能获得它的一切信息。但FCB是在磁盘里。因此,只要对文件进行操作,就要到磁盘里去找它的FCB。这种做法,无疑影响了文件操作的执行速度。正因为如此,操作系统才考虑在对文件进行操作前,先将其打开,把文件的FCB内容复制到内存中来。这样,查找文件的FCB,就不必每次都要去访问磁盘。10.如果一个文件系统没有提供显式的打开命令(即没有OPEN命令),但又希望有打开的功能,以便在使用文件时能减少与磁盘的交往次数。那么应该把这一功能安排在哪个系统调用里合适?如何安排?答:文件系统中设置打开命令的根本目的,是减少文件操作时与磁盘的交往次数。如果系统没有提供显式的打开命令,但又要能减少与磁盘的交往次数,那么只需把这一功能安排在读或写系统调用命令里。这时,在读、写命令功能前面添加这样的处理:总是先到内存的活动目录表里查找该文件的FCB。如果找到,则表明在此前文件已经被打开,于是就可以立即进行所需要的读、写操作;如果没有找到,那么表明在此前文件还没有打开。于是应该先按照文件名,到磁盘上去查找该文件的FCB,把它复制到内存的活动目录表里,然后再进行对它的操作。四、计算1.我们知道,可以用位示图法或成组链接法来管理磁盘空间。假定表示一个磁盘地址需要D个二进制位,一个磁盘共有B块,其中有F块空闲。在什么条件下,成组链接法占用的存储空间少于位示图?解:依题意,该磁盘共有B块,这意味采用位示图法来管理磁盘空间时,共需要B个二进制位构成位示图的存储空间;另一方面,现在共有F个空闲块,而表示一个磁盘地址(即一个空闲块)需要D个二进制位。所以在当前条件下,用成组链接法来管理磁盘空间中的F个空闲块时,要用F×D个二进制位的存储空间来管理它们。因此,只要题中所给的D、B、F三者之间满足关系:BF×D就可以保证使用成组链接法占用的存储空间少于位示图。2.假定磁带的存储密度为每英寸800个字符,每个逻辑记录长为160个字符,记录间隙为0.6英寸。现在有1000个逻辑记录需要存储到磁带上。分别回答:(1)不采用记录成组技术,这时磁带存储空间的利用率是多少?(2)采用以5个逻辑记录为一组的成组技术进行存放,这时磁带存储空间的利用率是多少?(3)若希望磁带存储空间的利用率大于50%,应该多少个逻辑记录为一组?解:(1)如果不采用记录成组技术,存放一个逻辑记录,就要有一个记录间隙。因为磁带的存储密度为每英寸800个字符,每个逻辑记录长为160个字符。所以一个逻辑记录占用的磁带长度是:160/800=0.2(英寸)一个记录间隙所需要的磁带长度为0.6英寸。所以,磁带存储空间的利用率是:0.2/(0.2+0.6)=0.25=25%(2)采用以5个逻辑记录为一组的成组技术进行存放,表示存放5个逻辑记录后,有一个记录间隙。5个逻辑记录占用的磁带长度是:0.2×5=1(英寸)这时一个记录间隙所需要的磁带长度仍为0.6英寸。所以,这时磁带存储空间的利用率是:1/(1+0.6)=0.625=62.5%(3)若希望磁带存储空间的利用率大于50%,假定应该x个逻辑记录为一组。这就是说,存放x个逻辑记录后,有一个记录间隙。x个逻辑记录占用的磁带长度是:0.2×x(英寸);这时一个记录间隙所需要的磁带长度仍为0.6英寸。所以,磁带存储空间的利用率是:x/(x+0.6)=0.5解这个一元一次方程式,x=3。也就是说,当把3个以上的逻辑记录组成一组时,磁带存储空间的利用率将大于50%。3.假定有一个名为MYFILE的文件,共有10个逻辑记录,每个逻辑记录长为250个字节。磁盘块尺寸为512字节,磁盘地址需要2个字节表示。把MYFILE采用链接结构存储在磁盘上。(1)画出该文件在磁盘上的链接结构图(磁盘块号自定)。(2)现在用户要读文件上包含第1425个字符的逻辑记录。给出完成这一请求的主要工作步骤。解:(1)由于每个逻辑记录长为250个字节,磁盘块尺寸为512字节。所以,每个磁盘块里可以存放两个逻辑记录,余下的字节用于存放指针,文件总共需要5块。假定系统分配给该文件的磁盘块号是:25、33、10、56、4。于是,该文件在磁盘上的链接结构图如图5-1所示。X文件的目录块号:指针:2个逻辑记录253310563310564文件名X首块号尾块号2544–1图5-1计算题3的图示(2)首先要知道包含第1425字节的逻辑记录应该放在链接结构的第几块。因为一个逻辑记录是250个字节,2个逻辑记录放在一个磁盘块里。所以1425/(250×2)=2(“/”表示整除运算)即包含第1425字节的逻辑记录应该放在链接结构的第3块(注意,由于是用整除,所以第1块应该是0)。其次,文件系统沿着指针,把第3块(也就是块号为56的块)读入内存缓冲区中。最后,由1425%(250