操作系统结课实验报告(2)

2019-04-23 12:39

采用响应比高者优先调度算法进行调度时,必须计算系统中的所有满足必要条件作业的 响应比,从中选择响应比最高的一个作业装入主存储器分配资源。由于是实验,所以就 将作业控制块出队,并输出作业名代替装入主存储器,同时修改系统的资源数量。用同 样方法选择第二个第三个??直到不再有满足必要条件的作业。 模拟程序中,首先要假设系统的资源情况,假设系统资源只有64MB主存、4台磁带机和2台打印机。然后手工输入某个时刻系统的各个作业情况。最后进行作业调度,并将结果输出。

1.3 编码实现

/***************高响应比优先算法************************/ #include\#include\#include\

#define n 10 //假定系统中可容纳的作业数量为n typedef struct jcb {

char name[4]; //作业名

int length; //作业长度,所需内存大小 int printer; //作业执行所需打印机的数量 int tape; //作业执行所需磁带机的数量 int runtime; //作业估计执行时间 int waittime; //作业在系统中的等待时间 int next; //指向下一个作业控制块的指针 }JCB; //作业控制块类型定义 int head; //作业队列头指针定义

第 6 页

int tape,printer; long memory;

JCB jobtable[n]; //作业表

int jobcount=0; //系统内现有作业数量 void shedule() //作业调度函数 { float xk,k; int p,q,s,t; do { p=head; q=s=-1; k=0; while(p!=-1) {

if(jobtable[p].length<=memory&&jobtable[p].tape<=tape&&jobtable[p].printer<=printer)

{ //系统可用资源是否满足作业要求

xk=(float)(jobtable[p].waittime)/jobtable[p].runtime; if(q==0||xk>k)

//满足条件的第一个作业或者作业q的响应比小于作业p的响应比

第 7 页

{ k=xk; //记录响应比 q=p; t=s; }//if }//if s=p;

p=jobtable[p].next; //指针p后移 }//while if(q!=-1) {

if(t==-1) //是作业队列的第一个 head=jobtable[head].next; else

jobtable[t].next=jobtable[q].next;

//为作业q分配资源:分配内存空间;分配磁带机;分配打印机

memory=memory-jobtable[q].length; tape=tape-jobtable[q].tape; printer=jobtable[q].printer;

cout<<\选中作业的作业名:\ }

}while(q!=-1);

第 8 页

} //作业调度函数结束

void main() {

char name[4];

int size,tcount,pcount,wtime,rtime; int p;

//系统数据初始化 memory=65536; tape=4; printer=2; head=-1;

cout<<\请输入作业相关数据(以作业大小为负数停止输入):\

//输入数据,建立作业队列

cout<<\作业名-作业大小-磁带机数-打印机数-等待时间-估计执行时间\

cin>>name>>size>>tcount>>pcount>>wtime>>rtime; float m = (float)wtime/rtime;

cout<<\作业\的响应比为:\ while(size!=-1) { //创建JCB

第 9 页

if(jobcount

cout<<\无法再创建作业\ break; }

jobcount++;

//填写该作业相关内容

strcpy(jobtable[p].name,name); jobtable[p].length=size; jobtable[p].printer=pcount; jobtable[p].tape=tcount; jobtable[p].runtime=rtime; jobtable[p].waittime=wtime; //挂入作业队列队首 jobtable[p].next=head; head=p;

//输入一个作业数据

cout<<\作业名-作业大小-磁带机数-打印机数-等待时间-估计执行时间\

cin>>name>>size>>tcount>>pcount>>wtime>>rtime; m = (float)wtime/rtime;

cout<<\作业\的响应比为:\

10 页 第


操作系统结课实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人防施工方案带图

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: