欢迎来到天天文库
浏览记录
ID:45555957
大小:75.95 KB
页数:10页
时间:2019-11-14
《【精品】分区式储器管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验五:分区式储器管理一.实验目的模拟实现一个简单的固定(或可变)分区存储管理系统,进一步加深对分区分配方案设计思想的理解。二.实验属性该实验为设计性实验。三.实验仪器设备及器材普通PC386以上微机四.实验提示1、木实验虽然不以前面实验为基础,但建议在其界面中继续增加分区存储管理功能。2、数据结构:分区说明表,用数组实现。3、存储管理:建议采取固定分区法管理内存。编写内存分配、内存回收算法。5、功能测试:从显示出的分区说明表,可查看操作的正确与否。五.实验要求木实验要求2学时完成。本实验要求完成如卜•任务:(2)实现一个分区分配
2、算法,如最先适应分配算法、最优或最坏适应分配本次实验我实现了两种算法一种是由内存的起始地址大小排序进行分配的算法即是固态的最先适应法另一种是根据内存大小排序进行查询的内存分配算法是最佳适应法voidrank(){Tabletemp;for(inti=();iinadress
3、jj.size){temp=inadress[i];inadress[i]=inadressfj];inadrcss
4、j]=tcmp;})}(1)建立相关的数据结
5、构,作业控制块、已分配分区及未分配分区;Structtabic{IntNumber;Intsize;Intbeginad;Intstate;1Structwork;{Intname;Intsize;Intaddress;}(3)实现一个分区凹收算法;voidmemoryalloction(){boolf;for(inti=0;i6、LiJ.number=inadress[jJ.number;inadress[j7、.state=l;f=true;cout«*'进程"«prowork[i].name«,'内存分配成功,且内存序号为"«inadress[j].number«endl;break;}}if(f==falsc)cout«M进程"«prowork[i].name«"rt存分配失败,无法分配给该进程分配内存"vvendl;4)给定一批作业/进程,选择一个分配或回收算法,实现分区存储的模拟管理;(5)将整个过程町视化显示出来。voidshow(){cout«8、"分区号大小“vv't'vv”起址状态u«cndl;for(inti=0;ivm;i++){cout«inadressLiJ.number«'t'«inadress[iJ.size«,t'«inadress[iJ.beginad<<,t,<9、验结果输入三个进程a30b40c60分别用两种方法分配内存固定内存分配状况:112200232320364640412812805422560W'D:学习资料新建文件夹fiveDebijgfigexh如存存能內內功配配辛汪逞还有进程的大小1—择2选的的的程程J^AA菊U脈请请请还有进程的大小1嚼法明曲篡畀说此应应存区譬适内分234为为为号号号存存存內內內且且且01110选勢子的籍的42入程程虻时护新号新A7A7刖304060程程程重区iiabC进进进佳诟分12345^13出86‘‘,举nJ-02425功功詡圭23612成10、成轎配配夕夕夕々戎2242有有府饗;;253为为为号号号存存存內內內且且且011103出68,,,军nJ-02542功功詡圭23261成成蘿配配夕夕夕亠戎22242^^存^4丿13461虻时护新号304060程程程重区abC进进进佳诟分12534根据显示的分区说明表得知结果匸确然后回收内存的验证:输入数据为回收C进程的内存253为为为号号号存存存內內內且且且3址鉛>為成成成漩配配存存存tA大1席护新号区进进选请分1程GO212番选存的內12入回输要重输2534请请状态0分区号大小起址11220232325422563646441211、8128请重新输入你的选择■经过观察分区说明表可知结果正确七、附录#include#includeusingnamespacestd;intm;intn;voidcreateinad();voidrank();
6、LiJ.number=inadress[jJ.number;inadress[j
7、.state=l;f=true;cout«*'进程"«prowork[i].name«,'内存分配成功,且内存序号为"«inadress[j].number«endl;break;}}if(f==falsc)cout«M进程"«prowork[i].name«"rt存分配失败,无法分配给该进程分配内存"vvendl;4)给定一批作业/进程,选择一个分配或回收算法,实现分区存储的模拟管理;(5)将整个过程町视化显示出来。voidshow(){cout«
8、"分区号大小“vv't'vv”起址状态u«cndl;for(inti=0;ivm;i++){cout«inadressLiJ.number«'t'«inadress[iJ.size«,t'«inadress[iJ.beginad<<,t,<9、验结果输入三个进程a30b40c60分别用两种方法分配内存固定内存分配状况:112200232320364640412812805422560W'D:学习资料新建文件夹fiveDebijgfigexh如存存能內內功配配辛汪逞还有进程的大小1—择2选的的的程程J^AA菊U脈请请请还有进程的大小1嚼法明曲篡畀说此应应存区譬适内分234为为为号号号存存存內內內且且且01110选勢子的籍的42入程程虻时护新号新A7A7刖304060程程程重区iiabC进进进佳诟分12345^13出86‘‘,举nJ-02425功功詡圭23612成10、成轎配配夕夕夕々戎2242有有府饗;;253为为为号号号存存存內內內且且且011103出68,,,军nJ-02542功功詡圭23261成成蘿配配夕夕夕亠戎22242^^存^4丿13461虻时护新号304060程程程重区abC进进进佳诟分12534根据显示的分区说明表得知结果匸确然后回收内存的验证:输入数据为回收C进程的内存253为为为号号号存存存內內內且且且3址鉛>為成成成漩配配存存存tA大1席护新号区进进选请分1程GO212番选存的內12入回输要重输2534请请状态0分区号大小起址11220232325422563646441211、8128请重新输入你的选择■经过观察分区说明表可知结果正确七、附录#include#includeusingnamespacestd;intm;intn;voidcreateinad();voidrank();
9、验结果输入三个进程a30b40c60分别用两种方法分配内存固定内存分配状况:112200232320364640412812805422560W'D:学习资料新建文件夹fiveDebijgfigexh如存存能內內功配配辛汪逞还有进程的大小1—择2选的的的程程J^AA菊U脈请请请还有进程的大小1嚼法明曲篡畀说此应应存区譬适内分234为为为号号号存存存內內內且且且01110选勢子的籍的42入程程虻时护新号新A7A7刖304060程程程重区iiabC进进进佳诟分12345^13出86‘‘,举nJ-02425功功詡圭23612成
10、成轎配配夕夕夕々戎2242有有府饗;;253为为为号号号存存存內內內且且且011103出68,,,军nJ-02542功功詡圭23261成成蘿配配夕夕夕亠戎22242^^存^4丿13461虻时护新号304060程程程重区abC进进进佳诟分12534根据显示的分区说明表得知结果匸确然后回收内存的验证:输入数据为回收C进程的内存253为为为号号号存存存內內內且且且3址鉛>為成成成漩配配存存存tA大1席护新号区进进选请分1程GO212番选存的內12入回输要重输2534请请状态0分区号大小起址112202323254225636464412
11、8128请重新输入你的选择■经过观察分区说明表可知结果正确七、附录#include#includeusingnamespacestd;intm;intn;voidcreateinad();voidrank();
此文档下载收益归作者所有