目录
Part 1:文件的逻辑结构
1.无结构文件(流式文件):本质是一系列二进制或字符流,没有明显的结构特性,不做讨论。
2.有结构文件(记录式文件,可分为定长记录和可变长记录)
(1)顺序文件(文件中的记录逻辑上顺序排列)
- 记录可定长可变长
- 又分为串结构(顺序与关键字无关)和顺序结构(顺序按关键字顺序排列)
- 可顺序存储可链式存储
(2)索引文件
- 建立一张索引表加快文件检索速度,每条记录对应一个索引项(链接文件中的记录),文件中的记录在物理上可以离散地存放。
- 索引表本身是定长记录的顺序文件,可随机存取。
(3)索引顺序文件
- 为了解决索引表过大的问题,索引表的索引项对应的是一组记录;每个分组就是一个顺序文件,分组内记录不需要按关键字排序。
- 多级索引顺序文件
Part 2:文件目录
一、实现文件目录的关键数据结构----文件控制块FCB
- FCB:目录文件中的一个记录,包含的字段有“文件名”“类型”“存储权限”“物理位置”等。
- 需要对目录进行的操作:搜索,创建/删除/文件,显示/修改目录
二、目录结构
1.单级目录结构:不允许文件重名,不适用于多用户系统。
2.两级目录结构:分为主文件目录和用户文件目录,允许不同用户的文件重名。
3.多级目录结构(树形):不同目录下的文件可以重名,但不利于实现文件的共享。
4.无环图目录结构:可以用不同的文件名指向同一个文件,需要为每一个共享结点设置一个共享计数器。
三、对文件控制块FCB的优化—索引结点
- 新建索引表,索引结点中的信息仅包含文件名以及指向文件目录文件的指针。
- 磁盘索引结点,内存索引结点(增加一些信息如“文件是否被修改”、“此时有几个进程正在访问该结点”)