操作系统基础知识整理

28 文件存储空间管理

2017-06-23  本文已影响42人  saviochen

文件存储空间分配方法与内存分配有许多相同之处,即同样采用连续或离散分配方式。文件存储空间的分配单位是磁盘块而不是字节。

1 空闲表法

空闲表法属于连续分配方式,它与内存的动态分配方式雷同,它为每个文件分配一块连续的存储空间,即系统也为外存上所有空闲区建立一张空闲表,每个空闲区对应于一个空闲表项,其中包括表项序号、该空闲区的第一个盘块号、该区的空闲盘块号等信息,再将所有空闲区按其起始盘块号递增排列。

空闲盘区的分配与内存的动态分配类似,同样采用首次适应算法,循环首次适应算法等。

系统在对用户所释放的存储空间进行回收时,也采取类似于内存回收的方法,即考虑回收区是否与空闲表中插入点的前区和后区相邻接,对相邻接者应该予以合并。

当文件较小时,采用连续分配方式,当文件较大时,可采用离散分配方式。

2 空闲链表法

空闲链表法是将所有空闲盘区拉成一条空闲链。把链表分成两种形式,空闲盘块链和空闲盘区链。

2.1 空闲盘块链

这是将磁盘上的所有空闲空间,以盘块为单位拉成一条链。

当用户因创建文件而请求分配存储空间时,系统从链首开始,依次摘下适当数目的空闲盘块分配给用户。

当删除文件而释放空间时,系统将回收的盘块依次插入空闲盘块链的末尾,其优点是用于分配和回收一个盘块的过程简单,但在为文件分配盘块时,可能要重复操作多次

2.2 空闲盘区链

这是将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链,在每个盘区上除了含有只是下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。

盘区分配与内存的动态分配类似,可采用首次适应算法,在回收盘区时,同样也要将回收区和相邻接的空闲盘区相合并,在采用首次适应算法时,可以采用显式链接法提高检索速度,在内存中为空闲盘区建立一张链表

3 位示图法

利用二进制的一位表示磁盘中的一个盘块的使用情况,当其值为0时,表示对应的盘块空闲,为1时,表示已经分配,磁盘上的所有盘块都有一个二进制位与之对应。由所有盘块所对应的位构成一个集合,称为位示图,通常可用m×n个位数来构成位示图,并使m×n等于磁盘的总块数。


对于盘块的分配分为如下三步:

对于盘块的回收分为如下两步:

优点

3 成组链接法

空闲表法和空闲链表法都不适用于大型系统,因为这会使空闲表或空闲链表很长,在UNIX采用的成组链接法,结合上述两种方法。

当系统要为用户分配文件所需的盘块时,须调用盘块分配过程来完成:

在系统回收空闲盘块时,须调用盘块回收过程进行回收:

上一篇下一篇

猜你喜欢

热点阅读