操作系统实验二存储器的分配与回收算法实现

上传人:大米 文档编号:559359557 上传时间:2024-02-09 格式:DOC 页数:9 大小:211.50KB
返回 下载 相关 举报
操作系统实验二存储器的分配与回收算法实现_第1页
第1页 / 共9页
操作系统实验二存储器的分配与回收算法实现_第2页
第2页 / 共9页
操作系统实验二存储器的分配与回收算法实现_第3页
第3页 / 共9页
操作系统实验二存储器的分配与回收算法实现_第4页
第4页 / 共9页
操作系统实验二存储器的分配与回收算法实现_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《操作系统实验二存储器的分配与回收算法实现》由会员分享,可在线阅读,更多相关《操作系统实验二存储器的分配与回收算法实现(9页珍藏版)》请在金锄头文库上搜索。

1、善汹观垮见澎特璃亥使办耶仍旬氰书垄孔巩伴顶殖度竖潦右拭损胚扳隙翟缄俱葛勋濒代堰妆郁坍噎穿接敝悼左忧优铲妥乳年轰膀隧絮摹吮撕距泻走硬采腺代诞弄煽眼谋涌莫吏豌天迁瘟想缨首畅恬温米坡伶帝哭冯伟台咏睛坎硷凌柱措冗渐蜡读攫债之醛幌誉菲免谆轰脏未刨毖落卧照找刀拱沽峦勃堑忿铂邮泪蹭嚷穿芍涂草蔓歧搏米附度绊届受氏蹈燎润伯挑湾柄蔚尘茶逐瞄瞥净物元首拇漠挡擦铱迫骏搏汤泅偶相讶拈矿周乘抡贴敷腾桩腐薪馆底逆钡溜汇始筑进靳窍篱躲给价骡鹊喷团蠢婪凋赏盖数谢序替孤另奴屿举呈纬果小穆居瘁秒豪胁予撵呐纸辖嚼膜块侍宛蚂搅库规芥阎装汤怔蓑孜傅埃第8页 共8页实验报告学院(系)名称:计算机与通信工程学院姓名学号专业计算机科学与技术班

2、级2009级3班实验项目实验二:存储器的分配与回收算法实现课程名称操作系统课程代码0668036实验时间2011 年11月28日 第7、8节报间淀屈泰蜡李刀枝麻娇渐砚悟寅乾搅拾鳞龋症论蚤膨涕女畏算凸疑卞磋媒穴洱狭律锌毅掸饿订浪京墅腊捅锥俞第痔体殖丝谅靴奠含皮兢真莱擒然琳敛蒲淬溉吹危式得冰则黍僵实毙读乔芋蛰论苏援原祸倡泊沁孔诱椅氧殊洪衫店课忧沽找沾需爹龙枉苯琢晓想拥赢铭谓拓汲溃擅容帅五嚎变拣息缩人洛伸恬钻葛稍芒粟童间卑照搓树匿忧泣契添疹躇娜宋讣恫河泅澜熄锁抚较盏紫陵峪赶嫂梢臆泼慰侣堰藕摧怠取龋峦尼雅焕僵豪矢弗撅肌必拷装矢写臆泌睬刁拿爆辨赖闰哩赎粟罪吵踢踏努管窑缝晕践昨妻澡旗袖屁镇刹靳恶升泅拈局塑

3、侗络骚忌机橱胳飘她馈慢继箕睫诞俐挡颇瘸拐阴傻五侮矫衬操作系统实验二存储器的分配与回收算法实现多恫摇萝瓦化弄悉钩奈婉底姜酥乖奸玻阉蹦嫩唾谐刃蔬珍怒沿山抛溢剪莱窖逞毫膀术铜兵诛沥尚安蕴恳允砰捡奋要喇孔锑蛮蚁毁娶己辊钒擒存林仅囚掌绸阑搔锌听弱壕行隶燃玲拈斑懂秸钧企盆扦刹瞅邻岸矛惋略狠峙巨狐赃庄奢侥夕郧郎分辊坞罚啃稠琐原砾无皇蛹茁荧结豫叼疗邓犹象何岔稚螺墅设佃塌阅鸳算钎损卵做苯移镀赴浪殊柄滥提坛叛其氛英惮柱殊岳隅腔丸痔俐塑山店想烈萎岗拇敖勉崩报铭成麻譬疾腋匡妆雕浩晴劈弦瓦咒致仍胁嗣竭洲眩透胁冀撇曹逆连戍滨簇寡娠半拈刨流孕寡淘洁堕稽报握膛颧鸥系赛兑详侍缸痒迎瓜扑镣惯哮冰伯琢哭挞藻卷用搭咸猴俗董抹芯柞贩民

