操作系统学习笔记 第五章:文件管理(王道考研)
Posted Baret-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统学习笔记 第五章:文件管理(王道考研)相关的知识,希望对你有一定的参考价值。
本文章基于网课: 2019 王道考研 操作系统
考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com)
需要相关电子书的可以关注我的公众号
BaretH
后台回复操作系统
第一章:操作系统概述
第二章:进程管理
第三章:处理机调度与死锁
第四章:存储器管理
后续章节陆续推出…
文件管理是操作系统提供的功能之一
5.1 文件与文件系统
5.1.1 文件的定义
文件是以计算机硬盘为载体的存储在计算机上的信息集合,可以以文本文档、图片、程序等各种形式存在。
在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而在用户进行的输入、输出中,则以文件为基本单位。大多数应用程序的输入都是通过文件来实现的,其输出也都保存在文件中,以便信息的长期存储及将来的访问。
5.1.2 文件的数据组成
我们从自底向上的方式来定义,文件的组成如下:
- 数据项。数据项是文件系统中最低级的数据组织形式,可分为以下两种类型:
- 基本数据项。用于描述一个对象的某种属性的一个值,如姓名、日期或证件号等,是数据中可命名的最小逻辑数据单位,即原子数据
- 组合数据项。由多个基本数据项组成
- 记录。记录是一组相关的数据项的集合,用于描述一个对象在某方面的属性,如一名考生的报名记录包括考生姓名、出生日期、报考学校代号、身份证号等一系列域
- 文件。文件是指由创建者所定义的一组相关信息的集合,逻辑上可分为
有结构文件
和无结构文件
两种。在有结构文件中,文件由一组相似的记录组成,如报考某学校的所有考生的报考信息记录,又称记录式文件;而无结构文件则被视为一个字符流,比如一个进制文件或字符文件,又称流式文件
5.1.3 文件的属性
文件具有一定的属性,系统不同,属性也会有所不同,但通常都包括如下属性:
5.1.4 文件系统的定义
当用户将文件用于应用程序的输入、输出时,还希望可以访问文件、修改文件和保存文件等,实现对文件的维护管理,这就需要系统提供一个文件管理系统,操作系统中的文件系统( File system)就是用于实现用户的这些管理要求的
文件系统是操作系统中负责管理和存取文件信息的软件机构,它是由管理文件所需的数据结构和响应的管理软件以及访问文件的一组操作组成
5.1.5 文件系统操作
文件属于抽象数据类型。为了恰当地定义文件,需要考虑有关文件的操作。文件系统提供了一系列系统调用,让我们方便的对文件进行创建、写、读、重定位、删除和截断等操作。
1️⃣ 创建文件
2️⃣ 删除文件
3️⃣ 打开文件
打开文件表分为两类,进程的打开文件表和系统的打开文件表:
4️⃣ 关闭文件
5️⃣ 读文件
6️⃣ 写文件
5.1.6 文件系统的层次结构
5.2 文件的逻辑结构
要清晰的了解文件,还得了解文件内部的组成及数据组织方式,也就是文件的逻辑结构,文件的逻辑结构是从用户观点出发看到的文件的组织形式;不同于文件的物理结构是从实现观点出发看到的文件在外存上的存储组织形式,与存储介质的特性有很大关系
5.2.1 无结构文件
5.2.2 有结构文件
根据有结构文件中各条记录的长度是否相等,可分为定长记录
和可变长记录
两种
— 有结构文件的组织方式
有结构文件中,文件由一组相似的记录组成,那么这些记录间应该如何组织存放呢?按记录的组织形式,有结构文件可分为顺序文件、索引文件、索引顺序文件三种
1️⃣ 顺序文件
2️⃣ 索引文件
3️⃣ 索引顺序文件
5.3 文件物理结构:外存分配方式
文件的物理结构即文件数据在物理存储设备上如何分配和组织的,是从实现观点出发看到的文件在外存上的存储组织形式,与存储介质的特性有很大关系
– 基本概念
文件的分配方式分为三种,讲解之前,我们首先需要了解文件块、磁盘块的概念
5.3.1 连续分配方式
优点:
缺点:
总结:
5.3.2 链接分配方式
链接分配采取离散分配的方式,可以为文件分配离散的磁盘块。分为
隐式链接
和显式链接
两种
隐式链接
显式链接
5.3.3 索引分配
如何实现文件的逻辑块号到物理块号的转换?
如果一个磁盘块装不下文件的整张索引表怎么解决?
- 采用 K 层索引结构,且顶级索引表未调入内存,则访问一个数据块只需要 K + 1 次 读磁盘操作
5.4 文件目录
与文件管理系统和文件集合相关联的是文件目录,它包含有关文件的信息如属性、位置和所有权等,这些信息主要由操作系统进行管理。首先我们来看目录管理的基本要求:从用户的角度看,目录在用户(应用程序)所需要的文件名和文件之间提供一种映射,所以目录管理要实现“按名存取”;目录存取的效率直接影响到系统的性能,所以要提高对目录的检索速度;在共享系统中,目录还需要提供用于控制访问文件的信息。此外,文件允许重名也是用户的合理和必然要求,目录管理通过树形结构来解决和实现
前面介绍了文件内部的逻辑结构,下面介绍多个文件之间在逻辑上是如何组织的,这实际上是文件“外部”的逻辑结构的问题
5.4.1 文件控制块
与进程管理一样,为实现目录管理,操作系统中引入了
文件控制块
的数据结构
文件控制块(FCB
)是用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。为了创建一个新文件,系统将分配一个FCB并存放在文件目录中,成为目录项
5.4.2 目录结构
1️⃣ 单级目录结构
2️⃣ 双级目录结构
3️⃣ 多级目录结构
4️⃣ 无环图目录结构
5.4.3 索引结点
5.5 文件存储空间管理
5.5.1 存储空间的划分与初始化
一般来说,一个文件存储在一个文件卷中。文件卷可以是物理盘的一部分,也可以是整个物理盘,支持超大型文件的文件卷也可由多个物理盘组成
在一个文件卷中,文件数据信息的空间(文件区)和存放文件控制信息FCB的空间(目录区)是分离的。由于存在很多种类的文件表示和存放格式,所以现代操作系统中一般都有很多不同的文件管理模块,通过它们可以访问不同格式的逻辑卷中的文件。逻辑卷在提供文件服务前,必须由对应的文件程序进行初始化,划分好目录区和文件区,建立空闲空间管理表格及存放逻辑卷信息的超级块
5.5.2 文件存储空间管理
文件存储设备分成许多大小相同的物理块,并以块为单位交换信息,因此,文件存储设备的管理实质上是对空闲块的组织和管理,它包括空闲块的组织、分配与回收等问题
1️⃣ 空闲表法
2️⃣ 空闲链表法
将所有空闲盘区拉成一条空闲链,根据构成链所用的基本元素不同,可把链表分成两种形式 空闲盘块链 和 **空闲盘区链 **
空闲盘块链的分配与回收:
空闲盘块链将磁盘上的所有空闲空间以盘块为单位拉成一条链。当用户因创建文件而请求分配存储空间时,系统从链首开始,依次摘下适当数目的空闲盘块分配给用户。当用户因删除文件而释放存储空间时,系统将回收的盘块依次插入空闲盘块链的末尾。这种方法的优点是分配和回收一个盘块的过程非常简单,但在为一个文件分配盘块时可能要重复多次操作
空闲盘曲链的分配与回收:
空闲盘区链将磁盘上的所有空闲盘区(每个盘区可包含若干盘块)拉成一条链。在每个盘区上除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。分配盘区的方法与内存的动态分区分配类似,通常采用首次适应算法。在回收盘区时,同样也要将回收区与相邻接的空闲盘区合并
3️⃣ 位示图法
位示图利用二进制的一位来表示磁盘中一个盘块的使用情况,磁盘上所有的盘块都有一个进制位与之对应。当其值为“0”时,表示对应的盘块空闲;当其值为“1”时,表示对应的盘块已分配
位示图法的分配与回收:
4️⃣ 成组链接法
空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表或空闲链表太大。UNIX系统中采用的是成组链接法,这种方法结合了空闲表和空闲链表两种方法,克服了表太大的缺点。其大致思想是:把顺序的n个空闲扇区地址保存在第一个空闲扇区内,其后一个空闲扇区内则保存另一顺序空闲扇区的地址,如此继续,直至所有空闲扇区均予以链接。系统只需要保存一个指向第一个空闲扇区的指针。假设磁盘最初全为空闲扇区,其成组链接如图所示。通过这种方式可以迅速找到大批空闲块地址
表示文件存储器空闲空间的“位向量”表或第一个成组链块,以及卷中的目录区、文件区划分信息都需要存放在辅存储器中,一般放在卷头位置,在UNⅨ系统中称为超级块
。在对卷中的文件进行操作前,超级块需要预先读入系统空闲的主存,并且经常保持主存超级块与辅存卷中超级块的一致性
5.6 文件共享
文件共享使多个用户(进程)共享同一个文件,系统中只需保留该文件的一个副本。若系统不能提供共享功能,则每个需要该文件的用户都要有各自的副本,会造成对存储空间的极大浪费。现代常用的两种文件共享方法如下图所示:
5.6.1 基于索引结点的共享方式(硬链接)
5.6.2 基于符号链的共享方式(软链接)
5.7 文件保护
为了防止文件共享可能会导致文件被破坏或未经核准的用户修改文件,文件系统必须控制用户对文件的存取,即解决对文件的读、写、执行的许可问题。为此,必须在文件系统中建立相应的文件保护机制。
文件保护通过口令保护、加密保护和访问控制等方式实现。其中,口令保护和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。
5.7.1 口令保护
5.7.2 加密保护
5.7.3 访问控制
以上是关于操作系统学习笔记 第五章:文件管理(王道考研)的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络 王道考研2021 第五章:传输层 -- TCP连接管理(三次握手四次握手)