Cha11 文件管理文件
文件的属性
– 类型
– 长度
– 物理位置
– 建立时间文件记录 1 记录 2 记录 n
数据项 1 数据项 2 数据项 n…

文件类型
按用途分
– 系统文件
– 用户文件
– 库文件
按数据形式分
– 源文件
– 目标文件
– 可执行文件
按控制属性分
– 只读文件
– 读写文件
– 只执行文件文件系统模型文件系统接口操纵和管理对象的软件集合对象及属性用户 (程序 )
文件目录磁盘空间文件操作
创建文件
删除文件
读文件
写文件
截断文件
设置读写位置
打开
关闭
属性操作
目录操作
文件共享文件的结构
逻辑结构
– 提高检索速度
– 便于修改
– 降低存储费用? 物理结构
– 提高利用率
– 加快访问文件的逻辑结构
有结构文件
– 定长记录,变长记录
– 顺序文件,索引文件,索引顺序文件
无结构文件顺序文件串结构和顺序结构? 适合批量访问
增减记录困难
Rptr=rptr+L Rptr=rptr+Li
索引文件索引号 长度 位置
0 M0
1 M1
i Mi
R0
R1
R2
Ri
索引表 文件索引顺序文件
Aab
abg
afg
avf
bad
bdg
Bhk
Chj
ckh
键 位置
Aab
Bad
chj
直接文件
f键值
hash函数目录表外存分配方式
连续分配
链接分配
索引分配连续分配
0 1 2
3 4 5
6 7 8
文件 开始 长度
a 0 4
b 4 3
c 7 2
a
b
c
目录
顺序访问容易
顺序访问快速
要求连续空间
要求预知文件长度链接分配-隐式分配
0 1 11 2
3 -1 4 5
6 7 8
9 10 11 13
12 13 3 14
15 16 17
a
文件 开始 结束
a 1 3
目录
只适合顺序访问簇- cluster
链接分配-显式分配
FCB
2
FAT
0
1 0
2 4
3
4 5
5 1
6
7
不支持高效访问
FAT占用空间索引分配-单级索引分配
支持直接访问
需要更多外存文件 索引块号
a 18
9 16 1 10 25
-1 -1 -1 -1
索引分配-多级索引分配主索引
360
740

360
105
201

740
356
175

磁盘空间二级索引索引分配-混合索引分配
0
1
9
10
11
目录管理
按名存取
提高目录检索速度
文件共享
允许重名文件控制块
基本信息类
– 文件名
– 物理位置
– 逻辑结构
– 物理结构
存取控制信息类
– 文件主的权限
– 核准用户的权限
– 一般用户的权限
使用信息类
– 文件建立时间
– 上次修改时间
– 当前使用信息索引节点
磁盘索引节点
– 文件主标识符
– 文件类型
– 存取权限
– 物理地址
– 长度
– 连接计数
– 存取时间
内存索引节点
– 索引节点编号
– 状态
– 访问计数
– 逻辑设备号
– 链接指针目录结构
单级目录
两级目录
多级目录单级目录
查找速度慢
不许重名
共享不方便文件名 物理地址 说明 状态位
A
B
c
两级目录
加快检索速度
不同用户的文件可以重名
可以共享用户名 子目录指针
wang
zhang

f1
f2
f3
f2
f4
多级目录
A B C
A B D F E D G A
A C
J N K J M K A H F
目录查询技术-线性检索法检索 /usr/ast/mbox
1?
1
4 bin
7 dev
14 lib
9 etc
6 usr
8 tmp
根目录
…132…
6?
1
19 dick
30 erik
51 jim
36 ast
45 bal
…496…
26?
6
64 grants
92 books
60 mbox
81 minik
17 src
目录查询技术- hash方法
目录项为空-无此文件
目录项的文件名正确-获得物理地址
目录项的文件名不正确-加上某常数文件存储空间的管理
空闲表 /链表法
位示图法
成组链接法空闲表法序号 起始块号 块数
1 2 4
2 9 3
3 15 5
4 - -
空闲链表法空闲盘块链空闲盘区链位示图法
容易查找
占用空间少
1 2 15 16
1 1 1 0 0 1 0 1 1
2 0 0 1 0 0 1 1 1
15
16
成组链接法
100
300
299
201 201
299
100
400
301
300
301
202 302
399
100
500
401
400
7901
7902
7999
… …

文件共享
A B C
A B CB B
B
C
C
C C
C C?
基于索引节点的共享
f2
f2
wang用户目录
zhang用户目录
count=2
物理地址磁盘容错技术
第一级容错技术 SFT1
– 双份目录和双份 FAT
– 热修复重定向和写后读校验
第二级容错技术 SFT2
– 磁盘镜像
– 磁盘双工