L31 目录与文件系统
file system
- 磁盘是一颗目录树,每个目录下一堆文件
-
文件系统,抽象整个磁盘(第四层抽象)
-
- 故事从多个文件开始
- 所有文件放在一层(大集合)--集合划分:分治处理
- 引入目录树
-
目录形成目录树
- 实现目录成为关键问题
- 根据树状结构查找文件目录路径,得到文件FCB的映射
- 如果存放目录下的所有文件的FCB吗?需要逐个匹配,这样查找效率低,而且需要加载到内存中才进行匹配;而且目录下很多文件都是多余的
- 这样目录下应该存放什么?使系统效率更高
- 目录的实现,要使整个系统自举,还需要存一些信息
- 引导块大小固定,超级块决定了两个位图的信息,确定根目录的开始地址
完成全部映射下
的磁盘使用-
read的时候利用open的inode信息
-
4层抽象现在明确了!!!
-
总结一下磁盘的使用:多进程需要读写→通过文件系统(第四层抽象)目录解析找到test.c文件,根据文件(第三层抽象)的FCB得到所需位置的盘块号→盘块号写入请求队列排队(第二层抽象)进行电梯算法→磁盘驱动根据盘块号(第一层抽象)算出C H S→相应扇区读写
L32 目录解析代码的实现
directory resolution
open
解析get_dir
完成真实的目录解析find_entry
找根目录下目录信息- FCB存放了盘块的索引。