动态异长分区的存储分配与回收算法

实验5 动态异长分区的存储分配与回收算法

5.1 实验目的

理解存储管理的功能,掌握动态异长分区的存储分配与回收算法。 存储器是计算机系统中的关键资源,存储管理一直是操作系统的最主要功能之一。存储管理既包括内存资源管理,也包括用于实现分级存储体系的外存资源的管理。通常, 内存与外存可采用相同或相似的管理技术,如内存采用段式存储管理,则外存也采用段式存储管理。存储管理需要完成如下功能: 存储分配、存储共享、存储保护、存储扩充、地址映射。 当一个作业进入内存时,由操作系统将其变为进程,并为进程分配存储空间。进程运行结束时, 由操作系统将其所占用的存储空间收回。

不同的操作系统对内存空间的划分与分配方法是不同的,通常分为两类:静态等长分区的分配和动态异长分区的分配。静态等长分区常用于页式存储管理方式与段页式存储管理方式,存储空间被静态地划分为若干个长度相等的区域,每个区域被称作一个页面。 动态异长分区常用于界地址存储管理方式与段式存储管理方式,存储空间被动态地划分为若干个长度不等的区域。

5.2 实验要求

本实验要求模拟动态异长分区的分配算法、回收算法和碎片整理算法。 5.3 实验步骤

5.3.1 数据结构分析

为了实现存储资源的分配和回收,操作系统需

要记录内存资源使用情况,即哪些区域尚未分配,哪些区域已经分配以及分配给哪些进程等。为此一般需要两个表,一个为分配表, 另外一个为空闲区域表。前者记录已经分配的区域, 后者记录着所有当前未被进程占用的空闲区域, 如图5-1所示。

图5-1 空闲区域表

显然, 没有记录于表中的区域即为已被进程所

占用的非空闲区域,在实际的操作系统中,这些区域登记在进程的PCB中。而PCB中除了关于内存资源的信息外,还有其它大量信息。

由于本实验是对存储管理算法的模拟,所以用一个线程来代表一个进程,用线程驻留区域表来描述线程占用的内存空间,如图5-2所示。

动态异长分区的存储分配与回收算法

图5-2 线程驻留区表

同时,需要一张表来记录各个线程对内存的请求信息,如图5-3所示。

动态异长分区的存储分配与回收算法

动态异长分区的存储分配与回收算法

5.3.2 算法分析

常用的动态异长分区的分配算法有:最先适应算法、最佳适应算法和最坏适应算法。

你可能喜欢

  • 首次适应算法
  • 可变分区存储管理
  • 动态分区分配方式的模拟
  • 哲学家就餐问题
  • linux网络编程
  • 操作系统课程设计
  • 操作系统内存管理
  • 时间片轮转调度算法

动态异长分区的存储分配与回收算法相关文档

最新文档

返回顶部