实验2:存储器管理系统

实验2:存储器管理系统

ID:44774757

大小:533.50 KB

页数:25页

时间:2019-10-28

实验2:存储器管理系统_第1页
实验2:存储器管理系统_第2页
实验2:存储器管理系统_第3页
实验2:存储器管理系统_第4页
实验2:存储器管理系统_第5页
资源描述:

《实验2:存储器管理系统》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用实验报告学院(系)名称:计算机与通信工程学院姓名学号专业计算机科学与技术班级2010级3班实验项目实验二:存储器的分配与回收算法实现课程名称操作系统课程代码0668036实验时间2011-12-191-2节2011-12-211-2节2011-12-247-8节2011-12-261-2节实验地点主校区7-215主校区7-215主校区7-215主校区7-215批改意见成绩教师签字:文档实用实验内容:1.本实验是模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不实际启动装入作业。2.采用最先适应法、最佳适

2、应法、最坏适应法分配主存空间。3.当一个新作业要求装入主存时,必须查空闲区表,从中找出一个足够大的空闲区。若找到的空闲区大于作业需要量,这是应把它分成二部分,一部分为占用区,加一部分又成为一个空闲区。4.当一个作业撤离时,归还的区域如果与其他空闲区相邻,则应合并成一个较大的空闲区,登在空闲区表中。5.设计的模拟系统中,进程数不小于5,进程调度方式可以采用实验一中的任何一种。6.运行所设计的程序,输出有关数据结构表项的变化和内存的当前状态。实验要求:1.详细描述实验设计思想、程序结构及各模块设计思路;2.详细描述程序所用数据结构及算法;

3、3.明确给出测试用例和实验结果;4.为增加程序可读性,在程序中进行适当注释说明;5.认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;6.实验报告撰写要求结构清晰、描述准确逻辑性强;7.实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。文档实用步骤:1、画界面。2、创建数据结构1)进程--------------------------------------------Request.java2)内存空间--------------------------------------Memory.java3)内存空闲表

4、-----------------------------------FreeMemory.java4)等待进程序列--------------------------------Request.java(实例化对象wait)5)当前内存中已有进程-----------------------HoldMemory.java3、编写相关模块(以下模块均在OS_Memory.java文件中)1)初始化内存-----------------------------init()2)生成进程请求-------------------------

5、-getRequest(intid)3)查询空闲区-----------------------------findFree()4)进程进入内存-------------------------requestIn(intindex,Requestrequest)5)进程离开内存-----------------------requestOut(intid)6)主控模块--------------------------------run()4、测试算法描述:文档实用程序开始运行时首先调用初始化内存模块,生成一个长度为32的内存地址空间

6、,使用list集合来存储当前内存地址的相关信息(状态、编号、当前进程名)。每当用户点击界面的上的"NextProcess"按钮,即触发一次内存空间管理过程。随机产生一个0到1之间的随机数,用来决定本次过程是产生一个随机进程请求进入内存还是让内存中随机离开一个进程。若本次为进入过程,产生一个进程请求A(长度随机),若内存空闲表为空(即内存中已经没有空闲的地址),则将本次产生的进程加入到等待序列。更新内存空闲表,结束本次调度过程。查看等待序列中是否有进程在等待进入内存。将等待序列中的进程按照先后顺序排列。然后遍历整个等待序列,只要有能够进

7、入到内存当中的进程,则将其装入内存。如果等待序列中的进程没有能够满足空闲位置的,则试着匹配进程A与内存空闲表中的长度。如有适合A进程长度的空闲区,将进程A装入。更新内存空闲表,结束本次调度过程。若本次为离开过程,查看已有进程列表(hold)是否为空,若为空,提示内存已经为空,然后将本次调度转换为进入过程,即上面的进入过程算法。若已有进程列表(hold)不为空,则在已有进程中随机找到一个进程,将其从内存中移除。更新内存空闲表,结束本次调度过程。流程:1、画界面(GUI)。2、初始化内存空间。3、人机交互(用户点击按钮,触发存储器分配与回

8、收算法)。3、组织数据(决定进入或者离开进程)。4、处理数据(将进程装入内存或者移出内存,或者加入到等待序列)。文档实用5、显示结果(将本次过程的结果体现在程序界面上)。文档实用附录(可包括源程序清单或其它说明)包结构图

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。