问题 问答题

关于文件系统,请回答以下问题:
(1)请介绍在文件存储空间的管理中几种常用的技术。
(2)在UNIX操作系统中,文件存储空间的管理采用什么方法简述其分配与释放过程。

答案

参考答案:(1)由于文件存储设备是分成若干个大小相等的物理块,并以块为单位来交换信息的,因此,文件存储空间的管理实质上是空闲块的组织和管理问题,它包括组织、分配与回收等。下面是三种在文件存储空间的管理中常用的技术:
1)空闲文件目录。一个空闲文件是由文件存储器上连续的空闲块组成的。系统为所有的空闲文件建立一个单独的目录表。每个表目对应一个空闲文件,记录该空闲文件的起始块号和块数。空闲文件的分配与回收算法与内存管理中的可变式分区管理的方法相似,同样可以采用最先适应算法、最佳适应算法、最坏适应算法等。
2)空闲块链。空闲块链把文件存储设备上的所有空闲块链接在一起。当申请者需要空闲块时,分配程序从链首取下所需的空闲块,然后调整链首指针。反之,当回收空闲块时,把释放的空闲块逐个插入空闲链上。这种方法的优点是分配和回收一个空闲块的过程都非常简单,缺点是空闲块链可能很长。改进的办法是采用空闲盘区链接法或成组链接法。
3)位示图。位示图利用一个二进制位来记载一个物理块的使用情况。系统为每个文件存储设备建立一张位示图,反映文件存储设备所有物理块的使用情况。每个物理块对应位示图上的一位,如果该位为0,则表示所对应的块是空闲的;反之,则表示所对应的块已被分配。利用位图来进行空闲块分配时,只需查找图中为0的位,并将其置1;反之,回收时只需把相应的位由1改为0。由于位示图很小,可以将它保存在内存中。
(2)在UNIX操作系统中的文件存储介质可采用磁盘或磁带。通常把每个磁盘或磁带看作是一个文件卷,在每个文件卷上可以存放一个具有独立目录结构的文件系统。一个文件卷包含许多物理块。0#块一般用于系统引导或空闲;1#块称为超级块,用于存放文件卷的资源管理信息;从2#块起开始的若干块用于存放磁盘索引节点(具体块数由文件系统的大小决定),以后各块存放文件数据。
UNIX操作系统采用成组链接法对空闲盘块加以组织。该方法首先把文件存储设备中的所有空闲块按50块(或100块,下同)划分为一组,组的划分按从后往前的顺序进行,每组的第一块用来存放前一组中各块的块号和总块数。由于第一组的前面再也没有其他组存在,因此第一组的块数为49块。最后一组可能不足50块,而且由于该组后再也没有其他组,所以,该组的物理块号与总块数只能存放在管理文件存储设备用的文件资源表(超级块的一部分)中。系统在初启时把文件资源表复制到内存,从而使文件资源表中存放有最后一组空闲块号和总块数的堆栈进入内存,空闲块的分配与回收可在内存中进行。
当申请者提出申请空闲块要求时,盘块分配程序从栈顶取出一个空闲盘块号,将其对应的盘块分配,然后栈顶指针下移一格,总空闲块数减1。若该盘块是栈底,则将该块中存放的下一组块号和总块数读入内存,然后才将该盘块分配,并重置栈顶指针。
在系统回收空闲盘块时,栈顶指针加1,把回收的空闲块号填入栈顶位置,空闲块数加1。如果栈顶指针等于50,表示该组已满,需把当前栈所连的50个块号与块数写入新回收的空闲块中,重置栈顶指针。

单项选择题
单项选择题