操作系统理论 第七章(文件管理)—第四节(文件共享)

写在前面:

  1. 本系列笔记主要以《计算机操作系统(汤小丹…)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
  2. 视频链接:操作系统(汤小丹等第四版)_哔哩哔哩_bilibili

一、基于有向无循环图实现文件共享

1、有向无循环图DAG

        在严格的树形结构目录中,每个文件只允许有一个父目录,父目录可以有效地拥有该文件,其它用户要想访问它,必须经过其属主目录来访问该文件,也就是说,树形结构目录是不适合文件共享的。如果允许一个文件可以有多个父目录,即有多个属于不同用户的多个目录,同时指向同一个文件,这样虽会破坏树的特性,但这些用户可用对称的方式实现文件共享,而不必再通过其属主目录来访问。

        在树型结构的目录中,当有两个(或多个)用户要共享一个子目录或文件时,必须将共享文件或子目录连接到两个(或多个)用户的目录中,才能方便得找到该文件,此时该文件系统的目录结构已不再是树型结构,而是个有向非循环图。下图示出了一个有向无循环图,它允许每一个文件都可以有多个父目录。

        如果通过在文件目录中包含文件的物理地址的方法实现共享还是会有很多缺陷,故采用基于索引结点的共享方式。

2、利用索引结点

        诸如文件的物理地址及其它的文件属性等信息,不再是放在目录项中,而是放在索引结点中,在文件目录中只设置文件名及指向相应索引结点的指针。在索引结点中还应有一个链接计数count,用于表示链接到本索引结点(亦即文件)上的用户目录项的数目,当计数count为0时才真正删除该结点。

二、利用符号链接实现文件共享

1、具体实现

        为使链接父目录D5能共享文件F,可以由系统创建一个LINK类型的新文件,也取名为 F,并将F写入链接父目录D5中,以实现D5与文件F8的链接,在新文件F中只包含被链接文件F8的路径名。这样的链接方法被称为符号链接,又称软链接。

        新文件F中的路径名则只被看做是符号链。当用户通过D5访问被链接的文件F8,且正要读LINK类新文件时,此要求将被OS截获,OS根据新文件中的路径名去找到文件F8,然后对它进行读(写),这样就实现了用户B对文件F的共享。

        即使软链接指向的共享文件已被删除,LINK型文件依然存在,只是通过LINK型文件中的路径去查找共享文件会失败(找不到对应目录项)。

2、存在的问题

(1)当其他用户去读共享文件时,系统是根据给定的文件路径名逐个分量(名)地去查找目录,直至找到该文件的索引结点,因此,在每次访问共享文件时,都可能要多次地读盘,这使每次访问文件的开销甚大,且增加了启动磁盘的频率。

(2)要为每个共享用户建立一条符号链,而由于链本身实际上是一个文件,尽管该文件非常简单,却仍要为它配置一个索引结点,这也要耗费一定的磁盘空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值