《操作系统 文件目录管理》由会员分享,可在线阅读,更多相关《操作系统 文件目录管理(20页珍藏版)》请在金锄头文库上搜索。
1、6.4 目录管理,对目录管理的要求如下: (1)实现“按名存取” (2)提高对目录的检索速度 (3)文件共享 (4)允许文件重名,6.4 目 录 管 理,6.4.1 文件控制块和索引结点,6.4.2 目录结构,6.4.3 目录查询技术,6.4.1 文件控制块与索引节点,文件控制块是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息。 文件控制块的有序集合称为文件目录。一个文件目录也被看做是一个文件,称为目录文件,.文件控制块介绍,文件控制块:,. 文件控制块的信息,(1)基本信息类 文件名; 文件物理位置 ; 文件逻辑结构 ; 文件的物理结构 (2) 存取控制信息类 (3)
2、 使用信息类,6.4.1 文件控制块与索引节点,文件控制块:,文件控制块:,6.4.1 文件控制块与索引节点,. 文件控制块的内容,MS-DOS的文件控制块,文件名,扩展名,属性,备用,时间,日期,第一块号,盘块数,6.4.1 文件控制块与索引节点,索引结点:,. 索引结点的引入,查找目录的过程中,是将用户给定的文件名与目录项中的文件名逐一比较。这样查找的过程需要启动磁盘的次数较多。在有的系统中如UNIX系统把文件描述信息单独形成一个称为索引结点的数据结构。使得同样大小的盘块目录项数增加。在查找时启动磁盘次数减少。,6.4.1 文件控制块与索引节点,索引结点:,. 磁盘索引结点,(1)文件主标
3、识符; (2)文化类型; (3)文件存取权限; (4)文件物理地址; (5)文件长度; (6)文件连接计数; (7)文件存取时间,6.4.1 文件控制块与索引节点,索引结点:,. 内存索引结点,(1)索引结点编号; (2)状态; (3)访问计数; (4)文件所属文件系统的逻辑设备号; (5)链接指针;,1)单级目录结构2)两级目录3)多级目录,6.4.2 目录结构,1. 单级目录结构,为所有文件建立一个目录文件。单级目录的优点是简单且能实现目录管理的基本功能按名存取。缺点:(1) 查找速度慢 ; (2) 不允许重名,为改变一级目录文件目录命名冲突,并提高对目录文件检索速度而将目录分为两级:一级
4、称为主文件目录,给出用户名,用户子目录所在的物理位置;二级称为用户文件目录,给出该用户所有文件的FCB产生于多用户分时系统优点:解决了文件的重名问题和文件共享问题,提高搜索速度,查找时间降低缺点:缺点是不太适合大量用户和大量文件的大系统,增加了系统开销,,2. 二级目录结构,两级目录结构,2. 二级目录结构,3. 多级目录结构,多级目录结构也称树形目录,产生于UNIX操作系统,已被现代操作系统广泛采用。目录与文件放在,目录也做成文件。优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能进行存储权限的控制。缺点:查找一个文件按路径名逐层检查,由于每个文件都放在外
5、存,多次访盘影响速度。,1)多级目录结构,多级目录结构,在树形目录结构中,从根目录到任何数据文件,都只有一条惟一的通路。在该路径上从树的根(即主目录)开始,把全部目录文件名与数据文件名,依次地用“/”连接起来,即构成该数据文件的路径名。系统中的每一个文件都有惟一的路径名。例如,在上图中用户B为访问文件J,应使用其路径名/B/F/J来访问。,2) 路径名,3) 当前目录,为了提高文件检索速度,文件系统向用户提供了一个当前正在使用的目录,称为当前目录(也称工作目录或值班目录)。查找一个文件可从当前目录开始,使用部分路径名当前目录可根据需要任意改变当前目录一般存放在内存,4. 增加和删除目录,(1)
6、 不删除非空目录。当目录(文件)不空时, 不能将其删除,而为了删除一个非空目录,必须先删除目录中的所有文件,使之先成为空目录,后再予以删除。如果目录中还包含有子目录,还必须采取递归调用方式来将其删除,在MS-DOS中就是采用这种删除方式。(2) 可删除非空目录。当要删除一目录时,如果在该目录中还包含有文件,则目录中的所有文件和子目录也同时被删除。,6.4.3 目录查询技术,线性检索法:,根目录,结点6是/usr的目录,132号盘块是/usr的目录,结点26是/usr/ast的目录,496号盘块是/usr/ast的目录,6.4.3 目录查询技术,Hash方法:,Hash文件,建立一个Hash索引文件目录,系统利用用户提供的的文件名将它转换成文件目录的索引值,再利用该索引值到目录里查找。,6.4.3 目录查询技术,Hash方法:,对于使用了通配符的文件名,需要利用线性查找法查找目录 文件转换出现相同的Hash值时,处理规则如下: (1)利用Hash法索引查找目录时,如果目录中相应的目录项是空的,表示系统中并无指定文件。 (2)如果目录项的文件名与指定文件名匹配,则可以找到该文件所在的物理地址。 (3)如果目录表中的文件名与指定文件名并不匹配,此时需要在其Hash值上加上一个常数(该常数应与目录的长度值互质),形成新的索引值,再返回第一步重新开始检查。,