北航操作系统课程-第十次作业-文件系统

北航操作系统课程-第十次作业-文件系统


北京航空航天大学计算机学院-2020春操作系统课程
题目作者为北航计算机学院操作系统课程组,答案为博主原创。水平有限,无法保证作答正确性,如有错误敬请批评指正。部分作答源自百度谷歌等其他资料,如有侵权联系删除


1 请在课件的基础上进行调研,总结在实现文件系统时可以从哪些方面提高文件系统的性能,简要给出相关方法的具体解决思路。

(1)设计文件系统时应尽量减少访问磁盘的次数以提高文件系统的性能,措施包括使用块高速缓存和目录项分解法等等。使用更大的块高速缓存能直接减少对磁盘的访问次数,提升文件系统读写性能;而项目录分解法把目录项(文件控制块)分为两部分:名号目录项,包含文件名以及相应的文件内部号;基本目录项,包含了除文件名外文件控制块的其他全部信息。目录文件也分为名号目录文件和基本目录文件。查找一个目录项就分成两步:首先访问名号目录文件,根据文件名查找相应的文件内部号;然后访问基本目录文件,根据文件内部号,可直接计算出相应基本目录项所在基本目录文件中的相对位置和物理位置,并将它直接读入内存,提高了文件目录检索的速度。

(2)改善磁盘性能,包括采用磁盘驱动调度改善进程对磁盘的平均访问时间,采用磁盘碎片整理技术等等。当多个访盘请求在等待时,系统采用一定的策略,对这些请求的服务顺序进行调整安排,使寻道时间和延迟时间都尽可能小的那个访问请求可以优先得到服务,并降低若干个访问者的总访问时间,增加磁盘单位时间内的操作次数。达到降低平均磁盘服务时间的目的,从而实现公平、高效的访盘请求。磁盘碎片的产生是因为文件被分散保存到整个磁盘的不同地方,而不是连续地保存在磁盘连续的簇中形成的。文件碎片一般不会在系统中引起问题,但文件碎片过多会使系统在读文件的时候来回寻找,引起系统性能下降,严重的还要缩短硬盘寿命。磁盘碎片整理技术对长期运行产生的磁盘碎片进行整合,可提高磁盘的整体性能和计算机的运行速度。


2 简述文件控制块(FCB)中一般都存储哪些信息。

  • 基本信息
    • 文件名:字符串,通常在不同系统中允许不同的最大长度,可修改
    • 物理位置
    • 文件逻辑结构:有/无结构(记录文件,流式文件)
    • 文件物理结构:(如顺序,索引等)
  • 访问控制信息
    • 文件所有者(属主):通常是创建文件的用户,或者改变已有文件的属主
    • 访问权限(控制各用户可使用的访问方式):如读、写、执行、删除等
  • 使用信息
    • 创建时间,上一次修改时间,当前使用信息等。

3 在文件系统中,访问一个文件f时首先需要从目录中找到与f对应的目录项。已知文件系统数据块大小为1KB,一个目录项的大小为128字节,文件平均大小为100KB。该文件系统的目录结构如图所示。不考虑磁盘块的提前读和缓存等加速文件读写的技术,请回答以下问题:

在这里插入图片描述

1)如果采用串联文件实现,同时文件属性直接存储在目录项中,并且根目录的目录项已读入内存中。访问第三级目录下的一个文件中的一个块平均需要访问几次磁盘?

2)如果采用索引文件实现,目录项中仅存储文件名和i节点指针,其中文件名占14个字节,i节点指针占2个字节。如果仅采用直接索引,每个第三级目录下的文件数不超过50个,且根目录的i节点已读入内存,访问第三级目录下的一个文件的一个块平均需要访问几次磁盘?

3)假设该文件系统所管理的磁盘空间为16ZB(1ZB=270B)。如果inode中包括512字节的索引区,且允许采用一级间接索引进行组织,那么该文件系统支持的最大文件是多少字节?

  1. 访问二级目录:根目录的目录项已经读入内存,那么读取二级目录不需要访问磁盘。

    访问三级目录:一个磁盘块1KB,每个目录项128B,那么一个磁盘块可以放1KB/128B=8个目录项;而如图所示每个二级目录下有128个三级目录,这些三级目录分布在128/8=16个磁盘块上。串联文件形式,访问一个三级目录项至少访问1次磁盘,至多访问16次磁盘,平均8.5次。

    访问文件块:文件平均大小100KB,每个磁盘块1KB,每个文件平均要分布在100KB/1KB=100个磁盘块上。串联文件形式,访问一个块至少访问1次磁盘,至多访问100次,平均50.5次。

    综上,平均共需要访问磁盘0+8.5+50.5=59次。

  2. 访问二级目录:访问二级目录的i节点1次,访问二级目录内容1次,共2次

    访问三级目录:访问三级目录的i节点1次。访问三级目录内容时,一个目录项只占14+2=16个字节,那么一个磁盘块可以存放1KB/16B=64个目录项,每个二级目录下有128个三级目录,分布在128/64=2个磁盘块上,因此访问三级目录的内容至少访问磁盘1次,至多访问磁盘2次,平均1.5次。因此访问三级目录平均访问磁盘2.5次。

    访问文件磁盘块:访问磁盘块的i节点1次,访问磁盘块1次,共2次。

    综上,平均共需要访问磁盘2+2.5+2=6.5次

  3. 文件系统最多允许记录的磁盘块数为16ZB/1KB=2^64个磁盘块。为表示这些磁盘块,需要64位,即8字节空间。inode中的索引区可以存放 512B/8B=64个磁盘块,一级索引指向的磁盘块中可存储1KB/8B=128个磁盘块号,在采用一级索引的情况下,支持的最大文件为64*128*1KB=8MB。

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值