操作系统7——文件存储
目录
1、文件的概念
(1)数据项、记录与文件
|
数据项 |
基本数据项 |
例如,用于描述一个学生的基本数据项有:学号、姓名、年龄、所在班级等。 |
|
组合数据项 |
例如,工资是个组项,它可由基本工资、工龄工资和奖励工资等基本项所组成。 |
|
|
记录 |
记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。 |
|
|
文件的三个基本要求 |
能够存储大量的信息; 长期保存信息; 可以共享信息。 |
|
文件是一个抽象机制,它提供了一种把信息保存在存储介质上,而且便于以后存取的方法,用户不必关心实现细节。文件与记录和数据项的关系可以用下图表示:
文件的基本操作包括:
|
文件基本操作 |
对于文件属性操作 |
改名、变拥有者、修改权限、查询状态 |
|
对于文件操作 |
创建、删除、读、写 设置读写位置、设置权限 |
|
|
对于目录操作 |
创建目录、删除目录、改变当前目录 |
文件系统在操作系统中的位置:
(2)文件的分类
|
文件 |
按存取的物理结构分类 |
顺序文件 |
顺序地存储到连续的物理盘块中 |
|
链接文件 |
通过物理块中的链接指针组成一个链表管理,形成一个完整的文件 |
||
|
索引文件 |
|
||
|
按文件用途分类 |
系统文件 |
由系统软件构成的文件 |
|
|
用户文件 |
又用户源代码,目标文件和exe文件和数据组成 |
||
|
库文件 |
由标准子例程和常用例程组成 |
||
|
按文件中的数据形式分类
|
源文件 |
由源程序和数据构成的文件 |
|
|
目标文件 |
由源程序经过相应的计算机语言编译程序编译,但尚未经过链接程序链接的目标代码所形成的文件,后缀名为“.OBJ”或“.o” |
||
|
可执行文件 |
|
||
|
文件的属性 |
文件类型;文件长度;文件的物理位置;文件的建立时间 |
||
按照索引的方式组织PCB可以标识如下:
(3)文件的逻辑结构
|
文件的逻辑结构 |
有结构文件 |
由若干个记录所构成的文件,故又称为记录式文件 |
|
|
顺序文件 |
一系列记录按顺序排列形成文件,变长/定长 增加删除记录困难 |
||
|
分为串结构(检索费时) 顺序结构(检索高效) |
|||
|
索引文件 |
可变长记录建立索引表 |
||
|
索引顺序文件 |
顺序文件与索引文件的结合,为一组记录的第一个记录建立索引表 |
||
|
无结构文件 |
这是直接由字符序列所构成的文件,故又称为流式文件 |
||
2、文件的内外存分配
(1)连续分配
连续分配的优点:
- 结构简单,容易实现
- 所需的磁盘寻道次数和寻道时间最少
- 顺序存取速度快
- 支持顺序存取和随机存取
连续分配的缺点:
- 要求有连续的存储空间,不利于动态扩充
- 必须事先知道文件的长度,用户不方便
- 容易形成碎片,空间利用不充分
(2)链接分配
第一种是隐式链接:每个物理块的最末一个字(或第一个字)作为链接字,它指出后继块的物理地址。链首指针存放在该文件目录中。文件的结尾块的指针为“∧”。
隐式链接的优点:离散存储,空间利用率高;顺序存取效率高。
隐式链接的缺点:随机存取效率太低,若要访问第i个物理块,必须读出前i-1个。
第二种是显式链接
隐式链接的优点:
- 消除了外部碎片,提高外存利用率;
- 文件动态增长时,可动态地为它分配盘块;
- 文件的增删改方便,不需事先知道文件长;
隐式链接的缺点:
- 存取速度慢;
- 只适于顺序存取,不适于随机存取;
- 可靠性差,若某一块指针出错,则链断开;
- 更多的寻道次数和寻道时间;
- 链接指针占用一定的空间;
(3)索引分配
一个文件的信息存放在若干不连续物理块中,另一种形式的非连续文件,文件数据存放的存储介质上的物理块号与文件的逻辑块号一一对应,系统为这样对应关系建立一个专用数据结构,索引表。
索引表:一个文件所有记录的关键字和其它地址的对照表。
一个索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块。
索引结构的优点:保持了链接结构的优点,又解决了其缺点:即能顺序存取,又能随机存取,满足了文件动态增长、插入删除的要求,也能充分利用外存空间。
索引结构的缺点:
- 较多的寻道次数和寻道时间,索引表本身带来了系统开销,如:内外存空间,存取时间。
- 需要较多外存空间来建立索引块。
- 对于小文件,空间浪费严重。
3、文件控制块FCB
- 是用于描述和控制文件的数据结构。
- 文件管理程序可借助FCB中的信息对文件施以各种操作。
- 文件控制块的有序集合称为文件目录,即一个文件控制块就是一个文件目录项。
- 通常,一个文件目录本身也被看作是一个文件,称为目录文件。
文件控制块中的信息
- 基本信息类:文件名,文件的物理位置,文件的逻辑结构 ,文件的物理结构。
- 文件控制信息类:文件拥有者权限,核准用户权限,一般用户权限。
- 使用信息类:文件建立日期,文件修改日期。