您的位置:首页 > 其它

[操作系统概念]第七部分——文件与目录

2017-02-24 22:08 239 查看

目录

这部分总结的比较简略

* 文件包含文件本身和文件相关的信息。

* 不同类型文件的开头几个字节有特定的次序,用于表示该文件是什么类型,需要如何操作。

* 对文件的组织管理需要有目录这种形式的数据结构。通过目录可以索引文件,存储和文件相关的位置等信息,文件信息也保存在目录中。

目录的结构

单层结构:较简单的目录用单层的目录,实现是一个MAP,每一个目录中文件的条目索引一个真实文件的地址。所有文件都包含在一个目录中,这种结构对于目录对不同用户使用,文件有不同名称等情况不能处理。

双层结构:类似于单层鲁姆,不过是两层,第一层是用户,第二层是文件目录。



树状结构:即便是双层目录,每个用户下文件也都是包含在一级目录下的,没有层次,而树状目录允许用户创建富有层次的目录,但是树状结构不能支持对文件的共享。

无环图目录:对于多用户下需要共享的文件,尤其是大文件,如果多个用户分辨储存一次,浪费空间。在树状目录中共享无法实现,所以有了无环图目录,它允许目录含有共享的子目录或者文件,无环还强调目录之间的引用关系不存在环。此外,无环图对共享目录的遍历开销更大。存在共享的目录存在一个问题:如果一方删除了共享文件,另一方的目录如何处理?一种方法是删除文件时,另其他所有目录的引用全部置为无效,另一种处理方法是保留文件直到对这个文件的所有目录引用都消失。

通用图目录:相比于无环图,这里强调通用图可能存在环,那么高效的遍历算法就是通用图看重的了。

文件系统

文件系统的分层设计:(由低到高)

设备

I/O控制:由设备驱动程序和中断处理程序组成,负责磁盘和内存之间的数据传输

基本文件系统:发送一般命令控制对磁盘物理块的读写

文件组织系统:将物理块与逻辑块相映射

逻辑文件系统:管理文件系统的所有结构数据等元数据

应用程序

文件系统的实现

每个卷(分区)的引导控制块:保存磁盘启动操作系统所需要的信息,没有操作系统则为空,NTFS下称为分区引导扇区,UFS下称为引导块

卷控制块:包括每个卷的详细信息,如分区的总块数,空闲块数等,NTFS下称为主控文件表,UFS下称为超级块

每个文件系统的目录结构:用于组织文件

每个文件的文件控制块:包括文件的详细信息,包括文件的大小,数据块,拥有者等

目录的实现

线性列表:拥有线性数据结构的公共优缺点,查找耗时,创建新文件需要先遍历是否文件重名

哈希表:避免了线性表的查找性能低的问题,但是需要处理哈希本身的问题:冲突和重新哈希
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