1 / 22
文档名称:

操作系统课程设计报告--最佳适应算法模拟实现内存分配与回收.doc

格式:doc   大小:440KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统课程设计报告--最佳适应算法模拟实现内存分配与回收.doc

上传人:miaoshen1985 2018/9/16 文件大小:440 KB

下载得到文件列表

操作系统课程设计报告--最佳适应算法模拟实现内存分配与回收.doc

文档介绍

文档介绍:衡阳师范学院工科课程设计-《操作系统》课程设计报告实验题目:最佳适应算法模拟实现内存分配与回收学号:07190132200807姓名:王果刘芳麟何超英高超班级:0701指导教师:陈琼日期:2009年12月目录 一、概述……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………3二、需求分析…………………………………………………………………………………3三、实验基本原理……………………………………………………………………………………………………………………………………………………………………………4四、数据结构设计……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………()流程图………………………………………………………………()流程图………………………………………………………………7五、算法的实现…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………18六、总结……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………21七、参考文献……………………………………………………………………………………22一、概述1、设计目的(1)了解多道程序系统中,多个进程并发执行的内存资源分配。(2)模拟可变分区存储管理算法实现分区管理的最佳适应分配算法(3)利用最佳适应算法动态实现内存分配与回收(3)通过实现最佳算法来进一步了解动态分区模式的优缺点。(4)掌握最佳适应分配算法,深刻了解各进程在内存中的具体分配策略。2、开发环境PC机DOS;WINDOWS环境VisualC++、任务分配设计人员设计任务王果程序总体设计,部分内存回收的实现,上机编码和调试,程序后期优化刘芳麟部分内存分配的实现,编写文档,设计测试用例何超英部分内存分配的实现,编写文档,数据结构设计高超部分内存回收的实现,资料收集,需求分析   二、需求分析克服固定分区中的主存资源的浪费,有利于多道程序设计,提高主存资源的利用率。 三、实验基本原理1、可变分区存储管理之最优适应算法分配的概念:分区存储管理是给内存中的进程划分适当大小的存储区,以连续存储各进程的程序和数据,使各进程能并发地执行。最优适应分配算法扫描整个未分配区表或链表,从空闲区中挑选一个能满足用户进程要求的最小分区进行分配。2、关于最优适应的一些基本原理:在可变分区模式下,在系统初启且用户作业尚未装入主存储器之前,整个用户区是一个大空闲分区,随着作业的装入和撤离,主存空间被分成许多分区,有的分区被占用,而有的分区时空闲的。为了方便主存空间的分配和去配,用于管理的数据结构可由两张表组成:“已分配区表”和“未分配区表”。在“未分配表中”将空闲区按长度递增顺序排列,当装入新作业时,从未分配区表中挑选一个能满足用户进程要求的最小分区进行分配。这时从已分配表中找出一个空栏目登记新作业的起始地址和占用长度,同时修改未分配区表中空闲区的长度和起始地址。当作业撤离时已分配区表中的相应状态变为“空”,而将收回的分区登记到未分配区表中,若有相邻空闲区再将其连接后登记。可变分区的回收算法较为复杂,当一个作业撤离时,可分为4种情况:其临近都有作业(A和B),其一边有作业(A或B),其两边均为空闲区。尤其重要的是,在程序中利用“new类型T(初值列表)”申请分配用于存放T类型数据的内存空间,利用“delete指针名”释放指针所指向的内存空间。四、数据结构设计1、(1)内存块structspace//定义内存空间结构体{longstartaddress;longlength;struct