例题:
1.一个1.2M的磁盘,盘块512B大小;若文件系统采用FAT格式,则FAT表大小如何?
表项个数 = 盘块个数
= 容量 / 盘块大小
= 1.2 220 / 29 = 1.2 211 个
表项大小,决定于盘块数量编号需要的位数=12 位;
FAT表大小 = 表项个数 * 表项大小
= 1.2 211 * 12 bit
= 1.2 211 * 1.5B = 3.6KB
以半字节(0.5B=4b)为基本单位,表项需12位(1.5B)
由上述公式,若容量为200M的磁盘,盘块仍为512B,FAT表大小如何?
FAT表表项有200K≈218 (个)
表项需20位,即28+4,2.5字节
FAT表需内存大小为2002.5=500KB
2.若两级索引,盘块1KB,盘块号占4字节
一个盘块可存放的盘块号数有多少个
1KB/4B = 210/4 = 28 = 256(个)
二级索引下的文件可分配的最大盘块数
256 * 256 =26×210=64 K(个)
文件最大长度为
64K(个)1KB=64MB
若盘块大小为4KB,单级索引允许文件最大长度为4MB(4K/44KB),二级索引则文件最大可达4GB(1K1K4KB)。
3.学号 char 10B 姓名 char 12B 成绩 int 2B
设盘块4KB大小,文件保存到磁盘时物理结构是显示链接结构,Fat表中记录的盘块顺序为(需要12块)2,3,5,7,9,13,15,19,25,30,28,问第201条记录在哪里?
解:根据题意可得一条学生记录所占字节为24B,第201条记录之前有200条记录,则占得空间大小为24200=4800B.
表项的个数=盘块的个数=4800B/4KB=商1余704
所以,第3#盘块偏移704B后就是第201条记录的信息
4、盘块1KB大小,硬盘500MB大小。显式链接方式时,FAT需占用多少存储空间?
文件A占用11、12、16、14盘块。
盘块500K个≈2的19次方
编号决定表项需19位,
半字节为单位,须20位,即 2.5 B
FAT大小 = 500K * 2.5B = 1250 KB
5、试描述过程:连续分配、隐式链接、显式链接和索引方式下如何将文件中3500字节偏移的逻辑地址转换为物理块号和块内偏移量。(设盘块大小为1KB,盘块号需4B)
3500 / 1024=3,余428
即逻辑块号3,块内偏移428(编号从0开始)
连续分配下:
FCB中查到起始物理块号。设为a,
在a+3号盘块中偏移428B即找到需要数据。
隐式链接方式:
每个盘块中的1KB中4B用于记录下一个块号,3500/1020=3,余440
FCB中获得第1个盘块号b0,读取b0最后4B得到下一个盘块号b1,继续同样操作到b2,到b3,在b3盘块中偏移440B。
6、某磁盘文件系统,采用混合索引分配方式,13个地址项记录在FCB中。若盘块大小512字节,盘块号需3字节(则一个盘块最多存放170个盘块号)
该文件系统允许文件的最大长度是多少?
5000、15000、150000需如何寻址?
FCB已在内存,其他信息都在外存,则访问文件某位置需访问磁盘,最少几次?最多几次?
(1)c=10+170+170170+170170170(个)
文件最大c*512B
(2)不同地址的寻址
5000/512,商9,余392,直接寻址即可:FCB第9项记录的块内偏移392
15000/512,商29,余152,<10+170。可从第10项一次寻址找第19=29-10处的块号(过了存放直接地址的盘块,进入了一级索引,在其首址上偏移19个单位找到该物理地址对应的数据即可)
(3)直接寻址最少一次,三次间址则最多访问磁盘4次