标签:img 类信息 灵活 简单的 额外 状态 用户 基本功 根目录
文件目录主要对系统中的大量文件进行有效的管理和妥善组织。文件目录是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用。文件目录需实现下述的四个基本功能:
- 实现”按名存放“
- 提高对目录的检索速度
- 文件共享
- 允许文件重名
为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构,称之为”文件控制块“。文件控制块和文件意义对应,而文件控制块的有序集合被称之为文件目录,即一个文件控制块就是一个文件目录项。
文件控制块(File Control Block)中通常含有三类信息:基本信息、存取控制信息、使用信息。
- 基本信息
- 文件名
- 文件物理位置
- 文件逻辑结构
- 文件的物理地址
- 存取控制信息
存取控制信息包括文件的存取权限,核准用户的存取权限以及一般用户的存取权限。- 使用信息
使用信息包括文件的建立日期和时间,文件上一次修改的日期和时间,以及当前使用信息。
索引节点(为什么需要索引节点?)
由来:文件系统在未引入索引节点之前在每次查找文件都需要遍历查找文件目录,当文件系统管理大量文件目录的时候,查询效率低下的特征会愈发明显。为了缓和这种矛盾,我们将文件的描述信息以及文件名进行分离,即修改文件目录中的数据项(笔者认为是FCB),将文件目中中的数据项修改为文件名和一个索引节点的数据结构(索引节点实际上是一个指向文件描述信息的指针),这种简单的优化使得查询效率有了小幅度的提高,下面笔者画出示意图进行说明:
上图是UNIX的文件目录,下面来简单的介绍磁盘索引节点编号中都有哪些内容:- 文件主标识符
- 文件类型
- 文件存取权限
- 文件物理地址
- 文件长度
- 文件连接计数
- 文件存取时间、
相比较磁盘索引节点,内存索引节点新增了下述信息:- 索引节点编号
- 状态
- 访问计数
- 文件所属文件系统的所及设备号
- 链接指针
上图是树形结构目录(Tree Structured Directory),树形目录可以极大的提高目录的检索速度和文件系统的性能。
图中,用方框代表文件,圆圈代表数据文件。为了提高文件系统的灵活性,在树形的文件系统中,允许在一个目录文件中的目录项,既是作为目录文件的FCB,又是数据文件的FCB,这可用目录项中的一位来指示它是属于哪一种FCB。
绝对路径和相对路径的概念我们不再详细阐述
首先,系统应先读入第一个文件分量名user,用它与根目录文件(或当前目录文件)中各目录项中的文件名顺序地进行比较,从中找出匹配者,并得到匹配项地索引节点号6,再从6号索引结点中得知usr目录文件放在132号盘块中,将该盘块内容读入内存。
其次,系统再将路径名中的第二个分量名ast读入,用它与放在132号盘块中的第二级目录文件中各目录项的文件名顺序进行比较,又找到匹配项,从中得到ast的目录文件放在26号索引结点中,再将26号索引结点中的知/usr/ast存放在496号盘块中,再读入496号盘块。
然后,系统又将该文件的第三个分量mbox读入,用它与第三级目录文件/usr/ast中各目录项中的文件名进行比较,最后得到/usr/ast/mbox的索引结点号60,即在60号索引结点中存放了指定文件的物理地址。目录查询操作到此结束。如果在顺序查找过程中,发现有一个文件分量名未能找到,则应停止查找,并返回“文件未找到”信息。
文件共享是指系统应允许多个用户(进程)共享同一份文件,这样,在系统中只需保留该文件的一个副本。
在树实现多对多关系是一项很富在的工作,并且会极大的浪费计算机的硬件资源。在采取多对多(有向无循环图)中,我们利用目录文件中的索引节点,将索引结点链接到各个文件从而实现一个文件的多用户共享,在索引结点中我们还可以添加计数器count,用来统计共享的次数。
符号链接的基本思想是允许一个文件或子目录有多个父目录,但其中仅有一个作为主父目录,其他的几个父目录都是通过符号链接方式与之相链接的。这种链接结构仍然是简单树,这对文件的删除、查找都更为方便。
符号链接更像是一个路径名或者可以称作“快捷方式”。这种“软链接”的方式更像是计算机网络中统一资源定位符的意味。
符号链接完美的避免了空指针的问题,但是也额外的增加了启动磁盘的开销和一定的磁盘空间。
影响文件的安全性的因素主要有:人为因素、系统因素、自然因素。相应的,为了确保文件系统的安全性,人们采取了三方面的措施:存取控制机制、系统容错技术、后备系统。
未完待续......
标签:img 类信息 灵活 简单的 额外 状态 用户 基本功 根目录
原文地址:https://www.cnblogs.com/LeeTsmon/p/9159077.html