操作系统学习笔记 第五章:文件管理(王道考研)

Posted Baret-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统学习笔记 第五章:文件管理(王道考研)相关的知识,希望对你有一定的参考价值。

本文章基于网课: 2019 王道考研 操作系统
考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com)


需要相关电子书的可以关注我的公众号BaretH后台回复操作系统
image-20210616202753852
第一章:操作系统概述
第二章:进程管理
第三章:处理机调度与死锁
第四章:存储器管理
后续章节陆续推出…



image-20210610224148897

文件管理是操作系统提供的功能之一

image-20210527183205297

5.1 文件与文件系统

5.1.1 文件的定义

文件是以计算机硬盘为载体的存储在计算机上的信息集合,可以以文本文档、图片、程序等各种形式存在。

在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而在用户进行的输入、输出中,则以文件为基本单位。大多数应用程序的输入都是通过文件来实现的,其输出也都保存在文件中,以便信息的长期存储及将来的访问。

5.1.2 文件的数据组成

image-20210610225858022

我们从自底向上的方式来定义,文件的组成如下:

  1. 数据项。数据项是文件系统中最低级的数据组织形式,可分为以下两种类型:
    • 基本数据项。用于描述一个对象的某种属性的一个值,如姓名、日期或证件号等,是数据中可命名的最小逻辑数据单位,即原子数据
    • 组合数据项。由多个基本数据项组成
  2. 记录。记录是一组相关的数据项的集合,用于描述一个对象在某方面的属性,如一名考生的报名记录包括考生姓名、出生日期、报考学校代号、身份证号等一系列域
  3. 文件。文件是指由创建者所定义的一组相关信息的集合,逻辑上可分为有结构文件无结构文件两种。在有结构文件中,文件由一组相似的记录组成,如报考某学校的所有考生的报考信息记录,又称记录式文件;而无结构文件则被视为一个字符流,比如一个进制文件或字符文件,又称流式文件

image-20210527183631570

5.1.3 文件的属性

文件具有一定的属性,系统不同,属性也会有所不同,但通常都包括如下属性:

image-20210527183450160

5.1.4 文件系统的定义

当用户将文件用于应用程序的输入、输出时,还希望可以访问文件、修改文件和保存文件等,实现对文件的维护管理,这就需要系统提供一个文件管理系统,操作系统中的文件系统( File system)就是用于实现用户的这些管理要求的

文件系统是操作系统中负责管理和存取文件信息的软件机构,它是由管理文件所需的数据结构和响应的管理软件以及访问文件的一组操作组成

image-20210614170548790

5.1.5 文件系统操作

文件属于抽象数据类型。为了恰当地定义文件,需要考虑有关文件的操作。文件系统提供了一系列系统调用,让我们方便的对文件进行创建重定位删除截断等操作。

image-20210610230109427

image-20210610230036829

image-20210611183600235

1️⃣ 创建文件

image-20210611182538933

2️⃣ 删除文件

image-20210611182610195

3️⃣ 打开文件

image-20210611182715365

打开文件表分为两类,进程的打开文件表和系统的打开文件表:

image-20210611183315764

4️⃣ 关闭文件

image-20210611183425033

5️⃣ 读文件

image-20210611183504147

6️⃣ 写文件

image-20210611183541820

5.1.6 文件系统的层次结构

image-20210611190142522

image-20210606172810982



5.2 文件的逻辑结构

要清晰的了解文件,还得了解文件内部的组成及数据组织方式,也就是文件的逻辑结构,文件的逻辑结构是从用户观点出发看到的文件的组织形式;不同于文件的物理结构是从实现观点出发看到的文件在外存上的存储组织形式,与存储介质的特性有很大关系

image-20210610231202257

image-20210610234549605

5.2.1 无结构文件

image-20210610231309499

5.2.2 有结构文件

image-20210610231250756

根据有结构文件中各条记录的长度是否相等,可分为定长记录可变长记录两种

image-20210610231654877

image-20210610231639792

— 有结构文件的组织方式

有结构文件中,文件由一组相似的记录组成,那么这些记录间应该如何组织存放呢?按记录的组织形式,有结构文件可分为顺序文件、索引文件、索引顺序文件三种

