




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准文案大全操作系统实验报告实验1 :主存储器空间的分配和回收姓名:何 浪_学号: 201306080215 _专业班级: 计本132_实验时间:2015.5.31实用标准文案大全报告时间:201566系 别:计算机系学 院:电气与信息工程学院实验3主存储器空间的分配和回收一、实验内容主存储器空间的分配和回收。二、实验目的一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,
2、则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现与主存储器的管理方式有关的,通过本实验帮助学生理解在可变分区管理方式下应怎样实现主存空间的分配和回收。三、实验原理模拟在可变分区管理方式下采用最先适应算法实现主存分配和回收。(1)可变分区方式是按作业需要的主存空间大小来分割分区的。当要装入一个作业时, 根实用标准文案大全据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入。随着作业的装入、撤离,主存空间被分成许多个分区,有的实用标准文案大全分区被作业占用,而有的分区是空闲的。例如:为了说明哪些区是空闲的,可以用来装
3、入新作业,必须要有一张空闲区说明表,格式如下:第一栏第二栏其中,起址一一指出起址长度状态14 K12 K未分配32 K96 K未分配个空闲区的主存起始地址。长度一一指出从起始地址开始的一个连续空闲的长度。状态一一有两种状态,一种是“未分配”状态,指出对应的由起址指出的某个长度的区域实用标准文案大全实用标准是空闲区。(2)当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。有时找到的空闲区可能大于作业需要量,这时应把原来的空闲区变成两部分:一部分分给作业占用;另一部分又成为一个较小的空闲区。为了尽量减少由于分割造成的空闲区,而尽量保存高地址部分有较大的连续空闲区域,以利
4、于大型作业的装入。为此,在空闲区说明表中,把每个空闲区按其地址顺序登记,即每个后继的空闲区其起始地址总是比前者大。(3)采用最先适应算法(顺序分配算法)分配主存空间。按照作业的需要量, 查空闲区说明表,顺序查看登记栏,找到第一个能满足要求的空闲 区。当空闲区大于需要量时,一部分用来装入作业,另一部分仍为空闲区登记在空闲区说明表中。由于本实验是模拟主存的分配,所以把主存区分配给作业后并不实际启动装入程序装入 作业,而用输出“分配情况”来代替。(4)当一个作业执行结束撤离时,作业所占的区域应该归还,归还的区域如果与其它空闲区相邻,则应合成一个较大的空闲区,登记在空闲区说明表中。(5)请按最先适应算
5、法设计主存分配和回收的程序。假设初始时主存中没有作业,现按下面序列进行内存的申请与释放:作业1申请300K,作业2申请100K,作业1释放300K,作业3申请150K,作业4申请30K,作业5申请40K,作业6申请60K,作业4释放30K。请你为它们进行主存分配和回收,把空闲区说明表的初值以及每次分配或回收后的变化显示出来或打印出来。四、算法流程图实用标准实用标准文案大全结束实用标准文案大全/双向链表结构头文件/除系统占用内存外的剩余内存/第一块空闲区的起至地址/第一块空闲区的大小/清屏函数头文件/定义空闲区类五、源程序及注释#in clude using n amespace std;#in
6、 elude #defi ne Residue 512#defi ne fst_free 0#defi ne fst_size512#i nclude #i nclude class Freepublic:Free();Free(i nt s,i nt I)start = s;len gth = l;int get_free(int length);/成员函数获取空闲分区void free_task(i nt start,i nt len gth);实用标准文案大全friend void prin t_free();protected:int start;int len gth;list fr
7、ee_list;/ 声明空闲分区表int Free:get_free (int size)int start = -1;list:iterator it=free_list.begin(); 查找适当的空闲分区 iterator :迭代器(游标)提供一种方法访问一个容器bool find = false;while(it!=freeist.e nd()if(*it)-le ngth=size)fin d=true;start = (*it)-start;if(*it)-le ngthsize)/大于就分割把低地址分配出去实用标准文案大全(*it)-start += size;(*it)-le
8、ngth -= size;elsefree_list.erase(it);/等于就从空闲分区中删掉break;/找到就跳出循环it+;return start; void Free:free_task (int start,i nt len gth)list:iterator init_it,last_it;/ 查找要插入的位置last_it = ini t_it;list:iterator it=free_list.begi n();while(it!=freeist.e nd()if(*it)-start start) break;last_it = it;it+;bool li nk_p
9、rev=false;实用标准文案大全bool li nk_n ext=false;if(last_it!= init_it)/ 有前一个时if(*last_it)-start+(*last_it)-le ngth = start)li nk_prev = true;if(it!=free_list.end()/ 有后一个时if(start+le ngth=(*it)-start)link_n ext = true;if(link_prev & link_next)/ 与前后都相连(*last_it)-le ngth += len gth + (*it)-le ngth;freeist.eras
10、e(it);else if(link_prev)/ 只与前相连实用标准cout e ndle ndlle ngth += len gth;else if(link_next)/ 只与后相连(*it)-start = start;(*it)-le ngth += len gth;else /前后都不相连Free *fr = new Free(start,le ngth); freeist.i nsert(it,fr); void prin t_free()cout e ndl空闲区状态: en dl en dl起始地址 大小 endl;for(list:iterator it=free _l i
11、st.begi n( );it!=free _l ist.e nd();it+)coutstart length endl;实用标准cout 此作业已存在! en dle ndl;文案大全class Task:public Free/ 定义分配分区类public:Task();Task(i nt n ,i nt s,i nt l):Free(s,l)n ame = n;void do_request(i nt n ame,i nt len gth);void do_revoke(i nt n ame);friend void prin t_task();protected:int n ame;
12、list task_list;/分配可用起始地址void Task:do_request (i nt n ame,i nt size)if(n ame=0)cout 申请不合法!非法作业名! en dlResidue)cout 申请不合法!超出最大可用内存! en dle ndl; return;bool find = false;/查找是否已存在同名作业list:iterator it=task_list.begin();while(it!=task_list.e nd()if(*it)- name=n ame)fin d=true;break;it+;if(fin d)return;实用标
13、准cout 此作业已存在! en dle ndl;文案大全int start=get_free(size);/从空闲分区选择合适的空间if(start=-1)/未找到合适空间cout 系统内存不足!作业等待! en dle ndl;return;Task *ta = new T ask (n ame,start,size);task_list.push_back(ta);cout 作业申请内存成功!e ndle ndl;void Task:do_revoke (int n ame)if(n ame=0)cout 错误!不能回收系统内存! endl;return;bool find = fals
14、e;/查找要回收的作业是否存在list:iterator it=task_list.begin();实用标准cout name=n ame)fin d=true;break;it+;if(!fi nd)cout 错误!作业名不存在!start,(*it)-le ngth);task_list.erase(it);cout 回收作业占用内存成功! endl; void prin t_task()实用标准文案大全cout cout 主存储器空间的分配和回收e ndl;cout e ndle ndle ndl;Free *fr1 = new Free(fst_free,fst_size);/把系统占
15、用后剩余的内存空间计入空闲cout 作业名称起始地址大小 endl;for(list:iterator it=task_list.begi n( );it!=task_list.e nd();it+)cout name start le ngthen dl;cout _ en dl; int mai n()e ndl;分区表free_list.push_back(fr1);prin t_free();bool quit=false;while(!quit)Task T;Free F;cout a.申请内存b.回收内存endl;cout c.查看作业0.退出程序endlendl;实用标准文案大全
16、cout op;if(op=a|op=A)int n ame;int size;cout n ame;cin size;T.do_request (n ame,size);prin t_free();else if(op=b|op=B) int n ame;cout n ame;T.do_revoke( name);prin t_free();else if(op=c|op=C)实用标准文案大全 endl;prin t_task();else if(op=0)break;elsecout 非法操作!char con;cout con;if(con=n | con=N)quit=true;sys
17、tem(cls);实用标准文案大全六、打印的程序运行时初值和运行结果pstz状态*竝Mi址大1、U512H:煌诈矣茫注存仝Kt汾酷涓袞2-exeI 回回退 P P 0 0内作青看大 间 空 ffl!占功业内 A把W W择2实用标准文案大全实用标准文案大全=g业内 择入申 迭並ng I * .卡-二看唯口US1?K-lK-l 择入作 送器 请Lnpu1回占r H:谣年奚籬住丢I駆谀与谒克2 E起始迪址 大小4m112 H:谣乍察辭E旧的分配与调宸2E空闲区状态:始地址主小B竝0408丄:LZ彩敷Y/W:实用标准文案大全业内 择入申H :谀咋枣陥汪疗淫1那方暫日司當2. *W取退51程予:聃业内 择入曰 SMXPFSMXPF:翳三间大小決三闲区忒态起始t也址弋卜18B丄2日4 圜112实用标准文案大全实用标准文案大全业内 择入曰 SMXPFSMXPFba三闲区忒态起始t也址弋卜28B204 圜112需卽邛大小汚机-甲谄内吁 -查看咋业宦闭区决态:&始地址丈小5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于可信平台模型的代理系统安全与隐私保护研究-洞察阐释
- 装修工程施工安全协议措施
- 历史叙事-解构与重构的叙事学创新-洞察阐释
- 人教版四年级英语教学方法计划
- 在线辅导教师师德师风引导计划
- 人工智能在性能优化中的应用-洞察阐释
- 学校操场绿化材料准备与质量保障措施
- 洗染行业市场分析-洞察阐释
- 智能语音交互在公众娱乐系统中的应用-洞察阐释
- 德育与学科融合教学计划
- 2025医院内部审计工作计划范文
- 管道闭水试验(自动计算)
- 国开(河北)2024年秋《现代产权法律制度专题》形考作业1-4答案
- 林业专业知识考试试题及答案
- 社区居民积分制管理实施方案
- 2024年二建《法规》真题及参考答案
- 高中生物教材易错易混概念辨析(新人教版2019)
- 微观经济学课后习题答案-微观经济学课后习题
- 掬水月在手-古典诗词与现代人生智慧树知到期末考试答案章节答案2024年南开大学
- 2024年中级咖啡师技能鉴定考试题库大全-下(判断题)
- 中国法律史-第一次平时作业-国开-参考资料
评论
0/150
提交评论