success_可变分区存储模拟系统的仿真设计与实现

success_可变分区存储模拟系统的仿真设计与实现

ID:18551275

大小:291.50 KB

页数:6页

时间:2018-09-18

success_可变分区存储模拟系统的仿真设计与实现_第1页
success_可变分区存储模拟系统的仿真设计与实现_第2页
success_可变分区存储模拟系统的仿真设计与实现_第3页
success_可变分区存储模拟系统的仿真设计与实现_第4页
success_可变分区存储模拟系统的仿真设计与实现_第5页
资源描述:

《success_可变分区存储模拟系统的仿真设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、可变分区存储模拟系统的仿真设计与实现陆琦1张梅1宋保科1张莉莉1(南京农业大学信息院计科31,32班)Luqi613.students@sina.com摘要:采用最佳适应算法,编写可变分区存储模拟系统,该系统中包括以下功能:查询、分配、回收、退出,并能通过良好的用户界面体现出来,并用“拼接”和“搬家”技术处理存储碎片。为了深刻理解操作系统中的内存分配技术,采用模拟的思路,选用最佳适应算法模拟可变分区存储系统,动态地为进程分配内存空间,同时实现进程的创建、执行、阻塞、并发和结束,内存的分配、搬家和拼接全过程的可视化。本系统可按照用户分配的作业自动完成内存管理的模拟演示。这对

2、深入理解操作系统内存分配原理,透析作业执行的各种情况,发现和探究新的更加高效的内存管理方式有重大意义。关键词:最佳适应算法模拟系统拼接搬家存储碎片紧凑操作系统 内存管理 可变分区存储系统61背景技术存储器是计算机系统的重要组成部分,而如何有效地管理存储器对系统地性能有很大的影响,存储器管理的主要对象是内存。动态分配内存是一种内存利用率比较高的内存分配技术,采用最佳算法更是将分配情况更加合理高效。为把一个新作业装入内存,须按照一定的分配算法,从空闲分区表或空闲分区链中先出一分区分配给该作业。目前常用以下所先的三种分配算法。1.首次适应算法FF。空闲分区链以地址递增的次序连接

3、,在分配内存时,从链的开始顺序查找,直到找到一个满足大小要求的空闲分区为止;然后再按照作业的大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中。2.循环首次适应算法,该算法是由首次适应算法演变而成的。在为进程分配内存空间时,不再是每次都从链的开始为起点进行查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。3.最佳适应性算法,所谓“最佳”是指每次为作业分配内存时,总能把满足要求、有是最小的空闲分区分配给作业,避免“大材小用”。然而,最佳适应算法业并不是最完美的,因

4、为每次分配后所切割下来的剩余部分总是最小的,这样,在存储器中会留下很多难以利用的小空闲区,造成部分空间的浪费。从系统分配的合理高效来考虑,可变分区存储模拟系统设计要考虑到存储碎片的处理(即用“拼接”和“搬家”技术处理碎片)。由于在一台计算机中的内存分配过程的不可视性、算法的复杂性、内存情况的多样性和不确定性,使得算法分析与其它算法间的比较相当困难。用模拟系统的方法将整个内存的分配使用的过程可视化,这对深入理解操作系统的存储器管理,透析算法原理,创新算法具有重要意义。2系统结构设计系统采用模拟与仿真的思路,实现了可变分区存储系统管理存储器过程的可视化。系统采用VisualC

5、++6.0进行编程,在WIN2000/XP平台下,以内存动态分配为中心,选用最佳适应算法对内存管理进行可视化模拟,同时实现内存查询、分配、回收、退出、搬家、拼接过程的可视化。为了模拟内存动态分配的并发性,我们设计了一个链表,用户可以用来存放假设将要到来的内存分配请求。2.1关键技术实现模拟仿真的关键在于正确体现内存分配的过程和可视描述内存变化的动态性。6内存分配的随机性主要包括时间的随机性,大小的随机性。该系统通过一个链表(链表内容的显示是通过程序下部的一个列表框显示的)和模拟时钟,用户可以输入大量数据,包括分配到来的时间,以及分配的大小等基本要素,当模拟时钟与链中预设的

6、时间请求相同时就为该请求分配内存,当分配要求满足时,系统立即在模拟的内存中根据最佳适应算法分配该大小的内存块,当分配要求不能满足时,该请求被标识为“无空间等待”,当模拟直到有空间能分配给该请求时才分配,这也为分配的并发性提供了模拟,用户可以在链表中设置两个相同的请求,当模拟时间到来时可以观察该请求是如何被处理的,也是是模拟了并发的处理情况。在内存分配的过程中严格按照最佳适应性算法进行内存分配,使用GDI函数绘制的模拟内存条在该模拟软件的上方,它模拟了512个空间的内存(这里不强加内存的单位,是为了模拟情况的一般性,一个空间代表最小的颗粒度)时刻动态地显示着内存的使用状态,

7、一个像素代表一个内存空间,被分配的块与块之间有一根分界线,并能够随时查询该块的信息,如起始地址,大小,运行时间等信息。在模拟内存条的下面有两个列表框分别显示空闲块和活动块(已经被分配的块)中的信息。在程序中也加入了搬家与拼接功能,我们让这两个功能应用户的需求可以随时打开与关闭(操作面板位于中部)。所以整个时间循环的流程如下:模拟时间加1→运行活动块中的程序→处理插入请求事件→处理搬家事件→处理拼接事件系统结构流程图如下:初始化系统时间减1检查等待链,取出适当的程序运行检查运行链,是否有进程运行完毕是否要拼接是否要搬家执行拼接执

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

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

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