内存管理模拟系统课设Word文档格式.docx
- 文档编号:15337343
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:36
- 大小:330.42KB
内存管理模拟系统课设Word文档格式.docx
《内存管理模拟系统课设Word文档格式.docx》由会员分享,可在线阅读,更多相关《内存管理模拟系统课设Word文档格式.docx(36页珍藏版)》请在冰豆网上搜索。
通常指令先要从内存中读入,进行解码,还要从内存中读取操作数,再将结果返回给内存。
内存看到的只是地址。
一个进程占了一块内存。
关键字:
内存资源;
分配;
存储管理;
回收
目录
1概述3
1.1题目内容及分析3
1.2设计要求及其目的3
2概要设计4
3详细设计6
3.1主程序流程图6
3.2创建进程模块流程图7
3.3进程信息模块流程图8
3.4进程申请模块流程图9
3.5分区创建模块流程图10
3.6内存分配模块流程图10
3.7低级调度模块流程图12
4调试分析13
4.1主界面调试结果13
4.2创建进程调试结果14
4.3进程信息调试结果14
4.4进程申请调试结果15
4.5分区创建调试结果16
4.6内存分配调试结果16
4.7内存回收调试结果17
4.8打印分区调试结果18
4.9低级调度调试结果19
5总结20
参考文献21
致谢22
附录23
1概述
1.1题目内容及分析
应用内存管理实现内存管理的分配和回收。
能处理内存回收的时候上下邻合并的问题以及输出内存使用情况和空闲情况。
采用活动分区方案,但不采用紧凑算法。
假设系统内存容量为100KB。
要能处理内存回收的时候上下邻合并的问题;
对随机出现的进程i申请jKB内存,程序能判断是否能分配;
释放随机的首地址为Handle的内存块;
要求输出内存使用情况和空闲情况。
根据给定的动态分区分配算法流程图,用熟悉的计算机编程语言编写一程序,该程序实现内存的合理分配后回收。
1.2设计要求及其目的
通过本次课程设计,学习如何进行内存的分区管理,强化了对首次适应分配算法和分区回收算法的理解。
此课设需要随机产生进程或者由用户输入进程相应信息,实现动态内存管理:
设计主界面以灵活选择某算法。
主要实现的算法有:
首次适应算法、最佳适应算法、最坏适应算法和循环适应算法。
实现的主要功能有:
创建进程,查看进程信息,进程申请,分区创建,内存分配,内存回收,打印分区,低级调度等。
分析设计要求,根据老师给出的要求,我们需创建进程和分区,然后申请进程,然后再进行内存的分配与回收。
内存管理,其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。
一个执行中的程式,譬如网页浏览器在个人电脑或是图灵机(Turingmachine)里面,为一个行程将资料转换于真实世界及电脑内存之间,然后将资料存于电脑内存内部(在计算机科学,一个程式是一群指令的集合,一个行程是电脑在执行中的程式)。
一个程式结构由以下两部分而成:
“本文区段”,也就是指令存放,提供CPU使用及执行;
“资料区段”,储存程式内部本身设定的资料,例如常数字串。
2概要设计
本次课设掌握为实现多道程序并发执行,操作系统是如何通过作业调度选择作业进入内存。
系统如何为进入内存的作业分配内存空间,实现多道作业同时驻留内存,就绪进程队列中的多个进程是如何以分式方式共享CPU,作业运行完成离开系统时,系统如何进行内存回收,计算进程周转时间。
掌握各种调度算法,以及实现所需的各种数据结构。
该程序分为9个模块:
显示模块,创建进程模块,进程信息模块,进程申请模块,分区创建模块,内存分配模块,内存回收模块,打印分区模块,低级调度模块。
显示模块显示选择菜单输入1-9可以进入各个不同功能的程序模块。
创建进程模块可以输入自己想创建的进程数进而实现进程创建。
进程信息模块包括已创建进程个数,进程大小,进程状况等信息。
进程申请模块实现进程申请进入分区,但实现进程申请的进程必须先被创建。
分区创建模块实现创建分区。
内存分配模块实现内存分配包括首次适应算法,循环适应算法,最佳适应算法,最坏适算法。
内存回收可以显示正在运行的进程的信息,进而确定是否回收该进程。
打印分区模块和低级调度模块可以自己一步实现。
功能总体结构如下图所示:
(1)创建进程模块:
实现根据需要创建进程个数,进行初始化进程申请队列和初始化进程分配队列,创建进程。
(2)进程信息模块:
实现将已创建进程的大小和进程执行的状态输出。
(3)进程申请模块:
实现根据输入进程申请的个数,判断进程是否可以进入内存,修改进程状态。
(4)分区创建模块:
实现创建分区,按链表形式创建11个分区。
(5)内存分配模块:
实现根据内存分配算法,首次适应算法,循环适应算法,最佳适应算法,最坏适算法,分配进程。
(6)内存回收模块:
实现根据进程是否结束,来回收内存空间。
其中运用包括前后两分区都不是空闲区,前未空闲后空闲,前空闲后未空闲,前后两分区都空闲来讨论回收。
(7)低级调度模块:
实现将进程调度,先选择一个就绪程序进入cpu,然后进入处理器进而执行。
图2.1功能模块图
3详细设计
3.1主程序流程图
主函数既是程序的入口,又是程序的出口,通常我们还可以指定一个exitcode再退出,以表明程序最后的结果是什么样的。
由于主函数肩负着入口和出口的重任,所以最好不要把太多的细节方面的逻辑直接放在主函数内,这样不利于维护和扩展。
主函数应该尽量简洁,具体的实现细节应该封装到被调用的子函数里面去。
此主函数中包括很多功能模块,其中各功能模块用菜单方式选择,为我们提供了九个功能选项
图3.1主程序流程图
3.2创建进程模块流程图
进程的创建也就有两种方式:
一是由操作系统创建,二是由父进程创建。
在系统启动时,操作系统会创建一些进程,他们承担着管理和分配系统资源的任务,这些进程通常被称为系统进程。
系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构。
此创建进程模块可以输入自己想创建的进程数进而实现进程创建。
图3.2创建进程流程图
3.3进程信息模块流程图
进程又称任务,是一个动态的使用系统资源、处于活动状态的应用程序。
进程的管理由进程控制块PCB、进程调度、中断管理、任务队列等组成,它是linux文件系统、存储管理、设备管理和驱动程序的基础。
进程控制块PCB中包含了进程的所有信息,主要包括进程PID、进程所占有的内存区域、文件描述符和进程环境等信息。
图3.3进程信息流程图
3.4进程申请模块流程图
申请进程,可以先输入申请进程的数目,进而查看申请进程的信息。
图3.4进程申请模块图
3.5分区创建模块流程图
创建分区之前首先要确定准备创建的分区类型。
有三种分区类型,它们是“主分区”、“扩展分区”和“逻辑分区”。
主分区是指直接建立在硬盘上、一般用于安装及启动操作系统的分区。
由于分区表的限制,一个硬盘上最多只能建立四个主分区,或三个主分区和一个扩展分区;
扩展分区是指专门用于包含逻辑分区的一种特殊主分区。
可以在扩展分区内建立若干个逻辑分区;
逻辑分区是指建立于扩展分区内部的分区。
没有数量限制。
图3.5分区创建模块流程图
3.6内存分配模块流程图
常见内存分配算法如下:
首次适应算法,从空闲分区链首开始查找。
循环适应算法,从上次找到的空闲分区开始查找。
最佳适应算法,是最小的空闲分区分配给作业。
最差适应算法,最差适应算法中,该算法按大小递减的顺序形成空闲区链,内存分配,第一次分配,从头结点开始,其他重上次分配的节点开始,然后从分配资源的进程开始分配,若分配的进程进已分配进程队列,则申请进程的偏移指针回首址,修改分配数。
图3.6内存分配模块流程图
3.7低级调度模块流程图
低级调度又称为进程调度、短程调度,它决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
在批处理,分时,实时三类系统中,进程调度必须被配置,因而是一种最基本的调度。
与中级调度——交换,高级调度——作业调度相对应。
低级调度的功能:
保存处理机的现场信息。
按某种算法选取进程。
把处理器分配给进程。
图3.7低级调度模块流程图
4调试分析
所谓程序调试是指对程序的查错与排错。
在编写完一个源程序之后,不要立即进行编译,而应对程序进行全面的人工检查一遍,检查无误后可以开始进行程序调试。
由编译系统进行检查、发现错误,根据编译系统提示的错误类型和警告及出现的位置,我们可以定位到错误地点进行修改,然后再编译,如此反复进行,直至不再出现错误位置,最后才进行程序的连接于运行调试完以后,下一步就是对程序进行测试,运行程序,向程序中输入数据,根据输出结果是否正确(是否符合自己的想法)来判断程序是否正确,如果不正确或不符合自己的目的,就需要对程序进行修改。
然后再调试,再测试,直至结果无误或符合要求后,测试才算结束,此时,程序才算是满足题目要求的正确程序。
4.1主界面调试结果
主界面调试结果是运行程序后出现的主界面,它包括了内存管理中的一系列应用,它主要包括,创建进程,进程信息,进程申请,分区创建,内存分配,内存回收,打印分区,低级调度等应用,我们可以选择1-9的数字进行相应的操作,如果写入除1-9以外的数字,程序运行将自动退出,不再运行。
图4.1主界面调试结果图
4.2创建进程调试结果
创建进程运行结果,我们可以根据主界面显示结果,选择数字1,进而进行创建进程,创建进程时,需要你先输入想要创建进程的数目,然后再创建进程。
其中创建的进程里面包括进程的大小和其运行状态。
如果写入除1-9以外的数字,程序运行将自动退出,不再运行。
图4.2创建进程调试结果图
4.3进程信息调试结果
进程信息调试结果。
我们可以根据主界面显示结果,选择数字2,进而可以查看进程的信息,进程的信息里面包括所创建进程的大小和进程的状态。
如果我们选择1和3-9的数字则进行相应的操作,如果写入除1-9以外的数字,程序运行将自动退出,不再运行。
图4.3进程信息调试结果图
4.4进程申请调试结果
进程申请调试结果,我们可以根据主界面显示结果,选择数字3,然后根据主界面的提示输入所要申请进程的数目,如果输入的申请进程的数目大于所创建进程的数目,则退出提示重新输入申请进程的数目。
然后再根据申请数目输入所要申请的进程,申请成功之后退出到主界面。
如果我们选择1,2和4-9的数字则进行相应的操作,如果写入除1-9以外的数字,程序运行将自动退出,不再运行。
图4.4进程申请调试结果图
4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 内存 管理 模拟 系统