第六章 文件管理 作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章文件管理作业
课件:
作业一:1、假设某磁盘容量为2G,每个盘块大小为1K,请问该磁盘的文件分配表需要占用多大的存储空间?(设FAT 的每个表项的长度取半个字节的整数倍)
由题目所给条件可知,硬盘大小为2GB,磁盘块的大小为1KB,所以该硬盘共有盘块: 2GB/1KB=2MB,因为存储 2MB 个盘块号要用 21 位二进制,而每个表项的长度取半个字节(即 4 位)的整数倍,所以FAT 表项应占24 位,即文件分配表的每个表目大小为3B。故要占用的存储空间总数为:3*2MB=6MB
作业二:对于采用混合索引分配方式的 UNIX 系统中。如果每个盘块的大小为 512 字节,若盘块号需要3 个字节来描述,而每个盘块最多存放170 个盘块地址:
(1) 该文件系统允许的最大长度是多少?
(2)将文件的字节偏移量15000 转换为物理块号和块内偏移量。
(3) 假设某文件的 FCB 已在内存中,但其他信息均在外存,为了访问该文件中某个位置的内容,最多需要几次访问磁盘?
(1)该文件系统中一个文件的最大长度可达:10+170+170*170+170*170*170 块
=4942080 块 4942080*512B=2471040KB
(2)15000/512 得到的商为29,余数为152,即字节偏移量15000 对应的逻辑
块号为29,块内偏移为152. 由于10<29<10+170,而29-10=19,故可从FCB 的第10 个地址项,即一次间址项中得到一次间址块的地址,并从一次间址块的第19 项中获得对应的物理块号,块内偏移量为152
(3)由于文 FCB 已经在内存,为了访问文件中某个位置的内容,最少需要 1 次访问磁盘(即可通过直接读文件盘块),最多需要4 次访问磁盘(第一次是读三次间址块,第二次是读二次间址块,第三次是读一次间址块,第四次是读文件盘块)
课本:
14.在UNIX中,如果一个盘块的大小为1KB,每个盘块号占4个字节,即每块可放256个地址。请转换下列文件的字节偏移量为物理地址。⑴9999;⑵18000;⑶420000
解:盘块大小为1KB,盘块号占4B,即每个盘块最多可存放256个盘块号。又根据UNIX系统中采用的混合索引分配方式可知:9999/1024=9余783
18000/1024=17余592
420000/1024=410余160
23.有一计算机系统利用图6-33所示的位示图来管理空闲盘块。盘块的大小为1KB,现要为某文件分配量个盘块,试说明盘块的具体分配过程。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
4 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1
5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
图6-33 某计算机系统的位示图
解:分配量个盘块的过程如下:
⑴顺序扫描位示图,从中找到第一个值为0的二进制位,得到
其行号i=3,列号j=3。
⑵将所找到的二进制位转换成与之对应的盘块号。盘块号计算
公式为:b=(3-1)*16+3=35;
⑶修改位示图,令map[3,3]=1,并将该盘块分配出去。
类似地,可使用相同的方法找到第二个值为0的二进制位,得到行号i=4,列号j=7,其对应的盘块号为55,令map[i,j]=1,并将该盘块分配出去。
24.某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理磁盘空间,试问:
⑴位示图需要多少字?
⑵第i字第j位对应的块号是多少?
⑶给出申请/归还一块的工作流程。
解:
(1)[500/32]z=16个字
(2)b=(i-1)*32+j=32(i-1)+j
(b从1开始计数,i,j也从1开始计数)
(3)根据盘块号b求出:
i = (b-1)/32 + 1; j = (b-1)%32 + 1;
将第i字第j位置0