2.目录
2.1.文件目录
1.目录的本质是文件:即目录具有文件的各种属性
2.目录文件中的一条记录就是一个文件控制块(FCB),即FCB和记录一一对应;FCB的有序集合称为文件目录
3.FCB包含各类文件的基本信息(各种文件属性)
4.FCB使得用户可以实现按名存取:FCB实现了文件名和文件的映射
5.操作系统对目录的操作:
①搜索:操作系统根据文件名搜索目录,找到该文件对应的目录项
②创建文件:创建文件时,在其所属的目录中增加一个目录项
③删除文件:删除文件时,在其所属的目录中删除一个目录项
④显示目录:向用户展示该目录中的所有文件即其文件属性
⑤修改目录:文件的属性发生修改时,需要修改其在目录中的对应目录项(例如修改文件名)
2.1.1.单级目录结构
1.整个系统只有一张目录表,每个文件对应该目录表中的一个目录项
2.实现按名存取,但是不支持文件重名(操作系统无法区分两个相同的文件名的文件到底哪个是想要的)
3.不适用多用户操作系统(多用户的情况下,将可能发生相同文件名)
2.1.2.两级目录结构
1.不同用户文件存在不同用户目录项,因此支持不同用户的文件重名;实现文件保护和文件共享
2.缺点:无法进行文件分类
2.1.3.多级目录结构(树形目录结构)
1.树形目录结构不便于实现文件的共享
2.相对路径可以减少I/O操作的原因:每查询下一级目录时,都需要启动磁盘I/O把下一级目录所对应的目录文件调入内存
2.1.4.无环图目录结构
当共享计数器的值 > 1时(两个及以上用户使用的文件),用户删除某个文件不能直接删除(还有其他用户使用),此时该用户的删除操作是删除在其目录中该文件对应的目录项(FCB),并使该文件对应的共享计数器 - 1(只有当共享计数器 = 0时,即没有用户使用的文件,才真正删除该文件)
2.1.5.索引结点
通过指针的方式,减少FCB中的存放的信息以提升检索文件的效率(可以大大减少FCB所占用的空间,单个内存块存放的FCB数量增加,即单次I/O能够进行检索的FCB数量增加)。改进后,FCB中存放的是文件名和指向索引结点的指针,索引结点中存放了该文件的各种文件属性(除文件名)
2.2.文件共享
共享和复制的区别:
①共享:系统中只有一份数据。用户对其修改,其他用户的也会被修改
②复制:系统中有多份相同数据。对用户对自己的一份进行修改,其他用户的并不会受到影响
2.2.1.基于索引结点的共享方式(硬链接)
只有当count = 0(没有用户使用该文件)时,才真正删除该文件;当count > 0时,删除操作只是删除该用户中该文件所对应的索引表项2.2.2.基于符号链的共享方式(软链接)
①实现方式:该共享方式下,文件的目录项中的索引结点指针并不是直接指向索引结点,而是创建一个新的link类型的文件,该文件中存放了目标文件(即目标索引结点)的存放路径,之后操作系统根据这个路径逐层检索目录找到想要共享的目标文件(目标索引结点)
②如果link文件所指向的目标文件被删除,虽然link文件依然存在,但link文件无效
③软链接比硬链接文件速度更慢:软链接需要根据文件路径逐层检索目录