操作系统第七章--文件系统

文件的逻辑结构

1.无结构文件

又称“流式文件”。由二进制流或字符流组成,无明显逻辑结构。

2.有结构文件

    ①顺序文件 (默认各记录在物理上顺序存储)

串结构:记录顺序与关键字无关

顺序结构:记录按关键字顺序排列

可变长的顺序文件无法实现随机存取(可变长纪录得顺序文件在每次查询时只能从头依次查找),定长记录可以实现随机存取。

定长记录、顺序结构的顺序文件可以快速检索(根据关键字快速找到记录)。

缺点:不方便增删纪录

②索引文件

 索引文件:建立一张索引表,每个记录对应一个表项。各记录不用保持顺序,方便增删记录

索引表本身就是定长记录的顺序文件,一个索引表项就是一条定长记录,因此索引文件支持随机存取。

若索引表按关键字顺序排列,则可支持快速检索

评价:解决了顺序文件不方便增删记录的问题,同时让不定长记录的文件实现了随机存取,但索引表可能占用很多空间。

③索引顺序文件

索引顺序文件:将记录分组,每组对应一个索引表项

检索记录时先顺序检索索引表,找到分组,再顺序查询分组

当记录过多时,可建立多级表项。

会计算平均查找次数

文件目录

1.文件目录的实现

一个文件对应一个FCB(文件控制块),一个FCB就是一个目录项,多个FCB组成文件目录。

对目录的操作:搜索、创建、删除、显示、修改文件

2.目录结构

①单级目录结构:

一个系统只有一张目录表,不允许文件重名

②两级目录结构:不同用户文件可以重名,但不能对文件进行分类

③多级(树形)目录结构:
不同目录下的文件可以重名,可以对文件进行分类,不方便文件共享。

系统根据“文件路径”找到目标文件。

从根目录出发的是绝对路径,从当前目录出发的是相对路径

④无环图目录结构:在树形目录结构基础上,增加一些指向同一结点的有向边,使整个目录成为一个有向无环图。

为共享结点设置一个共享计数器,计数器为0时才能真正删除结点

3.索引结点(对FCB的优化

除了文件名之外的所有信息都放到索引结点中,每个文件对应一个索引结点。

目录项中只包含文件名,索引结点指针,因此每个目录项的长度大幅减小。目录项长度减小,每个磁盘块可以存放更多个目录项,因此检索文件时磁盘I/O的次数就减少了很多·a

4.文件的物理结构 (文件分配方式)

① 连续分配

连续分配方式要求每个文件在磁盘上占有一组连续的块

优点:支持顺序访问和直接访问(随机访问);连续分配的文件在顺序访问时速度最快。

缺点:不方便文件扩展;存储空间利用率低,会产生磁盘碎片。

问:用户通过逻辑地址操作自己的文件,操作系统如何实现逻辑地址到物理地址的转换?

用户给出要访问的逻辑块号,操作系统找到该文件对应的目录项,物理块号=起始块号+逻辑块号,注意检查逻辑块号的合法性(逻辑块号<长度

 

 ②链接分配

链接分配采取离散分配方式,可以为文件分配离散的磁盘块,分为隐式链接显式链接两种。

隐式链接:

隐式链接:除文件的最后一个盘块之外,每个盘块中都存有下一个盘块的指针,文件目录包括第一块和最后一块的指针。

优点:很方便文件扩展,不会有碎片问题,外存利用率高。

缺点:只支持顺序访问,不支持随机访问,查找效率低;指向下一盘块的指针会耗费少量存储空间。

 

显式链接:

显示存储:把用于链接文件各物理块的指针显式地存放在 一张表中,即文件分配表(FAT)。一个磁盘只会建立一张文件分配表,开机时文件分配表放入内存,并常驻内存。

优点:很方便进行文件扩展,不会有碎片问题,外存利用率高;支持随机访问;

缺点:FAT会占用一定的存储空间。

 

③索引分配

 索引分配允许文件离散地分配在各个磁盘块中,系统会为每个文件分配一张索引表,索引表中记录了文件每个逻辑块对应的物理块(索引表的功能类似于内存管理中的页表--建立逻辑页到物理页之间的映射关系)索引表存放的磁盘块称为索引块,文件数据存放的磁盘块称为数据块

 

 

若文件太大,索引表项太多,可以采取以下三种方法解决:

①链接方案:若果索引表太大,一个索引块装不下,那么可以将多个索引块链接起来存放。

缺点:若文件太大,索引表很长,就需要将多个索引块链接起来。想要找到i号索引块,必须先依此读入0~i-1号索引块,这就导致磁盘I/O次数过多,查找效率低下。

 

②多层索引:建立多层索引(原理类似于多级页表)。使第一层索引块指向第二层索引块。还可以根据文件大小要求建立第三层、第四层索引块。采用K层索引结构,且顶级索引表未调入内存,则访问一个数据块只需要K+1次读磁盘操作。

缺点:即使是很小的文件,访问一个数据块依然需要K+1次读磁盘操作。

 

③混合索引:多种索引分配方式的结合。例如,一个文件的顶级索引表中,既包含直接地址索引(直接指向数据块),又包含一级间接索引(指向单层索引表),还包含两级间接索引(指向两层索引表)

优点:对于一个小文件来说,访问一个数据块所需的读磁盘次数更少。

 

超重要考点!!!!

①要会根据多层索引,混合索引的结构计算出文件的最大长度(各级索引表最大不能超过一个块);

②要能自己分析访问某个数据块所需要的读磁盘次数(FCB中会存有指向顶级索引块的指针,因此可以根据FCB读入顶级索引块。每次读入下一级的索引块都需要一次读磁盘操作。

另外,要注意题目条件----顶级索引块是否已调入内存

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值