操作系统---第四章文件管理---文件系统实现---应用题

这篇博客探讨了操作系统中文件管理的相关应用题,涉及FCB分解法、链接文件存取、多级目录结构、文件分配表(FAT)计算、磁盘访问策略等多个方面,旨在理解文件系统的高效操作。

操作系统—第四章文件管理—文件系统实现—应用题

1FCB分解法。在实现文件系统时,为加快文件目录的检索速度,可利用“FCB分解法”。假设,目录文件存放在磁盘上,每个盘块512B,FCB占64B,其中文件名占8B。通常将FCB分解成两部分,第一部分占10B(包括文件名和文件内部号),第二部分占56B(包括文件内部号和文件的其他描述信息)

在这里插入图片描述

2设某文件为链接文件,由5个逻辑记录组成,每个逻辑记录的大小与磁盘块的大小相等,均为512B,并依次存放在50,121,75,80,63号磁盘块上。若要存取文件的第1569逻辑字节处的信息,要访问哪个磁盘块?

512*3 =1536 ,说明在80号磁盘块上。

3某文件系统是一级目录结构,文件的数据一次性写入磁盘,已写入的文件不可修改,但可多次创建新文件

索引分配的代价过高,链式分配虽然有利于文件扩充,但在本题中文件的数据一次性写入磁盘,因此不需要扩充文件。连续方式,寻道时间短,文件随机访问效率更高。
在FCB中加入的字段为<起始块号,块数>,

(2)

将所有的FCB集中存放,文件数据集中存放。这样在随机查找文件名时,只需访问FCB对应的块,可减少磁头移动和磁盘I/O访问次数。

4假定磁盘块的大小为1KB,对于540MB的硬盘,其文件分配表(FAT)最少需要占用多少存储空间?

对于540MB的硬盘,硬盘总块数为540MB/1KB=540K个,因此需要20位,
540K*2.5B=1350KB

5某磁盘文件系统使用链接分配方式组织文件,簇大小为4KB。目录文件的每个目录项包括文件名和文件第一个簇号,其他簇号存放在文件分配表FAT中。

(1)假定目录树如下图所示,各文件占用的簇号及顺序如下表所示,其中dir,dir1是目录,file1,file2是用户文件。请给出所有目录文件的内容?

在这里插入图片描述
在我最开始的答案中,我只写了文件名,忽略了簇号,我要记住这个教训。
在这里插入图片描述

(2)若FAT的每个表项仅存放簇号,占2B,则FAT的最大长度为多少字节?该文件系统支持的文件长度最大是多少?

其实题目中只出现了两个数据4KB和2B,我以为簇号和4KB有关,但仔细想想,4KB是一个簇的大小,它最多只能求一个簇中有多少页表项,不能求FAT(文件分配表)中有多少页号。
在这里插入图片描述

(3)系统通过目录文件和FAT实现对文件的按名存取,说明file1的106,108两个簇号分别存放在FAT的哪个表项中。

在FAT的每个表项中存放下一个簇号,file1的簇号106存放在FAT的100号表项中,簇号108存放在FAT的106号表项中。

(4)假设仅FAT和dir目录文件已读入内存,若需将文件dir/dir1/file1的第5000个字节读入内存,则要访问哪几个簇?

现在dir目录文件里找到dir1的簇号,然后读取48号簇,得到dir1目录文件,接着找到filr1的第一个簇号,据此在FAT里查找file1的第5000个字节所在的簇号,最后访问磁盘中的该簇。因此,需要访问目录文件die1所在的48号簇及文件file1的106号簇。

6

有一个文件系统如图A所示。图中的方框表示目录,圆圈表示普通文件。根目录常驻内存,目录文件组织成链接文件,不舍FCB,普通文件组织成索引文件。目录表指示下一级文件名及其磁盘地址(各占2B,共4B)。下级文件是目录为念时,指示其第一个磁盘块地址。下级文件是普通文件时,指示其FCB的磁盘地址。每个目录的文件磁盘块的最后4B供拉链使用。下级文件在上级目录文件中的次序在图中为从左到右。每个磁盘块有512B,与普通文件的一页等长。
普通文件的FCB组织如图B所示。其中,每个磁盘地址占2B,前10个地址直接指示该文件前10页的地址。第11个地址指示一级索引地址,一级索引表中的每个磁盘地址指示一个文件页地址;第12个地址指示二级索引表地址,二级索引表中的每个地址指示一个一级索引表地址;第13个地址指示三级索引表地址,三级索引表地址中的每个地址指示一个二级索引表地址。请问:

在这里插入图片描述

(1)一个普通文件最多可有多少个文件页?

磁盘地址有2B,但文件页数不是2^16,这是因为有FCB的存在。
**文件控制块(FCB)是用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。为了创建一个新文件,系统将分配一个FCB并存放在文件目录中,成为目录项。FCB主要包含以下信息:
基本信息:如文件名,文件的物理位置,文件的逻辑结构,文件的物理结构等
存取控制信息:如文件存取权限
使用信息:如文件建立时间,修改时间等。
**
一个磁盘地址就是一个文件页,因此计算出有多少个磁盘地址就计算出了多少个文件页。

因为磁盘块大小为512B,所以索引块大小也为512B,每个磁盘地址大小为2B。因此,一个一级索引表可容纳256个磁盘地址。同样,一个二级索引可容纳256个一级索引表地址,一个三级索引表可容纳256个二级索引表地址。这样,一个普通文件最多可有的文件页数为10+256+256256+256256*256=16843018。

(2)若要读取文件J中的某一页,最多启动文件多少次?

由图可知,目录文件A和D中的目录项都只有两个,因此这两个目录文件都只占用一个物理块。要读文件J中的某一页,先从内存的根目录找到目录文件A的磁盘地址,将其读入内存(已访问磁盘1次)。然后从目录A中找出目录文件D的磁盘地址读入内存(已访问磁盘两次)。再从目录D中找出文件J的FCB地址读入内存(已访问磁盘3次)。在最坏的情况下,该访问页存放在三级索引下,这时候需要一级级地读三级索引块才能得到文件J的地址(已访问磁盘6次)。最后读入文件J中的相关页(共访问磁盘7次)。

(3)若要读取文件W中的某一页,最少启动磁盘多少次?

由图可知,目录文件C和U的目录项较多,可能存放在多个链接在一起的磁盘块中。在最好的情况下,所需的目录项都在目录文件的第一个磁盘块中。先从内存的根目录中找到目录文件C的磁盘地址并读入内存(已访问磁盘1次)。在C中找出目录文件I的磁盘地址并读入内存(已访问磁盘2次)。在I中找出目录文件P的磁盘地址并读入内存(已访问磁盘3次)。从P中找到目录文件U的磁盘地址并读入内存(已访问磁盘5次)。在最好情况下,要访问的页在FCB的前10个直接块中,按照直接块知识的地址读文件W的相应页(已访问磁盘6次)。所以,若要读文件W中的某页,最少启动磁盘6次。

(4)根据(3),为最大限度地减少启动磁盘的次数,可采用什么办法?此时,磁盘最多启动多少次?

为了减少启动磁盘的次数,可以将需要访问的W文件挂在根目录地最前面的目录项中。此时,只需读内存中的根目录就可找到W地FCB,将FCB读入内存(已访问磁盘1次)。最差情况下,需要的W文件地那个页挂在FCB地三级索引下,因此读三个索引块需要访问磁盘3次(已访问磁盘4次)得到该页的物理地址,再去读这个页即可(已访问磁盘5次)。此时,磁盘最多启动5次。

7某文件系统采用多级索引的方式组织文件的数据存放,假定在文件的i_node中设有13个地址项,其中直接索引10项,一次间接索引项1项,二次间接索引项1项,三次间接索引项1项,数据块的大小为4KB,磁盘地址用4B表示。

一个2GB大小的文件,在这个文件系统中实际占用多少空间?
在这里插入图片描述

8若一个字有32位,则位示图中第18个字的第16位对应的块号是多少?

本来我以为块号是 18*32+16,但是我忽略了第18个块还没有用光,是不能全部算进去的。
正确的块号=(18-1)*32+16=560

9

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值