为实现存储空间分配,系统需要:
记住空闲存储空间使用情况;为空间设置相应的数据结构;
提供对存储空间分配、回收的操作手段。
典型的管理方法:
1)空闲表和空闲链表法
空闲表法:常用于连续分配管理方式
数据结构:系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应一个空闲表项(表项包括序号、空闲区的第一个盘块号、空闲盘块数等。)将所有空闲区按其起始盘块号递增的次序排列。
存储空间的分配与回收操作:
与内存的动态分配类似,同样可采用首次适应算法、循环首次适应算法等。
回收主要解决对数据结构的数据修改。
应该说明,虽然很少采用连续分配方式,然而在外存的管理中,由于它具有较高的分配速度,可减少访问磁盘的I/O频率,故它在诸多分配方式中仍占有一席之地。(如实现虚拟用的部分外存就是连续分配方式)
空闲链表法:将所有空闲盘区拉成一条空闲链。
数据结构:链 根据构成链所用基本元素的不同,可把链表分成两种形式:
空闲盘块链;空闲盘区链
空闲盘块链:分配回收简单。链表长,大量分配时需要操作的指针多
空闲盘区链:链表长度不定,分配时操作的指针数量相对较少,但分配回收操作相对复杂。
2)位示图法
利用二进制的一位来表示一个盘块的使用情况。
值为0表示对应的盘块空闲,为1表示已分配。有的系统则相反。<