操作系统终端研发部首页投稿(暂停使用,暂停投稿)

操作系统之文件管理

2017-12-18  本文已影响25人  紫霞等了至尊宝五百年

概述

文件是指具有文件名的若干相关元素的的集合

1 文件和文件系统

1.1 基本概念

1.1.1 数据项

最低级的数据组织形式

1.1.2 记录

描述对象某属性的相关数据项的集合
关键字是惟一能标识一个记录的数据项

1.1.3 文件

由创建者定义且有文件名的相关元素集合

1.2 文件类型和文件系统模型

1.3 文件操作

1.3.1 文件“打开”(重点)

将文件属性从外存拷到内存中打开文件表的一表目中
将其编号返回给用户。
系统可利用该编号到打开文件表中去查找。

1.4 文件的逻辑结构 (重点)

按文件结构

按文件组织方式

顺序文件

由一系列记录按某种顺序排列所形成的文件。

可以按照各种不同的顺序进行排列:

顺序文件的优缺点

只有顺序文件才能存储在磁带上,并能有效地工作

索引文件

当记录为可变长度时,通常为之建立一张索引表,为每个记录设置一个表项
索引表是按记录键排序的,本身是一个定长记录的顺序文件,可以方便地实现直接存取。

使用索引表,每个表目包含一个记录的键及其记录的逻辑地址,这类文件称索引文件。

索引顺序文件

有效地克服了变长记录文件不便于直接存取的缺点
所付出的代价也不算太大。

可为变长记录文件建立一张索引表
主文件中的每个记录在索引表中设有一相应的表项

将顺序文件中的所有记录分为若干个组。
为顺序文件建立一张索引表,为每组中的第一个记录建立一个索引项。
实现了组间索引,组内顺序。


索引顺序文件

3 目录管理

对目录管理的要求如下

3.1 文件控制块(FCB)

文件控制块的有序集合称为文件目录,即一个文件控制块就是一个文件目录
通常,一个文件目录本身也被看作是一个文件, 称为目录文件

3.2 索引结点(重点)

使文件描述信息单独形成一个称为索引结点的数据结构
文件目录通常是存放在磁盘上的
在查找目录的过程中

假如一个FCB为64 B,盘块大小为1 KB,若一个文件目录中共有640个FCB,需占用 40 个盘块
每个盘块中只能存放: 16 个FCB
平均查找一个文件需启动磁盘 20 次

UNIX系统采用了把文件名与文件描述信息分开的办法


UNIX系统——索引结点的引入

若每个目录项占16B,盘块大小为1 KB
每盘块可存 64 个目录项
640个目录项只占10个盘块
为检索到一个文件,平均启动磁盘次数=5
查找目录时间大大缩短

3.2.1 磁盘索引结点

文件主标识符。
文件类型。
文件存取权限
文件物理地址: iaddr(0)~iaddr(12)以直接或间接方式给出数据文件所在盘块的编号
文件长度
文件链接计数
文件存取时间

3.2.2 内存索引结点

当文件被打开时,要将磁盘索引结点拷贝到内存的索引结点中。

增加了以下内容:
索引结点编号--用于标识内存索引结点。
状态:指示i结点是否上锁或被修改。
访问计数:每当有一进程要访问此i结点时,将该访问计数加1,访问完再减1。
文件所属文件系统的逻辑设备号。
链接指针--设置有分别指向空闲链表和散列队列的指针

3.3 简单的文件目录

3.3.1 单级文件目录

在整个文件系统中只建立一张目录表
每个文件占一个目录项
目录项中含文件名、文件扩展名、文件长度、文件类型、文件物理地址以及其它文件属性。
为表明每个目录项是否空闲,又设置了一个状态位。

简单且能实现目录管理的基本功能:按名存取

3.3.2 两级文件目录

可为每一个用户建立一个单独的用户文件目录。
所有用户的文件目录具有相似的结构
它由用户文件控制块组成。


两级文件目录

提高了检索目录的速度。
在不同的用户目录中,可使用相同的文件名。
不同用户可用不同的文件名访问同一共享文件。

隔离的缺点

3.3.3 树形结构目录(重点)

主目录被称为根目录,把数据文件称为树叶,其它目录作为树的结点。


树形目录

路径名

当前目录(工作目录)

进程对各文件的访问都相对于“当前目录”而进行
在UNIX/Linux 系统中,“ . ”是指当前目录,“..”是指父目录。


当前目录
Linux层次目录结构

3.4 目录查询技术——线性检索法

在树型目录中,用户提供的文件名是由多个文件分量名组成的路径名。 /usr/ast/mbox


线性检索法

4 文 件 共 享

4.1 基于有向无循环图实现文件共享

当多个用户要共享一子目录或文件时,须将共享文件或子目录链接到多个用户的目录中,才能方便地找到该文件,此时文件系统的目录结构是个有向非循环图。


有向无循环图DAG

4.2 利用索引结点的共享方式(硬链接)(重点)

由任何用户对文件进行Append操作或修改,所引起的相应结点内容的改变(例如,增加了新的盘块号和文件长度等),都是其他用户可见的,从而也就能提供给其他用户来共享。


ln Wang/Test Lee/ABC
image.png
进程B链接前后的情况

当文件主删除文件时,并没有真正删除该文件和索引结点。只有等到链接计数count=0时,才真正删除该文件。


image.png

4.3 利用符号链实现文件共享(软链接)(重点)

利用符号链实现文件共享

4.4 硬链接和软链接

5 文件保护

5.1 访问矩阵(重点)

基本的访问矩阵

5.1.1 访问矩阵的实现

访问控制表(Access Control List)
对访问矩阵按列(对象)划分
为每一列建立一张访问控制表ACL。
当对象是文件时,访问控制表作为文件存取控制信息,存放在该文件的文件控制表中
减少所占用的存储空间,并能提高查找速度。


image.png

5.1.2 访问权限(Capabilities)表

每一行构成一张访问权限表。
表中的每一项即为该域对某对象的访问权限。
当域为用户(进程)、对象为文件时
访问权限表便可用来描述一个用户(进程)对每一个文件所能执行的一组操作。

6 文件物理结构(重点)

6.1 连续分配(顺序式的文件结构)

为每一文件分配一组相邻盘块,可把逻辑文件中的记录顺序地存储到邻接的各物理盘块中所形成的文件结构
该分配方式保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序的一致性。


磁盘空间的连续组织方式

6.2链接组织方式(链接式的文件结构)

1.2.1 隐式链接

在文件目录的每目录项中,须含有指向链接文件第一个盘块和最后一个盘块的指针。
每一个物理块中设有一个指针,指向下一个物理块的位置

主要问题在于

1.2.2 显式链接(重点)

把链接文件各物理块的指针,显式地存放在内存中一链接表中。
在整个磁盘仅设置一张该表。
查找记录的过程是在内存中进行的,因而可显著提高检索速度,且大大减少了访问磁盘的次数


image.png
显式链接

1.2.3 FAT和NTFS技术

1.3 索引组织(索引式文件结构)

1.3.1 单级索引组织

链接方式的问题

应将每个文件所对应的盘块号集中地放在一起,
为每个文件分配一个索引块(表),
把分配给该文件的所有 盘块号 都记录在该索引块中
支持直接访问
对于大文件而言,该方式优于链式组织方式

主要问题

1.3.2 多级索引组织

多级索引分配

1.3.3 混合索引分配方式

image.png

2文件存储空间管理(重点)

image.png image.png image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读