操作系统基础48-目录结构
2021-01-28 02:06·重学IT的老猫
1. 存储结构
文件存储在随机存取设备上,包括硬盘、光盘和固态(基于内存)盘。
一个磁盘可以划分多个分区(partition),每个分区可以有多个单独的文件系统。存储设备可以组成RAID集。
分区可用于限制单个文件系统的大小,包含文件系统的分区通常称为卷(volume)。卷可以是设备的一部分,或整个设备,或由多个设备组成的RAID集。
包含文件系统的每个卷也应包含有关系统内的文件信息。这些信息保存在设备目录(device directory)或卷目录表(volume table of content)中。设备目录(更常称为目录(directory))记录卷上的所有文件的信息,如名称、位置、大小和类型等
典型的文件系统结构
2. 目录概述
文件系统实现对文件的“按名存取”。
文件系统需要建立这样一种数据结构,以实现文件名与文件物理位置之间的映射关系,体现这种对应关系的数据结构称为文件目录。目录的每个叶节点保证通过文件名检索到,又包含这个文件物理位置的信息。
目录可看做符号表,它能将文件名称转换成目录条目
** 目录相关操作:**
搜索文件
创建文件
删除文件
遍历目录
重命名文件
跟踪文件系统: 管理文件,包括备份和释放磁盘空间。
3. 单层目录结构
单级目录
优点: 结构简单,便于支持。
缺点: 命名重复问题、用户分组问题、不同用户间文件共享问题。
两级目录结构
两级目录结构
优点: 命名问题解决、搜索高效。
缺点: 不同用户间文件共享问题(有的系统简单地不允许本地用户文件被其他用户访问)。
5. 树形目录
将目录结构扩展为任意高度的树,不再按照用户区分不同子目录,所以可以通过路径访问到其他用户下的文件。
绝对路径: 从根开始给出路径上的目录直到目录文件。
相对路径: 从当前目录开始定义路径。
树形结构目录
优点: 易于管理,搜索高效。
缺点: 多用户对同一文件的共享问题。
6. 无环图目录
运行目录含有共享子目录和文件,共享文件不用于文件的复制,对于一个共享文件,只存在一个真正的文件。当多用户在一个组工作时,只需要把共享文件目录设为每个用户目录下的子目录就可完成分组共享。
无环图目录
优点: 实现了文件共享
缺点:
同一文件有多个绝对路径,遍历时重复计数。
删除共享文件时会留下悬空指针。
解决:
提出符号链接: 又称软链接概念,即指向共享目录的指针,用绝对路径名实现,通过路径名定位真正的文件获得解析,与共享文件唯一的绝对路径区别。即它存的不是真正的文件节点,而是指向真正文件节点的指针。即指向指针的指针。
引入链接概念后,当实际文件被删除后,链接保留,当用户访问链接访问文件时再告知用户链接失效。Windows,Unix都采用这种方式。
7. 通用图目录
当目录中允许环存在时,存在重复遍历问题和删除时因为自身引用,导致引用计数无法为0而永远无法被删除的问题。
解决方案:
在无限循环的遍历中设置最大遍历次数,如果超出则自动跳出。
遍历两遍,第一遍标记所有可以访问到的空间,第二遍将没有访问到的空间加入空闲空间链表。
通用图目录