image-20210527184957424

1️⃣ 顺序文件

image-20210527185116697

image-20210610233759904

2️⃣ 索引文件

image-20210610234011180

3️⃣ 索引顺序文件

image-20210610234432515

image-20210610234448343

image-20210610234502241



5.3 文件物理结构:外存分配方式

文件的物理结构即文件数据在物理存储设备上如何分配和组织的,是从实现观点出发看到的文件在外存上的存储组织形式,与存储介质的特性有很大关系

image-20210611001115088

image-20210611001131549

image-20210611155838544

– 基本概念

文件的分配方式分为三种,讲解之前,我们首先需要了解文件块、磁盘块的概念

image-20210611001252790

image-20210527204826142

5.3.1 连续分配方式

image-20210611001449138

优点

image-20210611001507292

缺点

image-20210611001521052

image-20210611001542956

总结

image-20210611001559576

5.3.2 链接分配方式

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

image-20210611001626271

隐式链接

image-20210611001839066

image-20210611001755103

显式链接

image-20210611001905599

image-20210611002030595

image-20210611002043658

5.3.3 索引分配

image-20210611002140386

如何实现文件的逻辑块号到物理块号的转换?

image-20210606113439741

如果一个磁盘块装不下文件的整张索引表怎么解决?

image-20210606113629702

image-20210611155649497

image-20210606114524213

  • 采用 K 层索引结构,且顶级索引表未调入内存,则访问一个数据块只需要 K + 1 次 读磁盘操作

image-20210606114812347

image-20210611155821655



5.4 文件目录

与文件管理系统和文件集合相关联的是文件目录,它包含有关文件的信息如属性、位置和所有权等,这些信息主要由操作系统进行管理。首先我们来看目录管理的基本要求:从用户的角度看,目录在用户(应用程序)所需要的文件名和文件之间提供一种映射,所以目录管理要实现“按名存取”;目录存取的效率直接影响到系统的性能,所以要提高对目录的检索速度;在共享系统中,目录还需要提供用于控制访问文件的信息。此外,文件允许重名也是用户的合理和必然要求,目录管理通过树形结构来解决和实现

前面介绍了文件内部的逻辑结构,下面介绍多个文件之间在逻辑上是如何组织的,这实际上是文件“外部”的逻辑结构的问题

image-20210610235026905

image-20210611001004996

image-20210610235109586

5.4.1 文件控制块

与进程管理一样,为实现目录管理,操作系统中引入了文件控制块的数据结构

文件控制块(FCB)是用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。为了创建一个新文件,系统将分配一个FCB并存放在文件目录中,成为目录项

image-20210611000113403

image-20210611000125515

5.4.2 目录结构

1️⃣ 单级目录结构

image-20210611000249220

2️⃣ 双级目录结构

image-20210611000303878

3️⃣ 多级目录结构

image-20210527193724919image-20210611000437330image-20210611000456647

4️⃣ 无环图目录结构

image-20210611000743134

5.4.3 索引结点

image-20210527194436078image-20210611000915784



5.5 文件存储空间管理

image-20210606131659313

image-20210611161347124

image-20210611182215249

5.5.1 存储空间的划分与初始化

一般来说,一个文件存储在一个文件卷中。文件卷可以是物理盘的一部分,也可以是整个物理盘,支持超大型文件的文件卷也可由多个物理盘组成

在一个文件卷中,文件数据信息的空间(文件区)和存放文件控制信息FCB的空间(目录区)是分离的。由于存在很多种类的文件表示和存放格式,所以现代操作系统中一般都有很多不同的文件管理模块,通过它们可以访问不同格式的逻辑卷中的文件。逻辑卷在提供文件服务前,必须由对应的文件程序进行初始化,划分好目录区和文件区,建立空闲空间管理表格及存放逻辑卷信息的超级块

image-20210606132036678

5.5.2 文件存储空间管理

文件存储设备分成许多大小相同的物理块,并以块为单位交换信息,因此,文件存储设备的管理实质上是对空闲块的组织和管理,它包括空闲块的组织、分配与回收等问题

1️⃣ 空闲表法

