4.1.1文件的概念
1、文件的定义
文件:文件是以计算机硬盘为载体的存储在计算机上的信息集合。
计算机是以进程为基本单位进行
资源的调度与分配的
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统
1)
数据项 数据中可命名的最小元素
2)
记录 相关数据项的集合
3)
文件 无结构文件又叫流式文件,二进制文件
有结构文件一组相似的记录组成,又叫记录式文件
2、文件的属性
- 名称:文件名称唯一
- 标识符:标识文件系统内文件的唯一标签(对用户透明,由于不同目录下可存在同名文件,故名称不能唯一区分文件)
- 类型:即文件类型
- 位置:文件存放的路径(用户使用),在外存中的地址(供操作系统使用)
- 大小:文件大小
- 保护:对文件进行保护的访问控制信息
- 时间:创建时间,上次修改时间,上次访问时间等相关信息
3、文件的基本操作
- 创建文件
- 写文件
- 读文件
- 文件重定位(文件寻址):按某条件搜索目录,将当前文件设置为给定值,并且不会读写文件
- 删除文件
- 截断文件:允许文件所有属性不变,并删除文件内容,即将长度设为0并释放其空间
4、文件的打开与关闭
使用系统调用open
将指明文件的属性(包括该文件物理地址信息)从外存复制到内存打开文件表
的一个表目中,并将该表目的编号返回给用户。
操作系统维护一个包含所有打开文件信息的
打开文件表
2、文件的逻辑结构
1)、无结构文件(流式文件) 二进制文件
2)、有结构文件(记录式文件) 每条记录由若干数据项组成,一般来说每条记录有一个数据项可以作为关键字。
一、顺序文件
- 链式存储:无论是定长/可变长记录,
都无法实现随机存取
,每次只能从第一个记录开始依次往后查找。 - 顺序存储:
可变长记录:
无法实现随机存取
,同样只能从第一个记录向后查找
定长记录:
可以实现随机存取
若采用串结构
,无法快速找到某关键字对应的记录
单链表
若采用顺序结构
,可以快速查找关键字记录
(折半查找)顺序表
顺序文件的缺点是增加/删除记录比较困难
二、索引文件
对于 定长
文件
对于 变长
文件
三、索引顺序文件
(解决索引文件索引表过大的问题)
是顺序
和索引
两种组织形式的结合。
四、Hash文件
4.1.3目录结构
1、文件控制块和索引节点
一、文件控制块
是用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。
FCB的有序集合称为文件目录
,一个FCB就是一个文件目录项
FCB包含的信息
- 基本信息:文件名,
物理地址
,逻辑结构,物理结构等 - 存取控制信息:文件存取权限等
- 使用信息:文件建立时间,修改时间等
- 最重要、最基本的是
文件名
和物理地址
,因为FCB主要实现的功能是按名存取
,即文件名到物理地址的映射
。
二、索引结点
文件描述信息单独形成一个称为索引结点的数据结构
除文件名外的文件描述信息都放到索引结点
FCB必须连续存放
2、目录结构
一、单级目录结构
整个系统中只有一张目录表,每个文件占一个目录项
支持“按名存取”,但不允许文件重名。
单级目录结构不适合多用户操作系统。
一个FCB就是一个 文件目录项
二、两级目录结构
(解决单级不可重名问题)
分为主文件目录
(MFD)和用户文件目录
(UFD)
- 主文件目录记录 记录用户名和相应用户文件目录
- 用户文件目录 用户文件的FCB信息
三、多级目录结构
(树形目录结构)
便于实现文件的分类,不便于实现文件的共享
- 相对路径: 相对于当前目录
- 绝对路径: 从根目录开始
四、无环图目录结构
(解决树形目录不便共享的缺点)
优点:
方便的实现了文件的共享
缺点:
删除共享节点时,另一个共享用户也无法访问 使系统管理变得更加复杂
4.1.4 文件共享
1、基于索引结点的共享方式
硬链接
count表示链接到本索引结点(文件)上的用户数目
count是几,即为几个用户正在共享该文件
2、利用符号链实现共享方式
软链接
为使用户B能共享用户A的一个文件F,可以由系统创建一个LINK类型的新文件,也取名为F并将F写入用户B的目录中
,称为 符号链接
在删除共享文件时,其他用户通过符号链访问,会在访问中出错
将符号链删除不会产生影响
- 符号链接建立时,引用数直接复制
- 硬链接建立时,
新的硬链接
对应文件的引用数+1
例题
- F1引用数为1,建立软连接F2,
引用数直接复制
F2引用数为1 - F1引用数为1,建立硬连接F3,
引用数+1
F3引用数为2
故在删除时:
- F2为软链接,直接删除即可,count不变
- F3为硬链接,count要减一
4.1.5 文件保护
文件保护通过 口令保护(通过口令)、加密保护(密钥)、访问控制(身份权限)
1、访问类型
2、访问类型
为解决访问控制,可以为每个文件和目录增加一个 访问控制表
。