文件系统习题及答案
一:选择题
1、文件系统最基本的目标是(1),它主要是通过(8)功能实现的,文件系统所追求的最
重要的目标是(4)。
(1)按名存取(2)文件共享(3)文件保护(4)提高对文件的存取速度(5)提高I/O速度(6)提高存储空间利用率(7)存储空间管理(8)目录管理(9)文件读写管理(10)文件安全性管理
2、按逻辑结构,文件分为(5)和(6)两类,UNIX系统中的文件系统采用(6)
(1)读、写文件(2)只读文件(3)索引文件(4)链式文件(5)记录文件(6)流式文件
3、从下面的描述中,选择出一条错误的描述
(1)一个文件在同一系统中、不同的存储介质上的拷贝,应采用同一种物理结构。
(2)文件的物理结构不仅与外存的分配方式相关,还与存储介质的特性相关,通常在磁带上只适合使用顺序的存储结构。
(3)采用顺序结构的文件既适合进行顺序访问,也适合进行直接访问。
(4)虽然磁盘是随机访问的设备,但其中的文件也可使用顺序存储结构
4、从下面关于索引文件的论述中,选出两条正确的论述
(1)在索引文件中,索引表的每个表项包含有相应记录的关键字和该记录的物理地址
(2)对顺序文件进行检索时,首先从FCB中读出文件的第一个盘块号,而对索引文件进行检索时,应先从FCB中读出文件索引表的起始地址。
(3)对一个具有三级索引表的文件,存取一个记录通常需要三次访问磁盘
(4)在文件较大时,无论进行顺序存取还是随机存取,通常都以索引文件方式最快。
5、对文件空闲空间管理,MS-DOS采用的是(2),UNIX采用的是(4)
(1)空闲表(2)文件分配表(3)位示图(4)成组链接法
6、文件系统中,通常利用(4)来管理文件,为了允许不通用户的文件具有相同的文件名,
通常文件系统采用(6),在目录文件中的每个目录项通常是(8),在UNIX系统中,目录项目则是(7)
(1)文件控制块(2)索引结点(3)符号名表(4)目录(5)重名(6)多级目录(7)文件名和索引结点的指针(8)FCB (9)索引节点
7、在树型目录结构中,用户对某个文件的首次访问通常都采用(2),文件被打开后,对文
件的访问通常采用(4)
(1)文件符号名(2)文件路径名(3)内存索引结点的指针(4)用户文件的描述符
8、从下面关于目录检索的论述中,选出一条正确的论述
(1)用于hash法具有较快的检索速度,故现代操作系统中已经开始用它来替代传统的顺序检索方法。
(2)在利用顺序检索法时,对树型目录应采用文件的路径名,且应从根目录开始逐级检索。
(3)在利用顺序检索法时,只要找到一个文件分量名未找到,便应停止查找。
(4)在顺序检索法的查找完成后,即可得到文件的物理地址。
9、在create()过程中,如果没有检索到指定文件的索引结点,此时属于(3),检索到指
定文件的索引结点,此时若允许写,则此时属于(4),否则属于(1)。
(1)出错(2)文件重新命名(3)创建文件(4)重写文件
二:综合题
1.假定有一个一层文件系统(即所有文件只能存储于根目录):文件名长度最多为1024
个字符;文件名允许使用包括“a-z”、“A-Z”、“0-9”、“.”在内的26 + 26 + 10 + 1 = 63个字符。
请设计一种方法,在该一层文件系统上模拟多层文件系统:
(1)请详细描述你的方法;
答:
方法1:使用.作为目录分割符
方法2:创建一个文件(比如.),专门维护路径/文件名到真实文件名的映射关系(2)请分析你的方法对于文件个数的限制和对于目录层数的限制。
答:方法1:总文件个数62^1024个文件,目录层数最多512层
方法2:总文件个数63^1024-1个文件,目录层数没有限制
2.某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理盘空间,
试问:(1)位示图需多少个字? (2)第i字第j位对应的块号是多少? (3)并给出申请/归还一块的工作流程。
答:(1) 位示图占用字数为500/32=16(向上取整)个字。
(2) 第i字第j位对应的块号N=32×i+j。
(3)申请时自上至下、自左至有扫描位示图跳过为1的位,找到第一个迁到的0
位,根据它是第i字第j位算出对应块号,并分配出去。
归还时已知块号,块号/32算出第i字第j位并把位示图相应位清0。
3.在UNIX 中,如果一个盘块的大小为1KB,每个盘块号占4个字节,即每块可放
256个地址。
请转换下列文件的字节偏移量为物理地址:(1)9999;(2)18000;
(3)420000。
答:步1 将逻辑文件的字节偏移量转换为文件的逻辑块号和块内偏移。
方法是:将逻辑文件的字节偏移量/盘块大小,商为文件的逻辑块号,余数是块内偏移。
步2将文件的逻辑块号转换为物理块号。
使用多重索引结构,在索引节点中根据逻辑块号通过直接索引或间接索引找到对应物理块号。
(1)9000 L1=INT(9999,1024)=9 B1=MOD(9999,1024)=783
其逻辑块号为9,故直接索引addr[8]中可找到物理块号。
(2)18000 L2=INT(18000,1024)=17 B1=MOD(18000,1024)=592
其逻辑块号为17,通过一次间接索引addr[10]中可找到物理块号。
(3)420000 L1=INT(420000,1024)=410 B1=MOD(9000,1024)=160
其逻辑块号为410,通过二次间接索引addr[11]中可找到物理块号。
4.设文件ABCD为定长记录的连续文件,共有18个逻辑记录。
如果记录长为512B,
物理块长为1024B,采用成组方式存放,起始块号为12,叙述第15号逻辑记录读入内存缓冲区的过程。
答:采用成组方式存放,块因子为2。
由于共有18个逻辑记录,故占用了9个物理块,而第15号逻辑记录占用的是第15/2=8(向上取整)物理块。
因为,是连续文件物理块也是连续
的,所以,该逻辑记录占用的是12+8-1=19块。
所以,第15号逻辑记录读入内存缓冲区的过程如下:根据块因子,计算占用的相对物理块号8;根据起始块号为12,计算出绝对物理块号19;把物理块号19读入内存缓冲区;把所要的逻辑记录分解出来。
5.磁盘共有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
扇区号=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。