文件控制快
目录本身就是一种结构文件,由一条条记录组成,每条记录对应一个应该放在该目录下的文件
目录中一条记录就是一个文件控制快(FCB)File Control Block
FCB的有序集合称为文件目录,一个FCB就是一个目录项。FCB中包含了文件的基本信息,存取控制信息,使用信息,最重要的最基本的还是文件名,文件存放的物理地址
FCB需要进行的操作:
搜索:当用户使用一个文件时候,系统要根据文件名搜索目录,找到对应目录项
创建文件:创建一个文件时候,需要在其所属目录中增加一个目录项
删除文件:删除一个文件时,需要在目录中删除想要的目录项
显示目录:用户可以请求显示目录的内容,入显示该目录中的所有文件以及其相应属性
修改目录:某些文件保存在目录中,这些属性变化需要修改对应目录项
目录结构
单级目录结构
支持按名存取,但是不允许文件重名,因为它的关键词是文件名
在创建文件的时候,需要检查目录表中有无重名文件
两级目录结构
早期的多用户操作系统,采用两级目录结构:
MFD 主文件目录
UFD用户文件目录
多级目录结构(树形目录结构)
用户要访问某个文件的时候,需要文件路径名标识文件,文件路径名是个字符串,各级目录之间用/隔开,从根目录出发叫做绝对路径
如果此时已经打开了一个目录文件,那么从这个目录出发找到下面的文件,就叫做相对路径
但是树形目录结构,不便于文件的共享
无环图目录结构
在树形目录结构的基础上,增加一些有向边,使整个目录称为有向无环图。可以更方便实现多个用户之间的文件共享
不同的文件名只想同一个文件,也可以指向同一个目录(共享目录下所有内容)
需要为每一个共享节点设置一个共享计数器,用于记录由多少地方在共享这个节点,当用户提出删除节点的时候,只会删除此用户的FCB,并让共享计数器-1,而不是直接删除共享节点
当共享计数器变为0的时候,删除节点
索引结点
FCB的改进
除了文件名以外的信息都可以放入索引节点。可以加快检索速度,减少检索冗余的目录项