10.1假设有一个文件系统,它里面的文件被删除后,当连接到该文件的链接依然存在时,文件的磁盘空间会再度被利用。如果一个新的文件被创建在同一个存储区域或具有同样的绝对路径名,这会产生什么问题?如何才能避免这些问题?
Answer:
令旧的文件为F1,新文件为F2。用户希望通过存在的链接进入F1,实际上将进入F2。注意,使用的是文件F1的访问保护,而不是F2的。这个问题可以通过确保所有被删除文件的链接也被删除来避免。可以从几个方面来完成:
a.保存一份文件所有链接的列表,删除文件时,删除每一个链接 b.保留链接,当试图访问一个已删除文件时删除他们
c.保存一个文件引用清单(或计数器),只有在文件所有链接或引用被删除后,删除该文件
10.2打开文件表被用以保持当前打开文件的信息,操作系统应该为每个用户保持一个单独的表吗?或者只是保持一个包含当前所有用户访问文件的引用的表?如果两个不同程序或用户访问同样的文件,在打开文件表中应包含单独的条目吗?
Answer:
保持一个中央的打开文件表,操作系统可以执行下列操作,否则不可执行:
假设一个当前有一个或一个以上进程访问的文件。如果该文件被删除,那么应该直到所有正在访问文件的进程关闭它时,它才能从磁盘上删除。只要有正在访问文件的进程数目的集中核算,该检查就可以执行。另一方面,如果两个进程正在访问该文件,则需要保持两个单独的状态来跟踪当前位置,其中部分文件正被两个进程访问。这就要求操作系统为两个进程保持单独的条目。
1 / 19
在许多情况下,单独的程序可能愿意容忍同时访问一个文件,而不需要获得锁,从而确保文件的相互排斥。其他程序结构也可以确保相互排斥,如内存锁;或其他同步的形式。在这种情况下,强制锁将限制访问文件的灵活性,也可能增加与访问文件相关的开销。
10.4在文件的属性中记录下创建程序的名字,其优点和缺点是什么?(在Macintosh操作系统中就是这样做的)
Answer:
记录下创建程序的名字,操作系统能够实现基于此信息的功能(如文件被访问时的程序自动调用)。但它会增加操作系统的开销,需要文件描述符的空间。
10.5有些系统当文件第一次被引用时会自动打开文件,当作业结束时关闭文件。
论述这种方案与传统的由用户显式地打开和关闭文件的方案相比有什么有点和缺点?
Answer:
文件的自动打开和关闭免除了用户对这些功能的调用,从而使它更方便用户;但它比显式打开和关闭需要更多的开销
10.6如果操作系统知道某一应用将以顺序方式访问文件数据,将如何利用此信息来提高性能?
Answer:
当访问一个块时,文件系统可以预取随后的块,预计未来对于这些块的要求,这种预取优化将减少未来进程将经历的等待时间。
这个预取的优化将会为未来的要求减少等候所经历的时间。( 10.6最后一句翻译)
2 / 19
10.7举一个应用程序的例子,它能够受益于操作系统支持的随机存取,以建立索引的档案。
答:
一个应用程序,它维持的一个数据库的条目可以受益于这种一种支持: 举个列子,如果某程序是维护一个学生数据库,则访问的数据库不能被任何预先确定的访问模式模拟,这种获得记录是随机的,而且该记录的定位,如果作业系统是提供某种形式的树为基础的指数,将会更有效。
10.8讨论支持联系档案,两岸装入点的优点和缺点(即链接文件指的是文件在不同体积存储)。
答:
其优点是,有更大的透明度,也就是说,用户并不需要知道装入点和建立联系的所有情景。但缺点是文件系统包含的链接可能会展开而安装的文件系统包含目标文件可能不会,因此,在这种情况下不能提供透明的访问该文件,错误的条件会使该用户的联系是一条走不通的链接,而且链接确实跨越了文件系统的界限。
10.9有些系统文件提供文件共享时候只保留文件的一个拷贝,而另外的一个系统则是保留多个拷贝,对共享文件的每一个用户提供一个拷贝,论述这种方法的相对优点。
答:
在一个单一的复制,同时更新了一个文件可能会导致用户获得不正确的信息,文件被留在了不正确的状态.随着多份拷贝,它会浪费存储而且各种副本可能不一致。
10.10讨论交往远程文件系统(存储在文件服务器)从一套不同的失败语义相关的本地文件系统的优点和缺点。
答:
3 / 19