目录
一、文件控制块
1、定义:
2、要进行哪些操作
(1)搜索:
(2)创建文件:
(3)删除文件:
(4)显示目录:
(5)修改目录:
二、目录结构
1、单级目录结构
2、两级目录结构
3、多级目录结构
4、无环图目录结构
三、索引结点
四、总结
一、文件控制块
1、定义:
2、要进行哪些操作
(1)搜索:
当用户要使用一个文件时,系统要根据文件名搜索目录,找到该文件对应的目录项
(2)创建文件:
创建一个新文件时,需要在其所属的目录中增加一个目录项
(3)删除文件:
当删除一个文件时,需要在目录中删除相应的目录项
(4)显示目录:
用户可以请求显示目录的内容,如显示该目录中的所有文件及相应属性
(5)修改目录:
某些文件属性保存在目录中,因此这些属性变化时需要修改相应的目录项(如:文件重命名)
二、目录结构
1、单级目录结构
2、两级目录结构
3、多级目录结构
- 用户(或用户进程)要访问某个文件时要用文件路径名标识文件,文件路径名是个字符串。
- 各级目录之间用“/”隔开。从根目录出发的路径称为绝对路径。
- 例如:自拍.jpg的绝对路径是“/照片/2015-08/自拍.jpg”
- 系统根据绝对路径一层一层地找到下一级目录。刚开始从外存读入根目录的目录表;找到“照片”目录的存放位置后,从外存读入对应的目录表;再找到“2015-08”目录的存放位置,再从外存读入对应目录表;最后才找到文件“自拍.jpg”的存放位置。整个过程需要3次读磁盘I/O操作。
- 很多时候,用户会连续访问同一目录内的多个文件(比如:接连查看“2015-08"目录内的多个照片文件),显然,每次都从根目录开始查找,是很低效的。因此可以设置一个当前目录。
- 例如,此时已经打开了“照片”的目录文件,也就是说,这张目录表已调入内存,那么可以把它设置为“当前目录”。
- 当用户想要访问某个文件时,可以使用从当前目录出发的“相对路径”。
- 在Linux中,“.”表示当前目录,因此如果“照片”是当前目录,则"自拍.jpg”的相对路径为:“./2015-08/自拍.jpg”。
- 从当前路径出发,只需要查询内存中的“照片”目录表,即可知道"2015-08"目录表的存放位置,从外存调入该目录,即可知道“自拍.jpg”存放的位置了。
- 可见,引入“当前目录”和“相对路径”后,磁盘I/O的次数减少了。这就提升了访问文件的效率。
注意:
树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,树形结构不便于实现文件的共享。为此,提出了“无环图目录结构”。