计算机组成原理
第四章 文件管理
author:slightwjq
2022年12月31日
4.1 文件系统基础
文件是存储在计算机上的信息集合。系统运行时,计算机以进程为基本单位进行资源的调度与分配;而在用户进行输入输出时,以文件为基本单位。
数据项:文件系统中最低级的数据组织方式。
记录:相关的数据项的集合。
文件:是指由创建者所定义的、具有文件名的一组相关元素的集合。
文件的属性:名称、类型、创建者、所有者、位置、大小、保护、创建时间及最后一次修改时间和最后一次存取时间。
文件的基本操作(都是系统调用):创建文件、写文件、读文件、文件重定位、删除文件、截断文件。
文件的逻辑结构
无结构文件:将数据按顺序组织成记录并积累、保存,以字节为单位。
有结构文件:
- 顺序文件:记录一个接一个排列,记录通常是定长的,可以顺序存储或以链表方式存储。
- 索引文件:建立一张索引表,为主文件的每个记录在索引表中分别设置一个表项,包含指向变长记录的指针和记录长度,索引表按关键字排序,因此其本身也是一个定长记录的顺序文件。
- 索引顺序文件:将顺序文件的所有记录分为若干组,为顺序文件建立一张索引表,在索引表中为每组中的第一条记录建立一个索引项,其中含有该记录的关键字值和指向该记录的指针。
- 直接文件或散列文件
文件的物理结构
连续分配:要求每个文件在磁盘上占有一组连续的块。
链接分配:采用离散分配方式,消除了外部碎片,提高了利用率。
- 隐式链接(默认):目录项中含有文件第一块的指针和最后一块的指针。每个文件对应一个磁盘块的链表;磁盘块分布在磁盘的任何地方,除最后一个盘块外,每个盘块都含有指向文件下一个盘块的指针,这些指针对用户透明。
- 显式链接:把用于链接文件各物理块的指针,从每个物理块的末尾提取出来,显式地存放在内存的一张链接表中。该表在整个磁盘仅设置一张,称为文件分配表FAT。每个表项中存放链接指针,即下一个盘块号。文件的第一个盘块号记录在目录项“物理地址”字段中,后续的盘块可通过FAT查到。
索引分配:将每个文件的所有的盘块号都集中放在一起构成索引表。
4.2 目录
FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。
目录结构
单级目录结构:整个文件系统中只建立一张目录表,每个文件占一个目录项。
两级目录结构:将文件目录分为主目录文件和用户文件目录。主文件目录项纪录用户名及相应用户文件目录所在的存储位置。用户文件目录项纪录该用户文件的FCB信息。
树形目录结构:用户要访问某个文件时,用文件的路径名标识文件。
无环图目录结构:在树形目录结构的基础上增加一些指向同一节点的有向边。,使之便与共享。
文件共享
基于索引节点的共享方式(硬链接):文件的物理地址及其他文件属性等信息,不再放在目录项中,而是放在索引节点中。文件目录中只设置文件名及指向相应索引节点的指针。在索引节点中还应有一个链接计数count,用于表示硬链接的数目。
利用符号链接实现文件共享(软链接):由系统创建一个LINK类型的新文件,类似于快捷方式,依据路径去读取文件。
4.3 文件系统
文件系统提供高效和便捷的磁盘访问。
文件系统可能包括:启动存储在那里的操作系统的方式、总的块数、空闲块的数量和位置、目录结构以及各个具体文件。
- 主引导记录MBR:位于磁盘的0号扇区,用来引导计算机,MBR后面是分区表,给出每个分区的起始和结束地址。表中的一个分区被标记为活动分区,当计算机启动时,BIOS读入并执行MBR。MBR做的第一件事是确定活动分区,读入它的第一块,即引导块。
- 引导块:MBR执行引导块中的程序后,该程序负责启动该分区中的操作系统。
- 超级块:包含文件系统的所有关键信息,在计算机启动或者文件系统首次使用时,超级块会被载入内存。
- 文件系统中空闲块的信息可以使用位示图或指针链接的形式给出。
外存空闲分区管理:每个分区都可以有单独的文件系统。包含文件系统的分区通常称为卷。一个卷中,存放文件数据的空间和FCB的空间是分离的。
常用:空闲表法、空闲链表法、位示图法、成组链表法。
虚拟文件系统VFS:为用户程序提供了文件系统操作的统一接口,屏蔽了文件系统的差异和操作细节,采用了面向对象的思想。VFS在系统启动时建立,在系统关闭时消亡。
- 本文作者: 魏静崎
- 本文链接: https://slightwjq.github.io/2023/10/17/操作系统-第四章/
- 版权声明: 该文章来源及最终解释权归作者所有