问题
问答题
在文件系统中,试问:
(1)将一个文件目录分为基本目录项和名号目录项有什么好处
(2)试描述在UNIX系统中实现“打开文件”系统调用的处理过程。
答案
参考答案:(1)将一个文件目录分为基本目录项和名号目录项的好处是可以加快文件目录的检索速度。其原理是减少因查找文件内部号而产生的访问磁盘次数。因为在进行查找文件内部号的过程中不需要把文件控制块(即目录项)的所有内容都读入内存,所以在查找过程中减少所需读入的存储块就有可能减少访问磁盘的次数。但是,采用这种方法访问文件,当找到匹配的文件控制块后,还需要访问一次磁盘,才能读出全部的文件控制块信息。这就是为何采用这种方法在一定条件下并不能减少访问磁盘的次数的原因。
(2)UNIX操作系统的打开文件系统调用open的处理过程可以分成以下四步:
1)检索目录:从根目录或当前目录开始,沿目录树查找指定文件名的文件的i节点。若未找到或不允许访问,则转出错处理,否则执行步骤2)。
2)分配内存i节点:如果该文件已被其他用户打开,则引用计数加1,否则分配内存i节点,并将磁盘i节点的内容复制到内存i节点,引用计数置为1。
3)分配文件表项:在系统打开文件表中,分配一个文件表项,指向内存i节点,并置其他初值。
4)分配用户文件描述表项:在用户文件描述符表(即用户打开文件表)中分配一个表项,指向步骤3)中分配的表项,返回。