文件系统基础
文件标识符:用户不可见。操作系统内部名称。
流式文件(无结构)
有结构文件,又称为 记录式文件。
定长记录、变长记录。
1.顺序文件。
链式存储无法实现 随机存取。
2.索引文件, 为变长记录建立索引表。
3.索引顺序文件。
一组记录建立一个索引表项。
检录多级索引
文件目录
目录是一种特殊的文件,文件控制块 FCB
文件名不存在文件本身,只是在 FCB 控制块中
设置当前目录,使用相对路径
无环图目录结构,在这种结构向,不同用户拥有不同的 目录表, 两个目录表指向同一文件可能 是 不同的 文件名。但删除就会比较复杂,主要设置 共享计数器, 为0时才删除。
FCB 的改进 索引改进。
文件目录表 只存放 文件名和索引地址,这样方便按照文件名瘦身 查找,索引项记录了 该文件的其他更多的详细信息。
软件共享
- 基于索引结点的共享方式
让不同用户的目录项 指向同一个索引结点。
- 基于符号的软连接方式
软连接也会建立一个新文件,只不过包含新地址的路径。
文件保护
1.口令保护
-
加密保护
-
访问控制
在FCB 中增加一个访问控制表
文件系统的实现
操作系统对内存的管理。磁盘分块 和内存分块 一般一样,比较方便 4K
逻辑块 转换为 物理块
-
连续分配
优点:访问速度快。
缺点:文件需要连续,扩展不方便。没有连续的空间。 且有碎片 。
- 链接分配 -- 隐式链接
链接分配是离散的分配方式。 起始块 -> 结束块
优点:方便扩展。
链接分配 -- 显式链接 (File Allocation Table) (FAT)
下一块的信息是统一被管理的。 开机时, FAT 被读入内存。 磁盘只有唯一的 FAT 表。
FAT 支持随机访问,因为 FAT 直接被读入内存,获取下一块地址时不需要再从磁盘读取。
索引分配
文件表-》索引节点 -》索引表 (按顺序查询)
可以随机访问。
如果索引表太大:
1.链接方案:
多个索引表链接起来, FCB 只记录第一个索引块。
缺点:如果文件很长,查找次数太多,IO 效率低下。
2.多层索引。
2 及索引 256x256x1 = 64k 访问 3 次 (k+1)次。
缺点:小文件不友善
- 混合索引
这种索引表 同时指向 数据块 和 第n级 索引表,
小文件比较合适。
文件存储空间管理
1.空闲表法:
2.空闲链:
空闲盘块 vs 空闲盘区
3.位示图法:
用二进制位表示。
- 成组链接法 unix
目录区有,超级块,启动时载入内存,并时刻保持一致。