主存储器的分配与回收实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主存储器的分配与回收实验报告 班 级:10网工三班 学生姓名:谢昊天 学号:1215134046 实验目的和要求: 一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现虽与主存储器的管理方式有关的,通过本实验帮助学生理解在不同的存储管理方式下应怎样实现主存空间的分配和回收。 实验内容与分析设计: 本实验模拟在两种存储管理方式下的主存分配和回收。 第一题:在可变分区管理方式下采用最先适应算法实现主存分配和实现主存回收。 [提示]: 可变分区方式是按作业需要的主存空间大小来分割分区的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入。随着作业的装入、撤离,主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。 第二题:在分页式管理方式下采用位示图来表示主存分配情况,实现主存空间的分配和回收。 实验步骤与调试过程: 1.打开vc6.0,新建Win32 Application Console工程,并建基于控制台的文件。 2.定义相应的函数的作用如下: #define TOTLE_LEFT 108//除系统占用内存外的剩余内存 #define first_free 14 //第一块空闲区的起始地址 #define first_size 12//第一块空闲区的大小 #define sec_free 32//第二块空闲区的起始地址 #define sec_size 96//第二块空闲区的大小 #define first_job_size 3 #define sec_job_size 23 #define third_job_size 3 //空闲分区表结点 struct Free { int start; int length; Free(int s,int l); };do_request(name,size) //申请作业 do_revoke(name) //回收作业的存储空间 print_task()//查看作业 3.根据要求编辑在可变分区管理方式下采用最先适应算法实现主存分配和实现主存回收的程序,并对其进行调试。 4.观察当有一个新作业要求装入主存是的情况。 5.采用最先适应算法分配主存空间。 6.根据要求编辑在分页式管理方式下采用位示图来表示主存分配情况,实现主存空间的分配和回收,并对其进行调试。 实验结果: 分页管理中:运行程序后在控制台中出现1.调入作业2.撤销作业3.打印的界面。根据提示进行不同的操作。 1、开始有512K的空间,未分配。用名称P来表示。 进程A申请200K的空间,(申请用1表示,释放用0表示),其结果显示如下。 2.进程B申请150K的空间 3.进程A释放200K的空间 4、进程C申请100K的空间, 进程D申请50K的空间。 5、进程E申请30K的空间, 进程F申请70K的空间 疑难小结: 通过本次试验,我对主存储器的分配与回收有了进一步的了解,通过动手实现其主存储器的分配与回收,更加深刻的理解了主存储器的分配与回收的特点。同时,在实验过程中,回顾书本上的理论知识,巩固了我的知识。本实验用到的一些数据结构有: typedef struct NODE { char name;//名称 float start;//起始位置 float end;//大小 int flag;//是否分配的标志 }NODE; NODE OS[COUNT];//数组 在清楚主存储器分配和回收的情况下,做些实验还是比较简单的。关键是注意当找到一个大的块时,如何将这个大块分成两小块,一块用于分配,另一块依旧是未分配。在主存储器空间的分配和回收应该注意其中的分配的时候的错误控制和回收时候的错误控制,此外,还应该针对作业分配失败的异常作出相应的处理代码。 主要算法和程序清单: 分页管理: #includeiostream #includevector #includestring #includememory.h using namespace std; bool block[8][8]; vectorintpage; vectorvectorint work; int sel; void init() { int t; memset(block,0,sizeof(bool)); vectorint

文档评论(0)

王水玉 + 关注
实名认证
文档贡献者

前面

1亿VIP精品文档

相关文档