C5 文件管理
第五章-文件管理
5.1-文件系统概述
引入文件的优点
- 用户使用方便,按名存取
- 文件安全可靠
- 文件可备份
- 文件可共享
文件系统的功能
- 面向用户
- 按名存取
- 共享和保护
- 操作和使用
- OS要实现
- 文件目录的建立与维护
- 存储空间的分配和回收
- 数据安全
- 用户权限
5.2-文件的存储
物理文件
卷:介质的物理单位
块:主存储器和辅助存储器进行信息交换的物理单位,也叫物理记录
逻辑文件
流式文件
文件中的数据是一串没有结构的字符流,比如一串字符串组成的文件
记录式文件
若干逻辑记录信息所组成的记录流文件。逻辑记录是逻辑上的一坨信息的单位
逻辑记录的成组与分解
这个条目解决了从逻辑记录大小和物理记录大小的不匹配的问题
优点
- 节省存储空间
- 减少IO次数
特点
提前读:因为一次读了多个逻辑记录
推迟写:要缓冲区逻辑记录满了才写
长记录
变长记录
跨块记录
文件的物理结构
这个条目解决了从逻辑记录存到物理记录的组织
顺序文件
逻辑记录——线性排列——>物理记录
优点:顺序读取快
缺点:无法动态分配、修改
连接文件
逻辑记录——链表——>物理记录
优点:能动态增长与修改
缺点:读取必须从头顺序读
直接文件
逻辑记录——Hash——>物理记录
优点:动态、即时读取
缺点:哈希冲突
⭐索引文件
逻辑记录——索引表——>物理记录
优点:动态、“半“即时读取
缺点:建表空间开销和查表时间开销
通常是多级索引。多级索引的项指向了一个目录块
5.3-文件的目录结构
文件目录是实现按名存取的重要结构
如其名,就是个目录。既可能是像书那样的线性目录,也可能是树形目录
目录结构的分类
一级目录结构
一张线性表当目录
评价:所有用户共享、文件还不能重名,所以这样很混乱
二级目录结构
第一级目录按用户分,第二级就是对应用户的文件目录
评价:用户的问题解决了,但是对单个用户来说还是很难用
树形目录结构
层次性的目录结构,既可以是森林(Windows),也可以是一颗树(UNIX)
评价:层次关系能反映现实的关系、文件可以重名、每个子树都可以设置权限等机制
活动文件表
解决查目录的访辅存问题,给每一个进程建立一个活动文件表
用文件之前,通过OS提供的“打开文件”操作,文件的有关目录被放到主存的活动文件表
不用文件了就关掉,并且把修改过的内容写回辅存
⭐inode
直观理解:从文件名到inode号的映射
inode区
在磁盘上,保存了诸多inode项
inode项
保存了inode号、inode引用数、inode所在设备等信息
更重要的,保存了文件的索引表
活动/动态inode
类比活动文件表,把活跃的inode从磁盘里复制到主存
静态inode就是磁盘里inode区存的一堆inode项
5.4-文件的安全和保护
文件共享
不同用户共同使用
好处
- 减少用户大量重复性劳动
- 免除系统复制文件的工作
- 节省文件占用的存储空间
- 减少程序设计输入输出文件的次数
文件保护
防止文件损坏
文件副本
动态多副本
- 多个介质上维持同一内容的文件(有点类似RAID0?)
- 会增加设备和系统开销,适合小而重要的文件的保护
文件转储
- 定时保存文件副本
存取控制矩阵
为每个用户设置访问每个文件对象的存取属性
系统的全部用户对全部文件的存取属性就组成的一个二维矩阵,称为存取控制矩阵
二维矩阵是稀疏矩阵,故将其简化为存取控制表,每行包括:用户、文件、存取属性
文件属性
先对用户分类,再对每一类用户规定文件属性
用户分类:属主、合作者、其他
文件属性:读、写、执行等
文件保密
防止某些用户窃取
措施
- 隐蔽文件目录
- 设置口令
- 使用密码