文件存储空间的管理
实质上是一个空闲块的组织和管理问题,它包括空闲块组织,空闲块的分配和空闲块的回收等几个问题。
-
空闲区表法
空闲表法属于连续分配方式。它与内存管理中的动态分区分配方式相似。
将外存空间上一个连续未分配区域称为“空闲区”。操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表包含“序号,第一空闲盘块号,空闲盘块数”等信息。它适用于连续文件结构。
它为每个文件分配一个连续的存储空间。系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应于一个空闲表项。 -
空闲链表法
是将所有的空闲盘区拉成一条空闲链。根据构成链的基本元素的不同,可有两种链表方式:空闲盘块链、空闲盘区链。
a. 空闲盘块链
它是将磁盘上的所有空闲存储空间,以盘块为基本元素拉成一条链。优点是用于分配和回收一个盘块的过程非常简单;缺点是空闲盘块链可能很长。
b. 空闲盘区链
这是将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。在每个盘区上除了含有用于指示下一个空闲盘区的指针外,还应标有指明本盘区大小(盘块数)的信息。这方法分配和回收过程较复杂,但空闲盘区链较短。 -
位示图法
本方法利用二进制的一位来表示磁盘中一个盘块的使用情况,磁盘上所有的盘块都有与之对应的一个二进制位。当其值为0时,表示对应的盘块空闲,当其值为1时,表示对应的盘块已经分配。 -
成组链接法(NUIX系统采用)
空闲表法和空闲链表由于空闲表太长而不适合大型文件系统的使用。成组链接法是两种方法相结合的一种管理方法,兼备了两种方法的优点而克服了两种方法的缺点。其大致的思想是:把空闲的n个空闲扇区的地址保存在第一个空闲扇区内,其后一个空闲扇区内则保存另一顺序空闲扇区的地址,以此类推,直至所有空闲扇区都予以链接。
下面为位示图法的例题:
某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若磁盘上的物理块依次编号为:0、1、2、…,系统中字长为32位,每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用,如下图所示。
假设将4195号物理块分配给某文件,那么该物理块的使用情况在位示图中的第__ (1) __ 个字中描述;系统应该将 __ (2) __。
(1) A. 128 B. 129 C. 130 D. 131
(2)
A. 该字的第3位置“0” B. 该字的第3位置“1”
C. 该字的第4位置“0” D. 该字的第4位置“1”
例题分析:
因为物理块编号是从0开始的,所以4195号物理块其实就是第4196块。因为字长为32位,也就是说,每个字可以记录32个物理块的使用情况。4196/32=131.125,所以,4195号物理块应该在第131个字中(字的编号也是从0开始计数)。那么,具体在第131个字的哪一位呢?到第130个字为止,共保存了131*32=4192个物理块(0~4191),所以,第4195块应该在第131个字的第3位记录(要注意:0是最开始的位)。因为系统已经将4195号物理块分配给某文件,所以其对应的位要置1。
例题答案:
D 、 B
某文件系统采用位示图法管理外存储空间,每个磁盘块4KB,已知一块磁盘容量为40GB,则表示该磁盘所需的位示图需要占用_______的内存空间
A. 1280KB
B. 10240KB
C. 4096KB
D. 10MB
解析:
一共需要40G/4KB=1010241024个磁盘块 表示这些磁盘块需要1010241024/8byte=1280KB
所以选 A
基本法求解位示图编号问题
实例