1、 1 (操作系统课程设计操作系统课程设计) 连续动态分区内存连续动态分区内存 管理模拟实现管理模拟实现 学生姓名:学生姓名: 学生学号:学生学号: 班班 级:级: 二二一三年十二月一三年十二月 2 目录目录 操作系统课程设计. 1 引言3 课程设计目的和内容 3 需求分析.3 概要设计.3 开发环境 4 系统分析设计. 4 有关了解内存管理的相关理论 4 内存管理概念4 内存管理的必要性4 内存的物理组织.4 什么是虚拟内存.5 连续动态分区内存管理方式. 5 单一连续分配(单个分区). 5 固定分区存储管理.5 可变分区存储管理(动态分区) 5 可重定位分区存储管理5 问题描述和分析6 程序
2、流程图6 数据结构体分析8 主要程序代码分析.9 分析并实现四种内存分配算法 . 11 最先适应算.11 下次适应分配算法13 最优适应算法.16 最坏适应算法. 18 回收内存算法20 调试与操作说明.22 初始界面.22 模拟内存分配.23 已分配分区说明表面24 空闲区说明表界面.24 回收内存界面.25 重新申请内存界面26. 总结与体会 28 参考文献. 28 3 引言引言 操作系统是最重要的系统软件,同时也是最活跃的学科之一。我们通过操作 系统可以理解计算机系统的资源如何组织, 操作系统如何有效地管理这些系统资 源,用户如何通过操作系统与计算机系统打交道。 存储器是计算机系统的重要
3、组成部分,近年来,存储器容量虽然一直在不断 扩大,但仍不能满足现代软件发展的需要,因此,存储器仍然是一种宝贵而又紧 俏的资源。如何对它加以有效的管理,不仅直接影响到存储器的利用率,而且还 对系统性能有重大影响。而动态分区分配属于连续分配的一种方式,它至今仍在 内存分配方式中占有一席之地。 课程设计目的和内容:课程设计目的和内容: 理解内存管理的相关理论,掌握连续动态分区内存管理的理论;通过对实际 问题的编程实现,获得实际应用和编程能力。 编写程序实现连续动态分区内存管理方式,该程序管理一块虚拟内存,实现 内存分配和回收功能。 分析并实现四种内存分配算法,即最先适应算法,下次 最先适应算法, 最
4、优适应算法, 最坏适应算法。 内存分配算法和回收算法的实现。 需求分析需求分析 动态分区分配是根据进程的实际需要,动态地为之分配内存空间。 在实现动 态分区分配时,将涉及到分区分配中所用的数据结构、分区分配算法和分区的分 配和回收操作这样三个问题。常用的数据结构有动态分区表和动态分区链。 在对 数据结构有一定掌握程度的情况下设计合理的数据结构来描述存储空间, 实现分 区存储管理的内存分配功能,应该选择最合适的适应算法(首次适应算法,最佳 适应算法,最后适应算法,最坏适应算法) ,在动态分区存储管理方式中主要实 现内存分配和内存回收算法,在这些存储管理中间必然会有碎片的产生,当碎片 产生时,进行
5、碎片的拼接等相关的内容 概要设计概要设计 本程序采用机构化模块化的设计方法,共分为四大模块。 最先适应算法实现 从空闲分区表的第一个表目起查找该表, 把最先能够满足要求的空闲区分配 给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲分区表(空闲 区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲 区,在低址空间造成许多小的空闲区,在高地址空间保留大的空闲区。 下次适应分配算法实现 该算法是最先适应算法的变种。 在分配内存空间时, 不再每次从表头 (链首) 开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满 足要求的的空闲区为止,并从中划出一块与请
6、求大小相等的内存空间分配给作 4 业。该算法能使内存中的空闲区分布得较均匀。 最优适应算法实现 它从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区,这种方 法能使碎片尽量小。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按 从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配。 最坏算法实现 最坏适应分配算法要扫描整个空闲分区或链表, 总是挑选一个最大的空闲分 区分割给作业使用。 该算法要求将所有的空闲分区按其容量从大到小的顺序形成 一空闲分区链,查找时只要看第一个分区能否满足作业要求。 开发环境:开发环境: win7 下 VC+6.0 系统分析设计:系统分析设计: 相关算法原理,算法流程图,涉及的数据结构内容都相应包含在各章节中 有关了解内存管理的相关理论有关了解内存管理的相关理论 内存管理概念:内存管理概念: 内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主 要的目的是如何高效,