操作系统实验四实验报告动态分区分配算法_第1页
操作系统实验四实验报告动态分区分配算法_第2页
操作系统实验四实验报告动态分区分配算法_第3页
操作系统实验四实验报告动态分区分配算法_第4页
操作系统实验四实验报告动态分区分配算法_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.操作系统实验四【 目 】: 分区分配算法【实验学时 】: 4学时【 目的 】通 次 ,加深 分区分配算法的理解, 一步掌握首次适 算法、循 首次适 算法、 最佳适 算法和最坏适 算法的 方法。【 内容及要求 】 描述: 程序模 四种 分区分配算法:首次适 算法、循 首次适 算法、最佳适 算法和最坏适 算法的工作 程。假 内存中空 分区个数 n,空 分区大小分 P1, ,Pn,在 分区分配 程中需要分配的 程个数 m(mn),它 需要的分区大小分 S1, ,Sm,分 利用四种 分区分配算法将m 个 程放入 n 个空 分区, 出 程在空 分区中的分配情况。程序要求:1)利用首次适 算法、循 首次

2、适 算法、最佳适 算法和最坏适 算法四种 分区分配算法模 分区分配 程。2)模 四种算法的分区分配 程, 出每种算法 程在空 分区中的分配情况。3) 入:空 分区个数 n,空 分区大小 P1, ,Pn, 程个数 m, 程需要的分区大小S1, ,Sm。.4)输出:首次适应算法,循环首次适应算法,最佳适应算法,最坏适应算法,最终内存空闲分区的分配情况。实现源代码:#include#include#include#include#define max 100using namespace std;int work_num;int zone_num;struct Dataint data;charna

3、me;Data *d=new Datamax;struct Tableint data;char arraymax;int length;Table *T=new Tablemax;Table *temp=new Tablemax;void Init()ifstreaminf(DTFQ.txt);int i,j;char ch;infwork_num;cout作业数: work_numzone_num;cout空闲分区数: zone_numendl;cout 作业为 :;for(j=0;jwork_num;j+)inf.get(ch);=ch;coutsetw(4)

4、;.coutendl;cout作业大小: ;for(i=0;idi.data;coutsetw(4)di.data;coutendl;cout空闲分区: ;for(j=0;jTj.data;tempj.data=Tj.data;Tj.length=0;tempj.length=0;coutsetw(4)Tj.data;coutendl;void renew()int j;for(j=0;jzone_num;j+)Tj.data=tempj.data;Tj.length=tempj.length;void re()int i;for(i=0;izone_num;i+)Ti.arrayTi.len

5、gth=#;void show()int i,j;re();for(i=0;izone_num;i+).if(Ti.data=tempi.data)coutsetw(4)Ti.data;elsecoutsetiosflags(ios:right)setw(4)Ti.datasetw(1);for(j=0;jTi.length;j+)if(Ti.arrayj=#)break;elsecoutsetiosflags(ios:right)Ti.arrayj;coutendl;void first_fit()renew();coutfist fit :;int i,j;int tag=0;for(i=

6、0;iwork_num;i+)for(j=0;jzone_num;j+)if(di.data=Tj.data)Tj.data=Tj.data - di.data;Tj.arrayTj.length=;Tj.length+;tag=0;break;elsetag=1;if(tag=1)cout作业太大,无满足条件分区!endl;break;./re();void next_fit()renew();coutnext fit :;int i,j;int m=0,tag=0,count=0;for(i=0;iwork_num;i+)for(j=m;jzone_num;j+)if(di.

7、data=Tj.data)Tj.data=Tj.data - di.data;Tj.arrayTj.length=;Tj.length+;tag=0;m=j;break;elsetag=1;count+;while(tag=1 & countzone_num)for(j=0;jm;j+)if(di.data=Tj.data)Tj.data=Tj.data - di.data;Tj.arrayTj.length=;Tj.length+;tag=0;break;else.tag=1;count+;if(tag=1 & count=zone_num)cout作业太大,无满

8、足条件分区!endl;break;/re();void best_fit()renew();coutbest fit: ;int i,j,k,temp,m;int tag=0,n=0;for(i=0;iwork_num;i+)for(j=0;jzone_num;j+)if(di.data=Tj.data)temp=Tj.data;m=j;int tag1=0;for(k=m+1;k=zone_num;k+)if(Tk.data=di.data)temp=Tk.data;n=k;tag1=1;else if(tag1=0)n=j;.Tn.data=temp - di.data;Tn.arrayT

9、n.length=;Tn.length+;tag=0;break;elsetag=1;if(tag=1)cout作业太大,无满足条件分区!endl;break;/re();void worst_fit()renew();coutworst fit : ;int i,j,k,temp,m;int tag=0,n=0;for(i=0;iwork_num;i+)for(j=0;jzone_num;j+)if(di.data=Tj.data)int tag1=0;temp=Tj.data;m=j;for(k=m+1;ktemp)if(Tk.data=di.data)temp=Tk.data;n=k;tag1=1;.else if(tag1=0)n=j;Tn.data=temp - di.data;Tn.arrayTn.length=;Tn.length+;tag=0;break;elsetag=1;if(tag=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论