问题 问答题

UNIX操作系统是如何在其打开文件结构中实现文件共享的

答案

参考答案:UNIX操作系统的文件共享包括两个方面,即磁盘文件的共享和打开文件的共享。UNIX操作系统实现磁盘文件共享非常方便,不同目录中的文件指向同一个i节点,就可以实现共享。文件在目录结构中的共享是一种静态的共享。而当多个用户同时打开某一文件对其访问时,将在内存中建立打开文件结构,这时的共享称为打开文件结构中的共享,这是一种动态的共享。
UNIX的文件系统中打开文件结构由以下三部分组成:
(1)进程打开文件表。每个进程都有一个进程打开文件表,其中每一项是一个指针,指向系统打开文件表。
(2)系统打开文件表。系统打开文件表也叫打开文件控制块。一个进程每打开一个文件都有一个系统打开文件表,其中主要包含:
·f-count:指向该系统打开文件表的进程数。
·f-inode:指向一个打开文件的内存i节点。
(3)内存i节点。其中主要包括:
·i-addr[]:文件在盘上的物理位置信息。
·i-count:与此内存i节点相连的系统打开文件表的个数。
不同用户对打开文件的共享只需将系统打开文件表中的指针f-inode指向同一个内存i节点即可。在这种共享方式中,共享文件的各个进程拥有各自独立的文件读、写指针。但子进程共享父进程的文件却是同一个读写指针。

单项选择题
多项选择题 案例分析题