操作系统-分区分配法-最佳适应算法_第1页
操作系统-分区分配法-最佳适应算法_第2页
操作系统-分区分配法-最佳适应算法_第3页
操作系统-分区分配法-最佳适应算法_第4页
操作系统-分区分配法-最佳适应算法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、实验报告课程名称计算机操作系统实验名称分区分配算法日期学生学号姓名班级实验目的:了解动态分区分配的原理,熟悉动态分区分配的五种算法,并且能够根据这几种算法的优缺点来为进程选择合适的算法。实验条件: 计算机一台。实验内容与步骤:1、首次适应算法打开VC+软件,编辑如下代码:#includevoid main() int m,n,i,j,j0,k,k0,A303,B30;printf(请输入空闲分区块数:);scanf(%d,&m);printf(nt分区号tt大小tt起始地址n);for(i=0;im;i+)for(j=0;j3;j+)scanf(%d,&Aij);/* 按地址从小到大排列(直接

2、选择排序) */for(i=0;im-1;i+) k0=i;for(k=i+1;km;k+)if(Ak2Ak02)k0=k;if(k0!=i) for(j=0;j3;j+) int t;t=Ak0j;Ak0j=Aij;Aij=t;printf(n-首次适应算法按地址从小到大排列后空闲区-n);printf(t分区号tt大小tt起始地址n);for(i=0;im;i+)for(j=0;j3;j+) printf(t%dt,Aij);if(j=2)printf(n);printf(n请输入要分配的作业数:);scanf(%d,&n);printf(请输入作业大小:n);for(j0=0;j0n;j

3、0+)scanf(%d,&Bj0);/* 空闲表首址和大小变换 */i=j0=0;do while(Ai1Bj0&im)i+;if(i=m)printf(n内存不足,%dK大小的作业需要等待内存资源!n,Bj0);if(im) Ai1=Ai1-Bj0; Ai2=Ai2+Bj0;j0+;i=0;while(j0n);printf(n-首次适应算法分区分配后的空闲区-n);printf(t分区号tt大小tt起始地址n);for(i=0;im;i+)for(j=0;j3;j+) if(Ai1) printf(t%dt,Aij);if(j=2) printf(n);运行结果如下:2、最佳适应算法打开V

4、C+软件,编辑如下代码:#includevoid main() int m,n,i,j,j0,k,k0,A303,B30;printf(请输入空闲分区块数:);scanf(%d,&m);printf(t分区号tt大小tt起始地址n);for(i=0;im;i+)for(j=0;j3;j+)scanf(%d,&Aij);/* 按空闲区的容量大小从小到大排列(直接选择排序) */for(i=0;im-1;i+) k0=i;for(k=i+1;km;k+)if(Ak1Ak01)k0=k;if(k0!=i) for(j=0;j3;j+) int t;t=Ak0j;Ak0j=Aij;Aij=t;prin

5、tf(n-最佳适应算法按空闲区的容量从小到大排列后空闲区-n);printf(t分区号tt大小tt起始地址n);for(i=0;im;i+)for(j=0;j3;j+) printf(t%dt,Aij);if(j=2)printf(n);printf(n请输入要分配的作业数:);scanf(%d,&n);printf(请输入作业大小:n);for(j0=0;j0n;j0+)scanf(%d,&Bj0);i=j0=0;do while(Ai1Bj0&im)i+;if(i=m)printf(n内存不足,%dK大小的作业需要等待内存资源!n,Bj0);if(im) Ai1=Ai1-Bj0; Ai2=

6、Ai2+Bj0;j0+; for(i=0;im-1;i+) k0=i;for(k=i+1;km;k+)if(Ak1Ak01)k0=k;if(k0!=i) for(j=0;j3;j+) int t;t=Ak0j;Ak0j=Aij;Aij=t;i=0;while(j0n);printf(n-最佳适应算法分区分配后的空闲区-n);printf(t分区号tt大小tt起始地址n);for(i=0;im;i+)for(j=0;j3;j+) if(Ai1) printf(t%dt,Aij);if(j=2) printf(n);运行结果如下:3、最坏适应算法打开VC+软件,编辑如下代码:#includevoi

7、d main() int m,n,i,j,j0,k,k0,A303,B30;printf(请输入空闲分区块数:);scanf(%d,&m);printf(t分区号tt大小tt起始地址n);for(i=0;im;i+)for(j=0;j3;j+)scanf(%d,&Aij);/* 按空闲区的容量大小从大到小排列(直接选择排序) */for(i=0;im-1;i+) k0=i;for(k=i+1;kAk01)k0=k;if(k0!=i) for(j=0;j3;j+) int t;t=Ak0j;Ak0j=Aij;Aij=t;printf(n-最坏适应算法按空闲区的容量从大到小排列后空闲区-n);pr

8、intf(t分区号tt大小tt起始地址n);for(i=0;im;i+)for(j=0;j3;j+) printf(t%dt,Aij);if(j=2)printf(n);printf(n请输入要分配的作业数:);scanf(%d,&n);printf(请输入作业大小:n);for(j0=0;j0n;j0+)scanf(%d,&Bj0);/* 空闲表首址和大小变换 */i=j0=0;do while(Ai1Bj0&im)i+;if(i=m)printf(n内存不足,%dK大小的作业需要等待内存资源!n,Bj0);if(im) Ai1=Ai1-Bj0; Ai2=Ai2+Bj0;j0+; for(i=0;im-1;i+) k0=i;for(k=i+1;kAk01)k0=k;if(k0!=i) for(j=0;j3;j+) int t;t=Ak0j;Ak0j=Aij;Aij=t;i=0;while(j0n);printf(n-最坏适应算法分区分配后的空闲区-n);printf(t分区号tt大小tt起始地址n);for(i=0;im;i+)

温馨提示

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

评论

0/150

提交评论