北交大操作系统作业—内存管理器实验.docVIP

北交大操作系统作业—内存管理器实验.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 内存管理 1 一.实验目的 1 二.实验内容 1 三.实验设计 1 四.模拟实验 2 First.cpp 3 First.h 5 Next.cpp 7 Next.h 9 五.实验结果 12 六.实验总结 15 实验三 内存管理 一.实验目的 构造一个没有虚存功能的内存管理系统,并进行测试和对不同分配策略的性能展开比较评估。本次实验,选择的分配策略:First-fit 和 next-fit 二.实验内容 1、设计一个内存管理器,支持至少两种分配策略(本实验使用firstfit策略和nextfit策略); 2、分别对不同的策略进行性能评估 三.实验设计 1.内存 unsigned char mm[65536]; 用户接口 用户接口函数: int mm_init() //初始化 int mm_request(int n) //申请空间 void mm_release(int p) //释放空间 3.计算请求尺寸 srand((unsigned char)time(NULL)); tmp = (rand() % 1024) + 1; //最大申请1024 选择待释放的块 tmp = (rand() % j); while(p[tmp] == -1) { tmp = rand() % j; } requestsize = requestsize - BinToInt(mm[p[tmp] + 4]); mm_release(p[tmp]); cout 释放指针 p[tmp] endl; p[tmp] = -1; int main() { int i; int j = 0; //分配指针数 int p[1000]; //用于存放分配出的指针 int tmp; int requestsize = 0; //统计申请空间 #include iostream #include stdio.h #include windows.h #include time.h #include next.h using namespace std; int main() { int i; int j = 0; //分配指针数 int p[1000]; //用于存放分配出的指针 int tmp; int requestsize = 0; //统计申请空间 int k = 0; //统计搜索步数 srand((unsigned char)time(NULL)); step = 0; next = 0; end = -1; mm_init(); for(i = 0; i 30; i++)//模拟30步 { cout 这是第 i + 1 步 endl; do { tmp = (rand() % 1024) + 1; //最大申请1024 cout 申请空间 tmp 字节 endl; p[j] = mm_request(tmp); if(p[j] != -1) { requestsize = requestsize + tmp; k = k + step; cout 分配指针: p[j] endl; cout endl; j++; } else { cout 剩余空间不足,分配失败。 endl; } } while(p[j] != -1); tmp = (rand() % j); while(p[tmp] == -1) { tmp = rand() % j; } requestsize = requestsize - BinToInt(mm[p[tmp] + 4]); mm_release(p[tmp]); cout 释放指针: p[tmp] endl; p[tmp] = -1; //以下为性能统计指标 cout endl; cout 平均申请空间: (double)requestsize/(double)j 字节 endl; cout 平均空间利用率: (double)requestsize/(double)65536 endl; cout 平均搜索步数: (double)k/(double)j endl; cout endl; if((i + 1) % 5 == 0) { system(pause); } } } unsigned char mm[65536

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档