操作系统课程设计 - 动态分区分配存储管理(2)
}
//内存信息的自动产生 void create_apply() {
int k=0;//空闲区数量 for (i=0;i if(ary1[i][3]!=2) {ary2[k][0]=ary1[i][0]; ary2[k][1]=ary1[i][1]; ary2[k][2]=ary1[i][2]; k++; } 6 int i; for (i=0;i ary1[i][0]=i+1; ary1[i][1]=rand()0; if(i==0) { } ary1[i][3]=rand()%3; //cout < ary1[i][2]=ary1[i-1][2]+ary1[i-1][1]; ary1[i][2]=0; else cout<<\您将创建几个进程---:\cin>>choice2; q=choice2; cout<<\输入想创建的作业请求大小\for(int i=0;i cout<<\你创建了\个进程 \for(int i=0;i cout< cout<>j; ary3[i]=j; } //内存信息的手动生成 int create_fenqu(){ } //首次适应算法 void first_fit() 7 int k,x,y,o=0; int a=0; cout<<\输入想创建的内存分区块数 : \cin>>k; cout<<\输入\个内存分区块 大小\for(int i=0;i cout<<\输入内存块的分配状态\for(int i=0;i ary1[0][2]=0; ary1[1][2]=ary1[0][1]; for(int i=2;i for (int i=0;i if(ary1[i][3]!=2){ } ary2[a][0]=ary1[i][0]; ary2[a][1]=ary1[i][1]; ary2[a][2]=ary1[i][2]; a++; ary1[i][2]=ary1[i-1][2]+ary1[i-1][1];//起始地址 cin>>y; if(y==2){ } ary1[i][3]=y;//状态 n++; ary1[i][0]=i; //序号 cin>>x; ary1[i][1]=x;//大小 } n=k;//空闲块数量 { vision(); int i; int j; int k; int l; int d;//用来保存第k个的值 int id2=0; for(i=0;i for(j=0;j if(ary2[j][1]>=ary3[i])//进程占用空间小于等于其中一个空闲区的大小 { cout<<\与\相匹配\stream.open(\ stream<<\与\相匹配\stream.close(); if(ary2[j][1]==ary3[i])//进程占用空间等于其中一个空闲区块大小 { ary1[ary2[j][0]-1][3]=2; for(k=j+1;k ary2[k-1][0]=ary2[k][0]; ary2[k-1][1]=ary2[k][1]; ary2[k-1][2]=ary2[k][2]; } n--; }else//否则的话,空闲链对应的地方盘块大小小了进程占用的大小,并且内存分配从对应的 { l=ary2[j][0]; d=ary1[l-1][1];//大小 ary1[l-1][1]=ary3[i]; ary1[l-1][3]=2; m++; for(k=m;k>ary2[j][0]+1;k--) { ary1[k-1][0]=ary1[k-2][0]+1; ary1[k-1][1]=ary1[k-2][1]; ary1[k-1][2]=ary1[k-2][2]; ary1[k-1][3]=ary1[k-2][3]; 那一项开始增加一项 } l=ary2[j][0]; 8 } } { if(ary1[id2][3]!=2) } } n=k; } break; } else { } cout<<\与\不匹配\stream.open(\ stream<<\与\不匹配\stream.close(); { ary2[k][0]=ary1[id2][0]; ary2[k][1]=ary1[id2][1]; ary2[k][2]=ary1[id2][2]; k++; } ary1[l][0]=l+1; ary1[l][1]=d-ary3[i]; ary1[l][2]=ary1[l-1][1]+ary1[l-1][2]; ary1[l][3]=0; k=0; for(id2=0;id2 vision(); //首次循环适应算法 void next_fit() { vision(); int i; int j; int k; int s; int d; int id2; for(i=0;i 9 { for(j=r;j if(ary3[i]<=ary2[j][1]) { cout<<\与\相匹配\stream.open(\ { } else//对应的空闲块大小大于进程需要大小 { //-----改变内存分配情况----- r=(r+1)%n; //改变第k块的内容 k=ary2[j][0]; d=ary1[k-1][1]; ary1[k-1][1]=ary3[i]; ary1[k-1][3]=2; //从k+1之后所有向后移一格 m++;//内存块数增加1 for(s=m-1;s>k;s--) { ary1[s][0]=ary1[s-1][0]+1; ary1[s][1]=ary1[s-1][1]; ary1[s][2]=ary1[s-1][2]; 10 //---改变内存分配--- k=ary2[j][0];//得到对应空闲块对应内存块的序号 k--; ary1[k][3]=2;//把对应内存块标志位上改成已分配 //------------------ //--改变空闲块表:把从这块空闲块以下的所有空闲块向上移一格-- n--; for(k=j;k //------------------ break; ary2[k][0]=ary2[k+1][0]; ary2[k][1]=ary2[k+1][1]; ary2[k][2]=ary2[k+1][2]; stream<<\与\相匹配\stream.close(); if(ary3[i]==ary2[j][1])
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




