复习笔记|第五章 文件系统《操作系统原理教程》
大纲问题回答(精简版)
1. 什么是文件和文件系统?文件系统的主要功能。UNIX系统如何对文件进行分类?它有什么好处?
⚫ 文件是存储在外部存储器上的具有符号名的相关信息的集合。
⚫ 文件系统:OS中管理文件的软件机构。包括管理文件所需的数据结构、相应的管理软件和被管理的文件。
文件系统的功能
1. 管理文件存储器。记录存储空间使用情况,实现分配和回收。
2. 实现按名存取。利用目录结构快速定位文件。
3. 应具有灵活多样的文件结构和存取方法,便于用户存储和加工处理信息。
4. 提供一套使用方便、简单的操作命令。
5. 保证文件信息的安全性。
6. 便于文件的共享。
⚫ UNIX系统中的文件分类
◆普通文件:通常的文件。
◆目录文件:由文件目录构成的一类用来维护文件系统结构的文件。对其处理同普通文件。
◆特别文件:输入设备和输出设备(字符型特别文件),输入/输出型设备(字符块特别文件),管道文件。
从使用上看,与普通文件相同,都要查找目录、验证使用权限、进行读或写等。只是系统把对特别文件的操作转为对不同设备的操作。
方便用户操作文件
2. 文件目录的作用是什么?文件目录项通常包含哪些内容?文件控制块。
实现用户按文件名存取文件存储器上的信息,同时使用起来方便灵活、安全可靠,并便于文件的共享和保密。
linux的简单目录项
⚫ 文件控制块:包含了文件的说明信息和管理控制信息。如,文件名、文件标识、类型、存储位置、大小、保护方式、创建或修改日期等。
⚫ 操作系统通过文件控制块管理文件。它将文件控制块保存在目录文件中,每个文件占用一个目录项。
3. 文件的逻辑结构有几种形式?文件的存取方法?
◆ 无结构的字节流式文件、有结构的记录式文件(定长、变长)
◆ 顺序存取、直接存取
文件的逻辑结构
⚫ 无结构的字节流式文件。由无结构的先后到达的相关字节组成。
⚫ 有结构的记录式文件。分为定长记录式文件和变长记录式文件。
⚫ 通常,操作系统不了解也不关心文件的内容,它所“看到的”都是字节流。
文件的存取方法
(1)顺序存取:按照文件信息的逻辑顺序依次存取。适用于顺序访问设备(磁带)和随机访问设备(磁盘)。
(2)直接存取(随机存取):基于文件的磁盘模型,磁盘允许对任意文件块进行随机读和写。
4. 文件的物理结构有哪几种?对于不同的结构,文件系统是如何进行管理的?
◆连续文件(文件目录表)、链接文件(文件分配表)、索引文件(索引表)、索引顺序文件
⚫ 物理块:把文件存储空间划分成若干大小相等的块。物理块是分配及传输信息的基本单位。一个物理块包括一个或几个连续扇区。
⚫ 逻辑块:把文件信息划分成与物理块大小相等的逻辑块,方便管理。
1. 连续文件(顺序文件)
2. 链接文件
3. 索引文件
4. 索引顺序文件
连续文件
⚫ 文件内容连续存放。
⚫ 优点
◆简单。
◆支持顺序存取和随机存取。
◆存取速度快。只要访问一次文件的管理信息,就可方便地存取到任一记录。
⚫ 缺点
◆不灵活。要求在文件创建时,就给出文件的最大长度。
◆容易产生碎片。由于不断地创建和删除文件,文件存储空间可能出现许多小的无法利用的空洞。
⚫ 连续结构适合存储长度不变的系统文件。
链接文件
不要求文件内容连续存放。把文件所占用的物理块用链接指针链接起来。
⚫ 优点:可以解决外存碎片问题,提高外存空间利用率;允许文件动态增长。
⚫ 缺点:只能按文件的指针链顺序存取,效率低。
克服链接文件不能随机存取的缺点
索引表长度就是文件存储器能够划分的块数
MS-DOS就是使用文件分配表(FAT)来分配和管理磁盘空间的。
⚫ 优点:系统运行时,文件分配表在主存,可以顺序访问文件,也可以随机访问。
⚫ 缺点:运行时整个表必须在主存,主存消耗大。
FAT文件卷
⚫ FAT:存有整个文件存储空间的使用情况。
⚫ 根目录区:存放根目录文件。FAT32无此区。
⚫ 文件数据区:存放文件。
⚫ 作为一种跨操作系统共享存储体的解决方案,支持可移动或可插拨的存储介质,如软盘、U盘、移动硬盘等。现在,微软为闪存设备特地设计了exFAT,即FAT64。
索引文件
⚫ 为每个文件建立一张索引表。用索引表记录文件内容的存放地址,即记录文件的逻辑块号和物理块号之间的对应关系。
⚫ 例子: UNIX、Linux
⚫ 在访问文件时,先将索引表调入内存,避免访问文件时两次访问外存。
⚫ 当索引表长度超过一个磁盘块时,还要对索引表进行索引,即建立二级索引。
⚫ Linux采用多级索引结构。P193
优点:文件可动态修改;随机、顺序存取。
缺点:索引表的使用增加了存储空间的开销;降低了文件的存取速度。
索引顺序文件
⚫ 索引文件和顺序文件的组合形式
⚫ 将顺序文件中的所有记录分为若干组,并为其建立索引表。在索引表中,为每组的第一个记录建立一个索引项,其他记录不再建立。
⚫ Windows的NTFS文件系统。P319
⚫ MFT(Master File Table,主控文件表)
5. DOS文件卷的结构,DOS系统的文件物理结构是什么?
◆ FAT文件系统(引导或保留扇区、FAT1、FAT2、根目录区、文件数据区)
FAT文件卷
⚫ FAT:存有整个文件存储空间的使用情况。
⚫ 根目录区:存放根目录文件。FAT32无此区。
⚫ 文件数据区:存放文件。
⚫ 作为一种跨操作系统共享存储体的解决方案,支持可移动或可插拨的存储介质,如软盘、U盘、移动硬盘等。现在,微软为闪存设备特地设计了exFAT,即FAT64。
链接文件
6. 了解记录的组块和分解。
文件记录的组块与分解
⚫ 一个物理块可以存放若干个逻辑记录,一个逻辑记录可以存放在若干个物理块中。把一个块中存放的逻辑记录的个数叫做块因子。
⚫ 必须使用主存缓冲区:信息交换是以块为单位进行的。用户将要写的记录先写入主存缓冲区,当缓冲区满时,再写磁盘。
⚫ 用户使用记录时,先将包含该记录的物理块读入内存缓冲区,然后进行记录分解。
7. 文件存储空间的管理方法有几种?它们各是如何实现文件存储空间的分配和回收的?
◆空白文件目录、空闲块链表、位示图
① 空白文件目录(是一种最简单的方法)
② 空闲块链表
③ 位映像表(bit map)或位示图
(1)空白文件目录
空白文件:一个连续未用的空闲盘块区。
空白文件目录:系统为所有这些空白文件建立一张表。每个空白文件占用一个表目。
适合于文件的静态分配(连续文件的分配)。
(2)空闲块链表
空闲块链把所有空闲块连接成一个链表。
⚫ 优点:简单。适合文件动态分配。
⚫ 缺点:工作效率低。分配和回收多个盘块时要多次访问磁盘才能完成。
空闲块成组链表
⚫ 利用盘空闲块来管理盘上的空闲块,每个磁盘块记录尽可能多的空闲块而成一组。各组之间用链指针链接在一起。
⚫ 便于空闲块的分配与回收。
⚫ 适合连续文件、链接文件和索引文件的存储分配。
(3)位映像表(位示图)
是适合文件静态分配和动态分配的最简单方法
位映像表(位向量):每一个二进制位对应一个物理盘块。为1时表示块已分配,为0时空闲。
优点:易找到一个或几个连续的空闲块。其尺寸固定,可以保存在主存,便于分配和回收。
8. 建立多级目录有哪些好处?文件的重名和共享问题是如何得到解决的?
◆符号链接、硬链接
优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能够控制存取权限。
二级和多级目录较好地解决文件的重名和共享。
二级目录结构
⚫ 为每个用户建立一张用户目录表。
⚫ 主目录表:记录各用户名及用户目录表所在的物理地址。
⚫ 优点:可解决文件重名问题,查找速度较快。
⚫ 缺点:当文件较多时,存取速度仍然较慢。无法实现文件共享。
多级目录结构
⚫ 多级目录结构:树形目录结构。
⚫ 完全路径名//绝对路径名:是由根到文件通路上所有目录与该文件的符号名拼接而成的。
⚫ 当前目录//工作目录:用户根据自己的工作需要,在一定时间内,指定某个目录为当前目录。
⚫ 文件的相对路径:从当前目录出发的路径。
优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能够控制存取权限。
缺点:查找一个文件需要按路径名逐层检查多级目录,需多次访盘,影响文件的访问速度。
多级目录结构
⚫ 纯树形目录结构禁止共享文件和目录。
⚫ 无环图目录结构允许共享文件和子目录。共享文件只有一个副本。
⚫ 在创建新链接时要避免环,有环的操作复杂些。
⚫ 实现共享文件和目录的方法。
◆ 符号链接文件:创建一个新目录项,其中存有指向另一个文件或目录的绝对路径名。
◆ 硬链接:在共享目录项中简单地重复被共享文件的信息,因此两个目录项完全相同。
9. 文件系统中,常用的文件操作命令有哪些?它们的具体功能是什么?打开和关闭文件命令的目的是什么?
◆create, delete, open, close, read, write, append, seek,get attributes, set attributes, rename
1) 创建(Create)文件
主要功能:在指定设备上为指定路径名的文件建立一个目录项,并设置文件的有关属性。
2) 删除(Delete)文件
主要功能:根据文件的路径名找到指定的目录项,回收其占用的各个物理块,再将该目录项置为空。
3) 打开(Open)文件:建立进程和文件之间联系
◆根据文件路径名找到文件目录项,进而找到FCB。FCB进内存,再创建文件对象。
◆系统打开文件表是由文件对象组成的链表。
◆文件对象记录了文件读/写位置指针、文件方法、共享该文件的进程数等信息。
◆Linux,文件对象地址记录在进程打开文件表里;Windows文件对象地址记录在进程句柄表里。返回表的索引。
4) 关闭(Close)文件
◆释放文件在主存里的目录项,切断用户与文件的联系。
◆若目录项被修改过,则写回辅存。
◆若文件被修改过,则写回辅存。
5) 读(Read)文件
◆命令中必须指出要读的数据个数,以及存放数据的主存地址。
◆根据文件所在设备、文件类型的不同,系统设置不同的读命令。
6) 写(Write)文件
命令中必须指出要写的数据个数,以及存放数据的主存地址,将主存中的数据写到指定的文件中。
7) 追加(Append)文件
限制了写文件的形式,将数据追加到文件尾。
8) 随机存取(Seek)文件
重新定位文件的读/写位置指针。
9) 得到文件属性(Get Attributes)
进程在执行时常常需要了解文件的属性。
在UNIX系统中,一个软件开发项目通常由多个源文件组成,make程序用来管理这些源文件。当make被调用时,它检查所有源文件和目标文件的修改时间,并且编排出需要重新编译的文件数。
10)设置文件属性(Set Attributes)
修改文件的一些属性,以适应用户的要求。
11)重命名(Rename)文件
重新命名一个已经存在的文件。
对于文件的独享权
10.存取控制表ACL的概念。
◆给每个对象建立一个存取控制表,由有序对(域, 权集)构成
⚫ 为存取控制矩阵中的每一列建立一张存取控制表(ACL),用一有序对(域, 权集)表示。
⚫ 文件的ACL记录在FCB中。
11.理解内存映射文件(memory mapped file)的过程。
存储器映射文件
文件系统的读文件:先把文件读入系统缓冲区,再送入进程私有地址空间。
⚫ 存储器映射文件:将文件映射到进程私有地址空间的一个区域,返回起始虚地址,仅当需要对文件存取时,才传输文件数据。
⚫ 采用与请求页式虚存管理相同的存取机制。访问的页不在主存时,产生缺页中断读入主存。
⚫ OS提供映射文件的系统调用。
大纲问题回答
1. 什么是文件和文件系统?文件系统的主要功能。UNIX系统如何对文件进行分类?它有什么好处?
⚫ 文件是存储在外部存储器上的具有符号名的相关信息的集合。
⚫ 文件系统:OS中管理文件的软件机构。包括管理文件所需的数据结构、相应的管理软件和被管理的文件。
文件系统的功能
1. 管理文件存储器。记录存储空间使用情况,实现分配和回收。
2. 实现按名存取。利用目录结构快速定位文件。
3. 应具有灵活多样的文件结构和存取方法,便于用户存储和加工处理信息。
4. 提供一套使用方便、简单的操作命令。
5. 保证文件信息的安全性。
6. 便于文件的共享。
⚫ UNIX系统中的文件分类
◆普通文件:通常的文件。
◆目录文件:由文件目录构成的一类用来维护文件系统结构的文件。对其处理同普通文件。
◆特别文件:输入设备和输出设备(字符型特别文件),输入/输出型设备(字符块特别文件),管道文件。
从使用上看,与普通文件相同,都要查找目录、验证使用权限、进行读或写等。只是系统把对特别文件的操作转为对不同设备的操作。
方便用户操作文件
2. 文件目录的作用是什么?文件目录项通常包含哪些内容?文件控制块。(1)
实现用户按文件名存取文件存储器上的信息,同时使用起来方便灵活、安全可靠,并便于文件的共享和保密。
文件目录项通常包含:文件名、文件结构信息、文件存取控制信息、文件管理信息;
操作系统使用文件控制块管理文件,它将文件控制块保存在目录文件中,每个文件占用一个目录项;
⚫ 文件控制块:包含了文件的说明信息和管理控制信息。如,文件名、文件标识、类型、存储位置、大小、保护方式、创建或修改日期等。
⚫ 操作系统通过文件控制块管理文件。它将文件控制块保存在目录文件中,每个文件占用一个目录项。
3. 文件的逻辑结构有几种形式?文件的存取方法?(3)
文件的逻辑结构
⚫ 无结构的字节流式文件。由无结构的先后到达的相关字节组成。
⚫ 有结构的记录式文件。分为定长记录式文件和变长记录式文件。
通常,操作系统不了解也不关心文件的内容,它所“看到的”都是字节流。
文件的存取方法
(1)顺序存取:按照文件信息的逻辑顺序依次存取。适用于顺序访问设备(磁带)和随机访问设备(磁盘)。
(2)直接存取(随机存取):基于文件的磁盘模型,磁盘允许对任意文件块进行随机读和写。
4. 文件的物理结构有哪几种?对于不同的结构,文件系统是如何进行管理的?(4)
1)连续文件(顺序文件) 文件内容连续存放。优点简单。支持顺序存取和随机存取。存取速度快。只要访问一次文件的管理信息,就可方便地存取到任一记录。缺点:不灵活,容易产生碎片。连续结构适合存储长度不变的系统文件。
2)链接文件 不要求文件内容连续存放。把文件所占用的物理块用链接指针链接起来。优点:可以解决外存的碎片问题,提高了外存空间的利用率;允许文件动态增长。 缺点:只能按文件的指针链顺序存取,查找效率较低。
3)索引文件 为每个文件建立一张索引表。用索引表记录文件内容的存放地址,即记录文件的逻辑块号和对应的物理块号之间的关系。优点:文件可动态修改;随机、顺序存取。缺点:索引表的使用增加了存储空间的开销;降低了文件的存取速度。
4)索引顺序文件 索引结构的变形结构;索引表记录每个文件逻辑块开始的 VCN与开始的 LCN,VCN 为虚拟簇号(逻辑的地址),LCN 为逻辑簇号(虽然叫逻辑,但因为物理上相邻,故也可看做物理的地址);
管理方式:连续文件——空白文件目录;
链接文件、索引文件、索引顺序文件——空闲块链表;
索引顺序文件——还可使用位映像表(即位示图);
5. DOS文件卷的结构,DOS系统的文件物理结构是什么?
◆ FAT文件系统(引导或保留扇区、FAT1、FAT2、根目录区、文件数据区)
DOS 文件卷为 FAT 文件系统结构,使用文件分配表 FAT 分配和管理磁盘空间;
MS-DOS 系统的文件物理结构为链接文件结构;
其使用无结构的字节流形式组织和处理文件;
FAT文件卷
⚫ FAT:存有整个文件存储空间的使用情况。
⚫ 根目录区:存放根目录文件。FAT32无此区。
⚫ 文件数据区:存放文件。
⚫ 作为一种跨操作系统共享存储体的解决方案,支持可移动或可插拨的存储介质,如软盘、U盘、移动硬盘等。现在,微软为闪存设备特地设计了exFAT,即FAT64。
6. 了解记录的组块和分解。
文件记录的组块与分解
⚫ 一个物理块可以存放若干个逻辑记录,一个逻辑记录可以存放在若干个物理块中。把一个块中存放的逻辑记录的个数叫做块因子。(记录组块)
⚫ 必须使用主存缓冲区:信息交换是以块为单位进行的。用户将要写的记录先写入主存缓冲区,当缓冲区满时,再写磁盘。
⚫ 用户使用记录时,先将包含该记录的物理块读入内存缓冲区,然后进行记录分解,得到其中的逻辑记录;(记录分解)
7. 文件存储空间的管理方法有几种?它们各是如何实现文件存储空间的分配和回收的?(4)
◆空白文件目录、空闲块链表、位示图
① 空白文件目录(是一种最简单的方法)
② 空闲块链表
③ 位映像表(bit map)或位示图
(1)空白文件目录
空白文件:一个连续未用的空闲盘块区。
空白文件目录:系统为所有这些空白文件建立一张表。每个空白文件占用一个表目。
适合于文件的静态分配(连续文件的分配)。
(2)空闲块链表
空闲块链把所有空闲块连接成一个链表。
⚫ 优点:简单。适合文件动态分配。
⚫ 缺点:工作效率低。分配和回收多个盘块时要多次访问磁盘才能完成。
空闲块成组链表
⚫ 利用盘空闲块来管理盘上的空闲块,每个磁盘块记录尽可能多的空闲块而成一组。各组之间用链指针链接在一起。
⚫ 便于空闲块的分配与回收。
⚫ 适合连续文件、链接文件和索引文件的存储分配。
(3)位映像表(位示图)
是适合文件静态分配和动态分配的最简单方法
位映像表(位向量):每一个二进制位对应一个物理盘块。为1时表示块已分配,为0时空闲。
优点:易找到一个或几个连续的空闲块。其尺寸固定,可以保存在主存,便于分配和回收。
8. 建立多级目录有哪些好处?文件的重名和共享问题是如何得到解决的?(2)
◆符号链接、硬链接
优点:
- 层次结构清晰,便于管理和保护;
- 有利于文件分类;
- 解决重名问题;
- 提高文件检索速度;
- 能够控制存取权限;
- 便于共享。
重名的解决:重名文件的完全路径名不同,从而得以区分;
共享的解决:可使用符号链接文件(一种很小的文件)存储欲共享文件的绝对路径名;
●符号链接:创建一个新目录项,其中存有指向另一个文件或目录的绝对路径名。
●硬链接:在共享目录项中简单地重复被共享文件的信息,因此两个目录项完全相同。
二级和多级目录较好地解决文件的重名和共享。
二级目录结构
⚫ 为每个用户建立一张用户目录表。
⚫ 主目录表:记录各用户名及用户目录表所在的物理地址。
⚫ 优点:可解决文件重名问题,查找速度较快。
⚫ 缺点:当文件较多时,存取速度仍然较慢。无法实现文件共享。
多级目录结构
⚫ 多级目录结构:树形目录结构。
⚫ 完全路径名//绝对路径名:是由根到文件通路上所有目录与该文件的符号名拼接而成的。
⚫ 当前目录//工作目录:用户根据自己的工作需要,在一定时间内,指定某个目录为当前目录。
⚫ 文件的相对路径:从当前目录出发的路径。
优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能够控制存取权限。
缺点:查找一个文件需要按路径名逐层检查多级目录,需多次访盘,影响文件的访问速度。
多级目录结构
⚫ 纯树形目录结构禁止共享文件和目录。
⚫ 无环图目录结构允许共享文件和子目录。共享文件只有一个副本。
⚫ 在创建新链接时要避免环,有环的操作复杂些。
⚫ 实现共享文件和目录的方法。
◆ 符号链接文件:创建一个新目录项,其中存有指向另一个文件或目录的绝对路径名。
◆ 硬链接:在共享目录项中简单地重复被共享文件的信息,因此两个目录项完全相同。
9. 文件系统中,常用的文件操作命令有哪些?它们的具体功能是什么?打开和关闭文件命令的目的是什么?
◆create, delete, open, close, read, write, append, seek,get attributes, set attributes, rename
1) 创建(Create)文件
主要功能:在指定设备上为指定路径名的文件建立一个目录项,并设置文件的有关属性。
2) 删除(Delete)文件
主要功能:根据文件的路径名找到指定的目录项,回收其占用的各个物理块,再将该目录项置为空。
3) 打开(Open)文件:建立进程和文件之间联系
◆根据文件路径名找到文件目录项,进而找到FCB。FCB进内存,再创建文件对象。
◆系统打开文件表是由文件对象组成的链表。
◆文件对象记录了文件读/写位置指针、文件方法、共享该文件的进程数等信息。
◆Linux,文件对象地址记录在进程打开文件表里;Windows文件对象地址记录在进程句柄表里。返回表的索引。
4) 关闭(Close)文件
◆释放文件在主存里的目录项,切断用户与文件的联系。
◆若目录项被修改过,则写回辅存。
◆若文件被修改过,则写回辅存。
5) 读(Read)文件
◆命令中必须指出要读的数据个数,以及存放数据的主存地址。
◆根据文件所在设备、文件类型的不同,系统设置不同的读命令。
6) 写(Write)文件
命令中必须指出要写的数据个数,以及存放数据的主存地址,将主存中的数据写到指定的文件中。
7) 追加(Append)文件
限制了写文件的形式,将数据追加到文件尾。
8) 随机存取(Seek)文件
重新定位文件的读/写位置指针。
9) 得到文件属性(Get Attributes)
进程在执行时常常需要了解文件的属性。
在UNIX系统中,一个软件开发项目通常由多个源文件组成,make程序用来管理这些源文件。当make被调用时,它检查所有源文件和目标文件的修改时间,并且编排出需要重新编译的文件数。
10)设置文件属性(Set Attributes)
修改文件的一些属性,以适应用户的要求。
11)重命名(Rename)文件
重新命名一个已经存在的文件。
对于文件的独享权
10.存取控制表ACL的概念。(2)
◆给每个对象建立一个存取控制表,由有序对(域, 权集)构成
⚫ 为存取控制矩阵中的每一列建立一张存取控制表(ACL),用一有序对(域, 权集)表示。
⚫ 文件的ACL记录在FCB中。
例如 File1(D1,rwx)表示 File1 在域 D1 中,可读可写可执行;
11.理解内存映射文件(memory mapped file)的过程。(2)
内存映射文件,即针对某个具体的文件创建一个它的文件映射对象,又称区域对象;
创建区域对象即将文件映射到进程地址空间中一个区域,返回虚拟地址,仅当需要对文件存取时才传输实际数据;
其存取机制类似于请求页式存储器管理,当映射的页不存在时,也会产生缺页中断,之后转操作系统进行缺页处理;
⚫ OS提供映射文件的系统调用。