电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

操作系统作业调度实验程序

操作系统作业调度实验程序_第1页
1/7
操作系统作业调度实验程序_第2页
2/7
操作系统作业调度实验程序_第3页
3/7
操作系统实验二 作业调度实验 一、目的要求 用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。 1. 编写并调试一个单道处理系统的作业等待模拟程序。 作业等待算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。 对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,以比较各种算法的优缺点。 #include "stdio.h" #include #include #define getpch(type) (type*)malloc(sizeof(type)) //#define NULL 0 struct worktime{ float Tb; //作业运行时刻 float Tc; //作业完成时刻 float Ti; //周转时间 float Wi; //带权周转时间 }; struct jcb { /*定义作业控制块 JCB */ char name[10]; //作业名 float subtime; //作业提交时间 float runtime; //作业所需的运行时间 char resource; //所需资源 float Rp; //后备作业响应比 char state; //作业状态 struct worktime wt; struct jcb* link; //链指针 } *jcb_ready=NULL,*j; typedef struct jcb JCB; float T=0; v oid sort() /* 建立对作业进行提交时间排列函数*/ { JCB *first, *second; int insert=0; if((jcb_ready==NULL)||((j->subtime)<(jcb_ready->subtime))) /*作业提交时间最短的,插入队首*/ { j->link=jcb_ready; jcb_ready=j; T=j->subtime; j->Rp=1; } else /* 作业比较提交时间,插入适当的位置中*/ { first=jcb_ready; second=first->link; while(second!=NULL) { if((j->subtime)<(second->subtime)) /*若插入作业比当前作业提交时间短,*/ { /*插入到当前作业前面*/ j->link=second; first->link=j; second=NULL; insert=1; } else /* 插入作业优先数最低,则插入到队尾*/ { first=first->link; second=second->link; } } if (insert==0) first->link=j; } } v oid SJFget()/* 获取队列中的最短作业 */ { JCB *front,*mintime,*rear; int ipmove=0; mintime=jcb_ready; rear=mintime->link; while(rear!=NULL) { if ((rear!=NULL)&&(T>=rear->subtime)&&(mintime->runtime)>(rear->runtime)) { front=mintime; mintime=rear; rear=rear->link; ipmove=1;...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

操作系统作业调度实验程序

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部