欢迎来到天天文库
浏览记录
ID:35521805
大小:197.50 KB
页数:14页
时间:2019-03-25
《北交大操作系统作业-内存管理器实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三内存管理1一.实验目的1二.实验内容1三.实验设计1四.模拟实验2First.cpp3First.h5Next.cpp7Next.h9五.实验结果12六.实验总结15实验三内存管理一.实验目的构造一个没有虚存功能的内存管理系统,并进行测试和对不同分配策略的性能展开比较评估。本次实验,选择的分配策略:First-fit和next-fit二.实验内容1、设计一个内存管理器,支持至少两种分配策略(本实验使用firstfit策略和nextfit策略);2、分别对不同的策略进行性能评估三.实验设计1.内存unsigne
2、dcharmm[65536];2.用户接口用户接口函数:intmm_init()//初始化intmm_request(intn)//申请空间voidmm_release(intp)//释放空间3.计算请求尺寸srand((unsignedchar)time(NULL));tmp=(rand()%1024)+1;//最大申请10244.选择待释放的块tmp=(rand()%j);while(p[tmp]==-1){tmp=rand()%j;}requestsize=requestsize-BinToInt(&mm[p
3、[tmp]+4]);mm_release(p[tmp]);cout<<"释放指针"<
#include#include#include#include"first.h"usingnamespacestd;intmain(){inti;intj=0;//分配指针数intp[1
4、000];//用于存放分配出的指针inttmp;intrequestsize=0;//统计申请空间intk=0;//统计搜索步数srand((unsignedchar)time(NULL));step=0;mm_init();for(i=0;i<30;i++)//模拟30步{cout<<"第"<
5、{requestsize=requestsize+tmp;k=k+step;cout<<"分配指针"<
6、p]<7、dcharmm[65536];intstep;//记录搜索步数intBinToInt(unsignedchar*s)//把char类型变成int{inti;chartmp[4];intt;for(i=0;i<4;i++){tmp[3-i]=s[i];}memcpy(&t,tmp,4);returnt;}voidIntToBin(ints,unsignedchar*t)//把int类型变成char{inti;chartmp[4];memcpy(tmp,&s,4);for(i=0;i<4;i++){t[i]=tmp[38、-i];}}intmm_init(){memset(mm,0,65536);IntToBin(-1,mm);//前向指针置-1放在数组的第一个位置IntToBin(65536,&mm[4]);//整个块大小,放在第四个位置IntToBin(-1,&mm[65536-4]);//后向指针置-1放在数组的倒数第四个位置return0;}intmm_request
7、dcharmm[65536];intstep;//记录搜索步数intBinToInt(unsignedchar*s)//把char类型变成int{inti;chartmp[4];intt;for(i=0;i<4;i++){tmp[3-i]=s[i];}memcpy(&t,tmp,4);returnt;}voidIntToBin(ints,unsignedchar*t)//把int类型变成char{inti;chartmp[4];memcpy(tmp,&s,4);for(i=0;i<4;i++){t[i]=tmp[3
8、-i];}}intmm_init(){memset(mm,0,65536);IntToBin(-1,mm);//前向指针置-1放在数组的第一个位置IntToBin(65536,&mm[4]);//整个块大小,放在第四个位置IntToBin(-1,&mm[65536-4]);//后向指针置-1放在数组的倒数第四个位置return0;}intmm_request
此文档下载收益归作者所有