操作系统课程设计报告--最佳适应算法模拟实现内存分配与回收.doc
文本预览下载声明
衡阳师范学院
工科课程设计 -《操作系统》
实验题目:最佳适应算法模拟实现内存分配与回收
学 号: 20 08 07
姓 名: 王果 刘芳麟 何超英 高超
班 级: 0701
指导教师: 陈琼
日 期: 2009 年 12 月
目 录?
一、概述……………………………………………………………………………………………3
1.设计目的………………………………………………………………………………………3
2.开发环境………………………………………………………………………………………3
3.任务分配………………………………………………………………………………………3
二、需求分析…………………………………………………………………………………3
三、实验基本原理…………………………………………………………………………4
1.可变分区存储管理之最优适应分配算法的概念……………………………………………4
2.关于最优适应分配算法的一些基本原理……………………………………………………4
四、数据结构设计……………………………………………………………………………4
1.内存块与作业块………………………………………………………………………………4
2.程序流程图……………………………………………………………………………………5
2.1.整体程序流程图…………………………………………………………………………5
2.2.内存分配allocate()流程图………………………………………………………………6
2.3.内存回收callback()流程图………………………………………………………………7
五、算法的实现………………………………………………………………………………7
1.程序主要功能函数设计思想……………………………………………………………7
2.源程序清单……………………………………………………………………………8
3.测试用例与程序运行结果截图………………………………………………………18
六、总结……………………………………………………………………………………………21
1.经验总结……………………………………………………………………………………21
2.心得与体会…………………………………………………………………………………21
七、参考文献……………………………………………………………………………………22
一、概述
1、设计目的
(1)了解多道程序系统中,多个进程并发执行的内存资源分配。
(2)模拟可变分区存储管理算法实现分区管理的最佳适应分配算法
(3)利用最佳适应算法动态实现内存分配与回收
(3)通过实现最佳算法来进一步了解动态分区模式的优缺点。
(4)掌握最佳适应分配算法,深刻了解各进程在内存中的具体分配策略。
2、开发环境
PC机
DOS;WINDOWS环境
Visual C++6.0 for Windows
3、任务分配
设计人员 设计任务 王果 程序总体设计,部分内存回收的实现,上机编码和调试,程序后期优化 刘芳麟 部分内存分配的实现,编写文档,设计测试用例 何超英 部分内存分配的实现,编写文档,数据结构设计 高超 部分内存回收的实现,资料收集,需求分析 ??
?
二、需求分析
克服固定分区中的主存资源的浪费,有利于多道程序设计,提高主存资源的利用率。?
三、实验基本原理
1、可变分区存储管理之最优适应算法分配的概念:
分区存储管理是给内存中的进程划分适当大小的存储区,以连续存储各进程的程序和数据,使各进程能并发地执行。最优适应分配算法扫描整个未分配区表或链表,从空闲区中挑选一个能满足用户进程要求的最小分区进行分配。
2、关于最优适应的一些基本原理:
在可变分区模式下,在系统初启且用户作业尚未装入主存储器之前,整个用户区是一个大空闲分区,随着作业的装入和撤离,主存空间被分成许多分区,有的分区被占用,而有的分区时空闲的。为了方便主存空间的分配和去配,用于管理的数据结构可由两张表组成:“已分配区表”和“未分配区表”。在“未分配表中”将空闲区按长度递增顺序排列,当装入新作业时,从未分配区表中挑选一个能满足用户进程要求的最小分区进行分配。这时从已分配表中找出一个空栏目登记新作业的起始地址和占用长度,同时修改未分配区表中空闲区的长度和起始地址。当
显示全部