文件系统-操作系统
文件系统
文件管理
文件系统的功能
支持文件所占存储介质空间的分配/回收
支持文件相对起始数据的逻辑块定位到外存上的物理块
支持对文件访问的安全检查
支持对文件的读写访问
文件的结构
逻辑结构(文件组织):
用户看到的文件组织形式,和存储:设备无关
有结构的记录式文件:由一个以上的记录构成
无结构的流式文件:文件没有结构,由一串字符流构成
物理结构:
外存上存放形式,和存储设备特性有很大关系
文件存储器物理特性:
•磁带
顺序访问设备→要求文件顺序存放于带上。
•磁盘
直接(随机)访问设备→文件可顺序、链接式或随机(通过类似页表的索引结构访问)存放于设备上
文件系统重要作用(之一)
在用户逻辑文件和物理文件之间建立映射
文件存取方式
读写文件存储器上的一个物理块的方法
顺序存取:指对文件中的信息按顺序依次读写
随机存取法:
**直接存取法:允许用户随意存取文件中任意一个物理记录**
**按键存取法:根据文件中各记录的某个数据项内容来存取记录的,这种数据项称之为键**
几种常见的物理存储方式
1. 连续存储(顺序结构)
它将逻辑上连续的文件信息依次存放在编号连续的物理块上。
l优点:
–存储方式简单。
–对文件记录进行批量存取时,其存取效率较高。
–支持定长记录的直接存取,可以通过计算获得存储位置。
l缺点:
–不支持随机查找。如果要随机地查找或修改单个记录,此时系统需要逐个地查找诸记录,性能较差,尤其是当文件较大时情况将更为严重。
–存在外部碎片。
–不便于记录的增加或删除操作。
–链接结构
•将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块。
l优点:
–提高了磁盘空间利用率,不存在外部碎片问题。
–有利于文件插入和删除,及其动态扩充。
l缺点:
–仍然不支持随机查找。
–由于存储空间可能不连续,带来更多的寻道次数和寻道时间。
–需要牺牲一些空间存放链接指针,同时需要维护这些指针,增加了系统开销。
–可靠性问题,如指针出错。
索引结构
将逻辑上连续的文件信息(记录)存放在不连续的物理块中,系统为每个文件建立一个专用数据结构——索引表,索引表中存放文件的逻辑块号和物理块号的对应关系- 优点:
既能顺序存取,又能直接存取。
满足了文件动态增长、插入删除的要求。
没有外碎片,外存空间利用率较高。
缺点
较多的寻道次数和寻道时间。
索引表本身需要存储空间,同时对索引表的维护会增加系统开销。 - 索引表组织方式
- 链接文件方式:将多个索引表块按链接文件的方式串联起来
- 多重索引方式:将一个大文件的所有索引表(二级索引)的地址放在另一个索引表(一级索引)中。
- 多重索引优势
- 寻址空间较大,相比于链接文件,会大大减少读取对应物理块所需要的读盘次数(因为要从文件中读取索引项)
- 多重索引优势
- 优点:
文件的目录
OS观点:文件包含文件控制块和文件体
文件控制块(FCB)的主要内容:
文件名
创建者
文件物理位置信息:如索引表
创建、修改时间、保存时间
口令:用于对文件访问进行验证
操作限制:如读、写、执行权限说明
文件目录提供的功能:
实现“按名存取”。用户只须提供文件名,即可对文件进行存取。这是文件系统向用户提供的最基本的服务。
提高对目录的检索速度。合理地组织目录结构,加快对目录的检索速度,从而加快对文件的存取速度。这是在设计一个大、中型文件系统时,所追求的主要目标。
实现文件共享。在多用户系统中,应允许多个用户共享一个文件,以节省大量的存储空间并方便用户。
解决文件重名问题。系统应允许不同用户对不同文件采用相同的名字,以便于用户按照自己的习惯命名和使用文件。
文件目录结构
l一级目录结构
- 为外存上的全部文件设立一张平面(flat)的目录表,包含所有文件的FCB。每建立一个新文件即在目录中增加一个FCB,每当删除一个文件即抹去对应的FCB,当要访问一个文件时,先按文件名在目录中找到对应的文件FCB。
为了快速查找到文件FCB,可按文件名进行Hash,或其它快速查找方式 - 优点:简单
缺点:
1、查找速度慢
2、不允许重名
3、不便于实现文件共享
l二级目录结构
- 设一个主目录MFD,为系统的每个用户设用户目录UFD,用户目录是用户所有文件FCB的集合,主目录中存放每个用户目录的用户目录名和UFD的索引表等(当我们把UFD看作是一个文件时,这个文件的内容是用户所有文件FCB集合,MFD中则包含每个UFD文件的FCB
- 路径名
将用户名与文件名连到一起组成路径名。例如:/songhong/test.c
多级目录——树形目录结构
树状的多级目录结构
任何一级目录中的FCB既可以描述次一级的子目录,又可以描述一个文件特点:
利于文件分类,从文件路径名可看出文件类别。
查找文件FCB耗费时间,要得到文件FCB,必须从根查起。
唯一确定文件的路径名太长,故引入当前目录 概念,提供相对于当前目录的相对路径名可加速文件FCB的查找,进程控制块存有当前目录信息
访问
必须指出文件所在路径名:从根目录到该文件的路径上各级目录名的组合。也称为文件全名。
例如:/usr/lib/man
相对路径:设置一个“当前目录”(也叫“工作目录”),此时对于文件的查找是从当前目录中进行的。可以带来两点好处:
用户使用更加方便
检索效率更高优缺点
l树形多级目录结构的优点
•提高了检索目录的速度。
•较好地解决了重名问题。
l缺点
不便于用户共享文件
无环图目录结构
当一个文件副本可以同时属于两个不同目录(类别)时,即同一个文件有二条路径名,或多条路径名时出现无环图目录结构。
特点:
方便文件共享,分类。
两个或多个FCB的一致性难保证,因此将FCB独立存放,引入带文件/目录名和FCB指针的目录项