欢迎来到天天文库
浏览记录
ID:45585488
大小:79.62 KB
页数:7页
时间:2019-11-15
《实验二_内存分配管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验名称:内存分配管理的程序1.实验目的通过本实验使学生了解和熟悉主存空间的各种分配和回收算法、数据结构及其编程实现方法。分配,就是将一定的内存空间分配给某个进程;冋收,就是当进程完成时,将进程所占有的主存空间归还给系统。主存的分配和回收的实现与主存的管理方式有关,也与空间的分配和回收算法和数据结构有关。2.实验环境VC6.0+4-3・实验方法和步骤(含设计)第一题程序流程图C++源程序代码:memoryAssign.h#defineMEMORYASSTGNJI#defineMEMORYASSIGNH#includ
2、e#include#include#includeusingnamespacestd;structmemoryArea//采用线性表的顺序存储结构{intstartAddress;//进程的起始地址intsize;//述程的大小stringstate;//进程的状态charpnumber;//进程号};classmemoryAssign{public://公共的类,便于其他函数调用memoryAssign();"memoryAssignO;v
3、oidinitializeMemory();//初始化内存表的函数voidprint();//输出当前内存表的函数voidorder();//首次适应法的函数voidfunctionOption();//switchvoidassignMemory();//1卩请进程,分配空间的函数voidrecoverMemoryO;//撤销进程,回收空间的函数protected:private://私有的类,避免其他函数中的变量对某函数屮变量的影响inti,j;intcount;memoryArea*area]];};#end
4、if//MEMORYASS1GN_HmemoryAssign::memoryAssign(){count=7;initializeMemory();order();}memoryAssign::^memoryAssign(){・・・}voidmcmoryAssign::initializeMcmory()//初始化内存表的函数{for(i=0;i>
5、newArea->startAddress>>newArea->size>>newArea->state»newAroa->pnumber;area[i]=newArea;}}voidmemoryAssign::order()//首次适应法的函数,将“空闲区”按起始地址从小到人的顺序排序{memoryArea*temp;for(i=0;istartAddress>area[j+l]->startAddress){tem
6、p=area[j];area[j]=area[j+l];area[j+l]=temp;}}}functionOption();}voidmemoryAssign::print()//输出当询内存表的函数{cout«setw(10)«/z起始地址//<startAddress<
7、size<state«setw(9)<<,z进程z/«area[i]->pnumber<8、(i){case1:assignMemory();break;case2:recoverMemory();break;case3:print();break;case4:break;default:cout«输入错误哦...,z«endl;functionOption();}}voidmemoryAssign::assignMemory()//屮请进程,分配
8、(i){case1:assignMemory();break;case2:recoverMemory();break;case3:print();break;case4:break;default:cout«输入错误哦...,z«endl;functionOption();}}voidmemoryAssign::assignMemory()//屮请进程,分配
此文档下载收益归作者所有