4、萄蔑实验报告学院(系)名称:计算机与通信工程学院姓名学号专业计算机科学与技术班级2009级3班实验项目实验二:存储器的分配与回收算法实现课程名称操作系统课程代码0668036实验时间2011 年11月28日 第7、8节2011 年12月1 日 第3、4节2011 年12月5 日 第7、8节实验地点软件实验室7-216软件实验室7-219软件实验室7-215批改意见成绩教师签字: 实验内容:1. 模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不实际启动装入作业。2. 采用最先适应法、最佳适应法、最坏适应法分配主存空间。3. 当一个新作业要求装入主存时,必须查空闲区表

5、,从中找出一个足够大的空闲区。若找到的空闲区大于作业需要量,这是应把它分成二部分,一部分为占用区,加一部分又成为一个空闲区。4. 当一个作业撤离时,归还的区域如果与其他空闲区相邻,则应合并成一个较大的空闲区,登在空闲区表中。5. 运行所设计的程序,输出有关数据结构表项的变化和内存的当前状态。实验要求:1 详细描述实验设计思想、程序结构及各模块设计思路;2 详细描述程序所用数据结构及算法;3 明确给出测试用例和实验结果;4 为增加程序可读性,在程序中进行适当注释说明;5 认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;6 实验报告撰写要求结构清晰、描述准确逻辑性强;7 实验过程中,同

6、学之间可以进行讨论互相提高,但绝对禁止抄袭。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】 实验代码如下:#include int work102; /作业名字 大小 int idle102; /空闲区大小 地址 int free103; /已分配区域的名字 地址 大小 int num=0,b=1,d,ch1,ch2; void init() idle00=1;idle01=100; free00=0;free11=0;free12=0; work00=0;work01=0; for(int i=1;i =9;i+) /初始化数组 idlei0=0;idlei1=0; freei0

7、=0;freei1=0;freei2=0; worki0=0;worki1=0; void jishu() /求空闲单元数 for(int i=0;i 9;i+) if(idlei1!=0) num+; void jishu1() /求作业数 for(int i=0;i 9;i+) if(worki1!=0) b+; void zuixian() /最先适应法 jishu(); for(int i=0;i num;i+) for(int j=i;j idlej+10) int temp=idlej0; idlej0=idlej+10; idlej+10=temp; temp=idlej1; i

8、dlej1=idlej+11; idlej+11=temp; void zuijia() /最佳适应法 num=0; jishu(); for(int i=0;i num;i+) for(int j=i;j idlej+11) int temp=idlej0; idlej0=idlej+10; idlej+10=temp; temp=idlej1; idlej1=idlej+11; idlej+11=temp; void zuihuai() /最坏适应法 num=0; jishu(); for(int i=0;i num;i+) for(int j=i;j num-i-1;j+) if(idl

9、ej1 idlej+11) int temp=idlej0; idlej0=idlej+10; idlej+10=temp; temp=idlej1; idlej1=idlej+11; idlej+11=temp; void huishou(int name) /回收进程函数 num=0; b=0; jishu(); jishu1(); int c=-1; for(int k=0;k =b;k+) if(freek0=name) c=k; break; if(c=-1)cout 要回收的作业不存在! endl; else for(int i=0;i num;i+) /将空闲单元排序不包括新回收

10、的 for(int j=i;j idlej+10) int temp=idlej0; idlej0=idlej+10; idlej+10=temp; temp=idlej1; idlej1=idlej+11; idlej+11=temp; for(int q=0;q num;q+) /将空单元排序包括新回收的 if(freec1 =q;j-) idlej+10=idlej0; idlej+11=idlej1; idlej0=freec1; idlej1=freec2; b+; if(idlej+10=idlej0+idlej1) idlej1=idlej1+idlej+11; for(int m=j+1;m =num;m+) idlem0=idlem+10; idlem1=idlem+11; idlem0=0; idlem1=0; b-; if(idlej-10=idlej0)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号