文件共享 - wolai 笔记

1. 硬链接

  • 各个用户的目录项指向同一个索引结点
  • 索引结点中需要有链接计数count
  • 某用户项删除文件时,只是删除该用户的目录项,且count--
  • 只有count == 0时才能真正删除文件数据和索引结点,否则会导致指针悬空

2. 软连接 (符号链接)

  • 在一个Link型的文件中记录共享文件的存放路径(windows快捷方式)
  • 操作系统根据路径一层层查找目录,最终找到共享文件
  • 即使软连接指向共享文件已被删除,Link型文件依然存在,只是通过Link型文件中的路径去查找共享文件会失败(找不到对应目录项)
  • 由于用软连接的方式访问共享文件时要查询多级目录,会有多次磁盘IO,因此用软连接访问

3. 注意

  • 多个用户共享同一个文件,意味着系统中只有“一份”文件数据。并且只要某个用户修改了该文件的数据,其他用户也可以看到文件数据的变化。
  • 如果是多个用户都“复制”了同一个文件,那么系统中会有“好几份”文件数据。其中一个用户修改了自己的那份文件数据,对其他用户的文件数据没有影响。

硬链接

  • 索引结点中设置一个链接计数变量count,用于表示链接到本索引结点上的用户目录项数
  • count = 2,说明此时有两个用户目录项链接到该索引结点上,或者说有两个用户在共享此文件
  • 若某个用户决定“删除”该文件,则只是要把用户目录中与该文件对应的目录项删除,且索引结点减1
  • count > 0,说明还有别的用户要使用该文件,暂时不能把文件删除,否则会导致指针悬空
  • count = 0,系统删除文件

软连接

User3访问“ccc”时,操作系统判断文件“ccc”属于Link类型文件,于是会根据其中记录的路径层层查找目录,最终找到User1的目录表中的“aaa”表项,于是就找到了文件1的索引结点

Comment