操作系统批处理系统作业调度试验报告_第1页
操作系统批处理系统作业调度试验报告_第2页
操作系统批处理系统作业调度试验报告_第3页
操作系统批处理系统作业调度试验报告_第4页
全文预览已结束

下载本文档

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

文档简介

1、- 3 -批处理系统的作业调度 实验报告年级 2009级 学号2009443004 姓名 郭占强 成绩专业生物信息学实验地点生科楼409 指导教师 王硕实验项目批处理系统的作业调度实验日期2011年11月18日、实验目的加深对作业概念的理解;深入了解批处理系统如何组织作业、管理作业和调度作业。二、实验要求实验具编写程序完成批处理系统中的作业调度, 要求采用响应比高者优先的作业调度算法。 体包括:首先确定作业控制块的内容,作业控制块的组成方式;然后完成作业调度;最后编写 主函数对所作工作进程测试。三、实验原理:操作系统根据允许并行工作的道数和一定的算法从系统中选取若干作业把它们装入主存储 器,使

2、它们有机会获得处理器运行。四、实验程序设计#i nclude "stri ng.h"#i nclude<iostream.h>#i nclude<stdio.h>#defi ne n 10/*假定系统中可容纳的作业数量为typedef struct jcbchar n ame4;/*作业名*/int len gth;/*作业长度,所需主存大小*/intprin ter;/*作业执行所需打印机的数量int tape;/*作业执行所需磁带机的数量*/int run time;/*作业估计执行时间*/int waittime;/*作业在系统中的等待时间*/

3、int n ext;/*指向下一个作业控制块的指针*/JCB;/*作业控制块类型定义*/int head;/*作业队列头指针定义*/int tape,pri nter;long memory;JCB jobtable n;/*作业表*/int jobco un t=0;/*系统内现有作业数量*/shedule()n*/* 作业调度函数 */ float xk,k;int p,q,s,t;dop=head; q=s=-1; k=0;while(p!=-1) if(jobtablep.length<=memory&&jobtablep.tape<=tape&&a

4、mp;jobtablep.printer<=printer) /* 系统可用资源是否满足作业需求 */ xk=(float)(jobtablep.waittime)/jobtablep.runtime;if(q=0|xk>k)响应比*/k=xk;/* 满足条件的第一个作业或者作业 q 的响应比小于作业 p 的/*记录响应比 */q=p;t=s;/*if*/*if*/s=p;/*指针 p 后移*/* 是作业队列的第一个 */p=jobtablep.next;/*while*/ if(q!=-1) if(t=-1)head=jobtablehead.next;elsejobtablet

5、.next=jobtableq.next;/*为作业q分配资源:分配主存空间;分配磁带机;分配打印机*/memory=memory-jobtableq.length;tape=tape-jobtableq.tape;printer=printer-jobtableq.printer;printf(" 选中作业的作业名: %sn",);while(q!=-1);/* 作业调度函数结束 */ main( )char name4;int size,tcount,pcount,wtime,rtime;int p;/*系统数据初始化 */memory=65

6、536;tape=4;printer=2;head=-1;printf(" 输入作业相关数据 (以作业大小为负数停止输入 ): n");/*输入数据,建立作业队列 */printf(" 输入作业名、作业大小、磁带机数、打印机数、等待时间、估计执行时间 n"); scanf("%s%d%d %d %d %d",name,&size,&tcount,&pcount,&wtime,&rtime); while(size!=-1)/* 创建 JCB*/ if(jobcount<n)p=jobcou

7、nt; else printf(" 无法再创建作业 n");break;jobcount+;/* 填写该作业相关内容 */ strcpy(,name); jobtablep.length=size;jobtablep.printer=pcount; jobtablep.tape=tcount; jobtablep.runtime=rtime; jobtablep.waittime=wtime;/* 挂入作业队列队首 */jobtablep.next=head;head=p;/* 输入一个作业数据 */printf(" 输入作业名、作业大小、磁带机数、打印机数、等待时间、估计执行时间 n"); scanf("%s%d%d%d%d%d",name,&size,&tcount,&pcount,&wtime,&rtime);/*while*/shedule( ); /* 进行作业调度 */*main( ) 函数结束 */五、实验结果与分析1. 本程序采用响应比高者优先算法进行作业调度。 常用的作业调度算法还有先来先服务算 法、计算时间短的作业优先算法、优先数调度算法和均衡调度算法。响应比高者优先算法可以同时考虑到每个作业的

温馨提示

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

评论

0/150

提交评论