文件管理系统
-
文件系统:操作系统中的各类文件、管理文件的软件,以及管理文件所涉及到的数据结构等信息的集合。
-
文件的属性:类型,长度,地址,建立时间
-
文件系统模型:
文件的基本概念、操作
任何一个文件都有两种形式:逻辑结构和物理结构
-
逻辑结构:由若干记录构成
- 有结构文件(记录式文件):
- 顺序文件
- 索引文件:通常简历索引表
- 索引顺序文件:
- 多级索引
- 无结构文件:大量的源程序、 可执行文件、 库函数等
- 有结构文件(记录式文件):
-
物理结构:由若干数据块组成
-
外存分配方式:
-
连续分配:要求为每一个文件分配一组相邻接的盘块,文件目录中为每个文件建立一个表项,其中记载文件的第一个数据块地址及文件长度
——问题:
1. 要求有连续的存储空间。
2. 必须事先知道文件的长度 -
链接分配:可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表
- 隐式链接:每个盘块中都含有一个指向下一个盘块的指针
- 显式链接:把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中(FAT为文件分配表)
问题:
1. 不能支持高效的直接存取
2. FAT需占用较大的内存空间 - 隐式链接:每个盘块中都含有一个指向下一个盘块的指针
-
索引分配:为每个文件分配一个索引块(表),再把分配给该文件的所有盘块号都记录在该索引块中
-
两级索引分配
-
-
文件存储空间的管理方法:(和内存管理类似)
-
空闲分区表:
-
空闲链表法:
-
位示图:利用二进制位0、1表示存储空间中存储块的使用状态。空闲分区:0,已分配分区:1(或者相反)——磁盘上的所有盘块都有一个二进制位与之对应
- 位示图的分配:
- 顺序扫描位示图,找到第一个0
- 将找到的第一个或第一组二进制转换为与之对应的盘块号
- 修改位示图map[i][j]=1
- 位示图需要的空间大小:需要占用的存储空间大小为:
磁盘容量(字节数)/ (8 * 数据块大小)
16GB的磁盘,若数据块大小为512字节,则位示图大小为4MB,大约需要占用8000个磁盘块的存储空间。
- 位示图的分配:
-
文件目录
要求:
- 实现“按名存取”
- 提高检索速度
- 文件共享
- 文件重名
文件控制块:
- 基本信息(文件名,类型)
- 地址
- 访问控制信息(所有者,口令等)
- 使用信息(创建时间,修改时间等)
目录结构:
-
单极目录结构:所有用户的全部文件目录保存在一张目录表中,每个文件的目录项占用一个表项 缺点:
1. 查找速度慢
2. 不允许重名
3. 不便于实现文件共享 -
两级目录结构:主文件目录MFD、用户文件目录UFD缺点:
- 不便用户文件的逻辑分类;进一步解决重名、共享、检索效率等问题
-
层次目录结构(树形目录,无循环图)
目录查询技术
- 线性检索法:
- 在单极目录中,利用文件名顺序查找
- 在树型目录中,分层次顺序查找
- Hash方法:建立一张Hash索引文件目录,利用文件名生成Hash值保存(提高了检索速度)
- Hash冲突:在Hash值上添加了一个常数
文件共享
**同时存取:**允许同时读但不允许同时改
存取权限:其中read权限最低,delete最高
- read
- append
- update
- changeing protection
- delete
实现:
-
链接目录项实现法:文件目录项中设置一个链接指针,用于指向共享文件的目录项(只有当共享文件用户数为1时,才能删除共享文件)
-
索引节点实现法:文件的物理地址及其它的文件属性等信息,不再是放在目录项中,而是放在索引结点中
-
符号链实现法等:为使B能共享C的一个文件F,可以由系统创建一个LINK类型的新文件,也取名为F并将F写入B的目录中,以实现B的目录与文件F的链接;在新文件中只包含被创文件F的路径名
- 优点:能连接任何机器上的文件。
每增加一个连接,就增加一个文件名,各用户使用自己的名字去共享文件。 - 缺点:备份可能会产生多个拷贝。
- 优点:能连接任何机器上的文件。
磁盘容错与文件保护
安全性管理
-
系统级管理:防止未核准用户进入系统
- 实现:系统管理员首先为该系统的所有合法用户设置一张用户注册表
- 方法:通过核实该用户的用户名及口令来验证该用户使用系统的合法性
-
用户级管理:根据用户的性质、要求及访问的文件属性为用户分配“文件访问权限”
-
目录级管理:录级安全管理与用户权限无关,是为保护系统中的各种目录而设计的(只有系统内核才具有写目录的权利)
-
文件级管理 :系统管理员或文件主设置文件属性