一. 实 验 内 容
模拟磁盘空闲空间的表示方法,以及模拟实现磁盘空间的分配和回收。
二. 实 验 目 的
磁盘格式化时,系统吧把磁盘存储空间分成许多磁道,每个磁道又分成若干扇区
(又叫做块)。利用 Fdisk 命令对硬盘进行分区,即使只有一个分区,也要用 Fdisk 命
令进行分区。分区的目的,就是制作文件卷,形成系统。一个文件卷一般都被划分成
引导扇区、文件系统管理区和文件数据区。其中,文件数据区用来存放系统文件和用
户文件。用户可以通过文件系统调用,创建、打开和对文件进行读写。当用户的文件
不再需要时,就应该删除。把一个文件存放到磁盘上时,可以组织成连续文件、链接
文件、索引文件等。因此,磁盘空间的分配方法有两种,一种是连续空间的分配;另
一种是不连续空间的分配(又叫动态分配)。如何充分有效地利用磁盘空间,是操作
系统要解决的重要课题之一。通过本实验,使学生对磁盘空间的分配和回收有一个较
深入的理解。
三. 实 验 题 目
第一题:连续的磁盘存储空间的分配和回收。
[提示]:
(1) 要在磁盘上建立顺序文件时,必须把按序排列的逻辑记录依次存放在磁盘的连续存
储空间中。可假定磁盘初始化时,已把磁盘存储空间划分成若干等长的块(扇区),按柱
面号和盘面号的顺序给每一块确定一个编号。随着文件的建立、删除、磁盘存储空间被分
成许多区(每一区包含若干块),有的区存放着文件,而有的区是空闲的。当要建立顺序
文件时必须找到一个合适的空闲区来存放文件,当一个文件被删除时,则该文件占用的区
应成为空闲区。为此可用一张空闲区表来记录磁盘存储空间中尚未占用的部分,格式如下:
序 号 起始空闲块号 空闲块个数 状 态
1 5 6
未 分 配
2 14 3
未 分 配
3 21 30
未 分 配
4
空 表 目
(2) 要建立文件时,先查找空闲区表,从状态为“未分配”的登记栏目中找出一个块数能
满足要求的区,由起始空闲块号能依次推得可使用的其它块号。若不需要占用该区的所有
块时,则剩余的块仍应为未分配的空闲块,这时要修改起始空闲块号和空闲块数。若占用
了该区的所有块,则相应登记栏中的状态修改成“空表目”。删除一个文件时,从空闲区表
中找一个状态为“空表目”的登记栏目,把归还的起始块号和块数填入对应的位置。
磁盘存储空间的分配和回收算法类似于主存储器的可变分区方式的分配和回收。同学
们可参考实习四的第一题。