一、简答题:
1.什么是文件?它包含哪些类型及特点?
文件是指由创建者所定义的、具有文件名的一组相关元素的集合。可分为有结构文件和无结构文件两种。在有结构的文件中,文件由若干个记录组成;无结构文件则被看成是一个字符流。
特点:具有一系列属性;保存在外存上;一般为程序和数据;是一个自大的数据单位,描述了一个对象集。
- 什么是文件的逻辑结构?它有哪几种组织方式?
文件的逻辑结构是是从用户观点出发所观察到的文件组织形式,即文件是由一系列的逻辑记录组成的,是用户可以直接处理的数据及结构,他独立于文件的物理特性。
有3种组织方式。
- 顺序文件,指由一系列记录按某种顺序排列所形成的文件,其中的记录可以是定长记录或可变长记录。
- 索引文件,指可变长记录文件建立的一张索引表,为每个记录设置一个表项,以加速对文件记录的检索速度。
- 索引顺序文件,是顺序文件与索引文件相结合的产物。在为每个文件建立一张索引表时,并不是为每个记录建立一个索引表项,而是为一组记录中的第一个记录建立一个索引表项。
- 什么是文件系统,文件系统的主要功能包括哪些?
文件系统是操作系统管理程序和数据的一种组织形式和系统。
主要功能包括:管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法;实现文件从标识到实际地址的映射,实现文件的控制操作和存取操作,实现文件信息的共享并提供可靠的文件保密和保护措施,提供文件的安全措施。
- 目前广泛采用的目录结构是哪种?它有什么优点?
树形目录。
优点: 提高对目录的检索速度和文件系统的性能,可以允许不同路径下的文件重名,层次结构更清晰,更能有效地进行文件的管理和保护。
- 什么是文件的物理结构?它有哪几种组织方式?
文件的物理结构是指文件在外存上所形成的一种存储组织形式,是用户不可见的。有三种结构形式:(1)连续组织结构(2)串联组织结构(3)索引组织结构
二、综合题:
6. 一个文件的逻辑记录大小为125字节,共有20个逻辑记录,文件系统采用链接方式将这个文件存储到磁盘上,磁盘分块大小为512字节,请问:
(1)采用什么方法可有效地利用磁盘空间?
(2)若用户要读包含第l285字节的逻辑记录,文件系统将如何工作?
(1)可以采用成组记录的方法来有效利用空间。每个记录为125字节,500 整除125 等于4,所以每个磁盘存放4个记录,剩余12字节用于存放指针。 20个记录就需要5个存储块。
(2)1285 整除 500 等于2。所以包含第1285字节的记录在第三个磁盘块上。 然后再从第三个磁盘块上取位于第 1285 % 500 = 285位置的数据。
7. 在放在某个磁盘上的文件系统,采用混合索引分配方式,其FCB中共有13个地址项,第0~9个地址项为直接地址,第10个地址项让车一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。如果第个盘块的大小为512字节,若盘块号需要用3个字节来描述,而每个盘块最多存放170个盘块地址:
(1)该文件系统允许文件的最大长度是多少?
(2)将文件的字节偏移量5000、15000、150000转换为物理块号和块内偏移量。
(1)每个盘块最多存放 170个盘块地址。
512 * (10 + 170 + 170^2 + 170^3 ) = 2530344960B
- 5000 // 512 = 9; 5000 % 512 = 392; 即5000对应的逻辑块号为9, 可直接寻址找到。块内偏移量为392。
15000 // 512 = 29; 15000%512 = 152; 10< 29 < 10+170,所以在一次间址处。所在物理块在第一次间址的 29 - 10 = 19 个盘块上。 块内偏移152;
150000 // 512 = 292; 150000%512 = 496; 10 + 170 < 292 + 10 + 170^2; 所以在二次间址的区域找到。 292 - (10+170) = 112。 112小于170. 所以先找到二次寻址的块,再在其中170个块中找第一块,这第一个块再连接过去的第112个块就是该物理盘块。块内偏移496;
8. 有一个计算机系统利用如图所示的位示图(行号、列号都从0开始编号)来管理空闲盘块。如果盘块从1开始编号,每个盘块的大小为1KB。
(1)现要为文件分配两个盘块,试具体说明分配过程。
(2)若要释放磁盘的第300块,应如何处理?
(1)检索位示图,找到第一个值为0的二进制位,其行号i1=2,列号j1=2;第二个值为0的二进制位,其行号i2=3,列号j2=6。
两个空闲块的盘块号分别为:
i1 * 16 + (j1 + 1) = 35
i2 * 16 + (j2 + 1) = 55
将盘块号交给操作系统分配出去,然后将 [2, 2] [3, 6]致为1
- 300 // 16 = 18; 所以行号为18
300 %16 = 12; 所以列号为11
将[18, 11]致为0 即可。