存储空间的管理
1.为实现存储空间分配,系统需要:
记住空闲存储空间使用情况;为空间设置相应的数据结构;
提供对存储空间分配、回收的操作手段。
2.典型的管理方法:
2.1空闲表和空闲链表法
空闲表法(常用于连续分配管理方式):
1)数据结构
系统为外存上的所有空闲区建立一张空闲表
每个空闲区对应一个空闲表项(表项包括序号、空闲区的第一个盘块号、空闲盘块数等)
将所有空闲区按其起始盘块号递增的次序排列,如右图。
2)存储空间的分配与回收操作
与内存的动态分配类似,同样可采用首次适应算法、循环首次适应算法等。
回收主要解决对数据结构的数据修改。
应该说明,虽然很少采用连续分配方式,然而在外存的管理中,由于它具有较高的分配速度,可减少访问磁盘的I/O频率,故它在诸多分配方式中仍占有一席之地。(如实现虚拟用的部分外存就是连续分配方式)
空闲链表法(将所有空闲盘区拉成一条空闲链):
根据构成链所用基本元素的不同,可把链表分成两种形式:
1)空闲盘块链
将磁盘上的所有空闲空间,以盘块为单位拉成一条链。
因创建文件而请求分配空间时,系统从链首依次摘下适当数目的空闲盘块分配给用户。
因删除文件而释放存储空间时,系统将回收的盘块依次插入空闲盘块链的末尾。
优点:分配和回收一个盘块的过程非常简单,但为一个文件分配盘块时,可能要重复操作多次。
特点:分配回收简单。链表长,大量分配时需要操作