image-20210606133118821

2️⃣ 空闲链表法

将所有空闲盘区拉成一条空闲链,根据构成链所用的基本元素不同,可把链表分成两种形式 空闲盘块链 和 **空闲盘区链 **

image-20210606133428416

空闲盘块链的分配与回收:

空闲盘块链将磁盘上的所有空闲空间以盘块为单位拉成一条链。当用户因创建文件而请求分配存储空间时,系统从链首开始,依次摘下适当数目的空闲盘块分配给用户。当用户因删除文件而释放存储空间时,系统将回收的盘块依次插入空闲盘块链的末尾。这种方法的优点是分配和回收一个盘块的过程非常简单,但在为一个文件分配盘块时可能要重复多次操作

image-20210606133601406

空闲盘曲链的分配与回收:

空闲盘区链将磁盘上的所有空闲盘区(每个盘区可包含若干盘块)拉成一条链。在每个盘区上除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。分配盘区的方法与内存的动态分区分配类似,通常采用首次适应算法。在回收盘区时,同样也要将回收区与相邻接的空闲盘区合并

image-20210606133804702

3️⃣ 位示图法

位示图利用二进制的一位来表示磁盘中一个盘块的使用情况,磁盘上所有的盘块都有一个进制位与之对应。当其值为“0”时,表示对应的盘块空闲;当其值为“1”时,表示对应的盘块已分配

image-20210611164054094

位示图法的分配与回收:

image-20210606134237417

image-20210611164440024

4️⃣ 成组链接法

空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表或空闲链表太大。UNIX系统中采用的是成组链接法,这种方法结合了空闲表和空闲链表两种方法,克服了表太大的缺点。其大致思想是:把顺序的n个空闲扇区地址保存在第一个空闲扇区内,其后一个空闲扇区内则保存另一顺序空闲扇区的地址,如此继续,直至所有空闲扇区均予以链接。系统只需要保存一个指向第一个空闲扇区的指针。假设磁盘最初全为空闲扇区,其成组链接如图所示。通过这种方式可以迅速找到大批空闲块地址

image-20210611182145672

表示文件存储器空闲空间的“位向量”表或第一个成组链块,以及卷中的目录区、文件区划分信息都需要存放在辅存储器中,一般放在卷头位置,在UNⅨ系统中称为超级块。在对卷中的文件进行操作前,超级块需要预先读入系统空闲的主存,并且经常保持主存超级块与辅存卷中超级块的一致性

image-20210606134317122



5.6 文件共享

文件共享使多个用户(进程)共享同一个文件,系统中只需保留该文件的一个副本。若系统不能提供共享功能,则每个需要该文件的用户都要有各自的副本,会造成对存储空间的极大浪费。现代常用的两种文件共享方法如下图所示:

image-20210611183747600

image-20210611184858400

5.6.1 基于索引结点的共享方式(硬链接)

image-20210606165407635

5.6.2 基于符号链的共享方式(软链接)

image-20210606165504917image-20210606165613078



5.7 文件保护

为了防止文件共享可能会导致文件被破坏或未经核准的用户修改文件,文件系统必须控制用户对文件的存取,即解决对文件的读、写、执行的许可问题。为此,必须在文件系统中建立相应的文件保护机制。

文件保护通过口令保护、加密保护和访问控制等方式实现。其中,口令保护和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。

image-20210611185330840

5.7.1 口令保护

image-20210611185359989

5.7.2 加密保护

image-20210606170700396

image-20210606170751439

5.7.3 访问控制

image-20210606171841974

image-20210606171259720

以上是关于操作系统学习笔记 第五章:文件管理(王道考研)的主要内容,如果未能解决你的问题,请参考以下文章

操作系统学习笔记 第六章:设备管理(王道考研)

操作系统学习笔记 第六章:设备管理(王道考研)

第五章 传输层 计算机网络(王道考研)

计算机网络 王道考研2021 第五章:传输层 -- TCP连接管理(三次握手四次握手)

(王道408考研数据结构)第五章树-第四节1:二叉树排序树(BST)及其操作

(王道408考研数据结构)第五章树-第三节3:线索二叉树