跳到主要内容
SUN / 笔记
← 全部文章

第五章作业

详见教材第5章习题5-9、5-10、5-13、5-14、5-15。

5-9.

文件存储空间可采用成组自由块链表或位示图。若一个磁盘有B个盘块,其中有F个自由块,盘空间用D位表示。试给出使用自由块链表比使用位示图占用更少的空间的条件。当D为16时,给出满足条件的自由空间占整个空间的百分比。

一磁盘有B个盘块,用位图表示要使用B位

成组自由块链表需要存储 F 个空闲盘块的地址,总共占用位数为 F×D。 位示图需要用 B 位来标示全部盘块的占用情况。

所以当F×D<B 时,链表比位示图更省空间。

当D=16时,满足条件的自由空间占整个空间的百分比为

F/B<1/16=6.25%。

5-10.

文件系统的执行速度依赖于缓冲池中找到盘块的比率。假设盘块从缓冲池读出用1ms,从盘上读出用40ms,从缓冲池找到盘块的比率为n,请给出一个公式计算读盘块的平均时间,并画出n从0到1.0的图像。

读一个盘块的平均时间=n+40(1-n)=40-39n

image-20251205152404332

5-13.

磁盘上有一个链接文件A,有10个记录,每个记录的长度为256B,存放在5个磁盘块中,如图所示。若要访问该文件的第1574字节数据,应该访问哪个磁盘块?要访问几次磁盘才能将该字节的内容读出?

物理块号 链接指针
5 7
7 14
14 4
4 10
10 0

1574/256 = 6.....38

所以要访问的文件在第七个记录的38B位置。每个物理块放两个记录,所以要访问的物理块号是4的第38个字符。

要访问4次磁盘

5-14.

一个文件系统中,当前只有根目录被缓存到主存。假定所有目录文件都只占用一个磁盘块,那么要打开文件/usr/lim/course/os/result.txt,共需要多少次磁盘操作?

根目录:已在主存,不需要磁盘访问

usr:需要 1 次

usr/lim:需要 1 次

usr/lim/course:需要 1 次

usr/lim/course/os:需要 1 次

读取文件本身块:需要 1 次

5次

5-15.

一个文件系统采用索引结构来组织文件,且索引表的内容只包含存储文件的磁盘块号。假定一个索引项占2B,磁盘块大小为16KB,磁盘空间为1GB。

现有一个目录只包含3个文件,大小分别为10KB,1089KB,129MB。若忽略目录文件占用的空间,请问存储这些文件要占用该磁盘多少空间?

1GB=230 ,16KB=214 , 230/214 =216 ,每个磁盘块号需要2个字节表示,即2B。

(1)10KB<16KB, 所以,只占用1个磁盘块。

(2)1089KB/16KB=69 需一个索引块和69个数据块,共70个盘块。

(3)129MB/16KB=8256 , 16KB/2B=8K(个索引项)<8256

所以,需2个一级索引表和一个1个二级索引表,8256个数据块。

共需8259个磁盘块。

相关文章

第六章作业 →操作系统 →第四章作业 →