计算机操作系统第5章-文件管理
五 文件管理
author: spongehah from:hut
作者个人博客:https://blog.hahhome.top/
参考视频: B站王道考研计算机操作系统
[TOC]
1 初识文件管理
计算机中存放了各种各样的文件,一个文件有哪些属性?
文件内部的数据应该怎样组织起来?
文件之间又应该又应该怎么组织起来?
从下往上看,OS应提供哪些功能,才能方便用户、应用程序使用文件?
从上往下看,文件数据应该怎么存放在外存(磁盘)上?
1.1 文件的定义 和 属性
文件的定义:一组有意义的信息的集合
一个文件有哪些属性?
- 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件。
- 标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称。
- 类型:指明文件的类型
- 位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)
- 大小:指明文件大小
- 创建时间、上次修改时间
- 文件所有者信息
- 保护信息:对文件进行保护的访问控制信息
1.2 操作系统应提供的功能
2 文件的逻辑结构
分为:
- 无结构文件
- 有结构文件
主要讨论有结构文件的逻辑结构
2.1 顺序文件
顺序文件:
两种存储方式:
- 顺序存储(数组)、物理位置相邻
- 链式存储(链表)、物理位置不一定相邻
两种记录顺序:
- 顺序结构:按照关键字的顺序存储(对关键字进行有序排列)
- 串结构:通常按照存入时间排序
假设:已经知道了文件的起始地址(也就是第一个记录存放的位置)
思考1:能否快速找到第ⅰ个记录对应的地址?(即能否实现随机存取)
思考2:能否快速找到某个关键字对应的记录存放的位置?
只有 顺序存储 的 定长记录 的 顺序结构,才能实现随机存取和快速定位关键字记录
那么可变长记录怎么办?那就看索引文件的了
2.2 索引文件
建立 索引表,索引表本身是定长记录的顺序文件,所以支持随机存取
若索引表按关键字顺序排列,则可支持快速检索关键字
2.3 (多级)索引顺序文件
总结
3 文件目录
3.1 文件控制块FCB
目录也是一种特殊的文件:
需要对目录进行哪些操作?
搜索:当用户要使用一个文件时,系统要根据文件名搜索目录,找到该文件对应的目录项
创建文件:创建一个新文件时,需要在其所属的目录中增加一个目录项
删除文件:当删除一个文件时,需要在目录中删除相应的目录项
显示目录:用户可以请求显示目录的内容,如显示该目录中的所有文件及相应属性
修改目录:某些文件属性保存在目录中,因此这些属性变化时需要修改相应的目录项(如:文件重命名)
3.2 目录结构
- 单级目录结构
- 两级目录结构
- 树形目录结构
- 无环图目录结构
树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,树形结构不便于实现文件的共享。为此,提出了“无环图目录结构”。
3.3 索引结点(FCB的改进)
当找到文件名对应的目录项时,才需要将索引结点调入内存,索引结点中记录了文件的各种信息,包括文件在外存中的存放位置,根据“存放位置”即可找到文件。
存放在外存中的索引结点称为“磁盘索引结点”,当索引结点放入内存后称为“内存索引结点”相比之下内存索引结点中需要增加一些信息,比如:文件是否被修改、此时有几个进程正在访问该文件等。
总结
4 文件分配方式(文件的物理结构)
需要将 文件块的逻辑地址 映射为 外存的物理地址
4.1 连续分配
连续分配方式要求每个文件在磁盘上占有一组连续的块
即 文件的逻辑结构 中 顺序文件的顺序存储(一个文件占用的块物理位置相邻)优点:
1、可以直接算出逻辑块号对应的物理块号,因此连续分配支持顺序访问和直接访问(即随机访问)
2、读取某个磁盘块时,需要移动磁头。访问的两个磁盘块相隔越远,移动磁头所需时间就越长。结论:连续分配的文件在顺序读/写时速度最快缺点:
1、若此时文件A要拓展,需要再增加一个磁盘块(总共需要连续的4个磁盘块)。由于采用连续结构,因此文件A占用的磁盘块必须是连续的,因此只能将文件A全部“迁移”到绿色区域。结论:物理上采用连续分配的文件不方便拓展。
2、物理上采用连续分配,存储空间利用率低,会产生难以利用的磁盘碎片。可以用紧凑来处理碎片,但是需要耗费很大的时间代价
4.2 链接分配
4.2.1 隐式链接(默认)
即 文件的逻辑结构 中 顺序文件的链式存储(一个文件占用的块物理位置不一定相邻)
缺点:
1、只支持顺序访问,不支持随机访问
2、随机IO指针寻址花费时间,查找效率低
3、花费额外空间存储指针优点:
1、链接分配方式,很方便文件拓展
2、不会有碎片问题,外存利用率高
4.2.2 显示链接
使用 文件分配表FAT
优点:
1、方便文件拓展
2、不会有碎片问题,外存利用率高
3、支持随机访问
4、FAT常驻内存,访问一下块时不需要访问磁盘,因此文件的访问效率更高缺点:
1、文件分配表的需要占用一定的存储空间
考试题目中遇到未指明隐式/显式的“链接分配”,默认指的是隐式链接的链接分配
4.3 索引分配
4.3.1 索引分配
和显示链接有点类似,只是显示链接是一整个磁盘只有一个FAT表,而索引分配是每个文件都有一个索引表
从目录项中可知索引表存放位置,将索引表从外存读入内存,并查找索引表即可知ⅰ号逻辑块在外存中的存放位置。可见,索引分配方式可以支持随机访问。文件拓展也很容易实现(只需要给文件分配一个空闲块,并增加一个索引表项即可)但是索引表需要占用一定的存储空间
优点:
1、支持随机访问
2、方便文件拓展
3、不会有碎片问题缺点:
1、会花费额外的空间存储索引表
2、访问前需要先读入索引块,链接方案甚至需要很多次读磁盘操作
4.3.2 大文件的索引表一个磁盘块放不下?
大文件的索引表太大,一个磁盘块放不下怎么办??
1)链接方案
2)多层索引
3)混合索引
小总结
总结
附录:文件的逻辑结构与物理结构之间的区别
简而言之:
- 逻辑结构是用户编程时决定使用顺序存储(如数组)还是链式存储(如链表),亦或者维护用户自己定义的索引表,与操作系统无关
- 物理结构是指操作系统在存储文件时,对一个文件拆分成的多个磁盘块实际进行存储的方式
王道视频P64-70暂未观看