第一范文网 - 专业文章范例文档资料分享平台

编写并调试一个多道程序系统的作业调度模拟

来源:用户分享 时间:2025/6/1 11:45:03 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

编写并调试一个多道程序系统的作业调度模拟程序五

编写并调试一个多道程序系统的作业调度模拟程序。 作业调度算法:采用基于优先级的作业调度。 可以参考课本中的例子自行设计。

#include <stdio.h> #include <stdlib.h>

#define getjch(type) (type*)malloc(sizeof(type)) #define N 10

struct jcb { /* 定义作业控制块PCB */ char name[10];

float needtime; /*运行时间*/ float arrivetime;/*提交时刻*/ float storage[N];/*系统资源*/ struct jcb* link;

}*ready=NULL,*pb=NULL,*p;

typedef struct jcb JCB;

float Tc,Ti,Wi,T=0;/*完成时刻,周转时间,带权周转时间,时间量*/ float TiSum=0,WiSum=0;/*平均周转时间,带权a平均周转时间*/ float source[N]; int n;

void input(); /*输入作业信息*/

int space(); /* 返回就绪队列中作业的数目*/ void fcfs(); /*先来先服务算法*/ void disp(JCB *pr); /* 显示相应的作业*/ void running(); /*运行作业组*/ void destroy(); /* 撤销作业*/

void input() /* 建立作业控制块函数*/ {

int i,k,num;

printf("请输入所拥有的资源种类:"); scanf("%d",&n);

printf("输入系统所拥有资源数:\\n"); for(i=0;i<n;i++) {

printf("资源[%d]:",i);

scanf("%f",&source[i]); }

printf("\\n 输入作业数量:"); scanf("%d",&num); for(i=0;i<num;i++) {

printf("\\n 作业号[%d]:\\n",i); p=getjch(JCB);

printf("输入作业名:");

scanf("%s",p->name); printf("输入提交时间:");

scanf("%f",&p->arrivetime); printf("输入运行时间:");

scanf("%f",&p->needtime); printf("输入所需资源数:\\n"); for(k=0;k<n;k++) {

printf("资源[%d]:",i);

scanf("%f",&p->storage[k]); }

printf("\\n"); p->link=NULL;

fcfs(); } }

int space() { int l=0; JCB* pr=ready; while(pr!=NULL) { l++;

pr=pr->link; } return(l); }

void disp(JCB * pr) /*建立作业显示函数,用于显示当前作业*/ { int i;

printf("\\n%6s\\t%6s\\t%6s\\t","

","运行时间","提交时刻");

编写并调试一个多道程序系统的作业调度模拟.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c446el911191j03u4hzgg_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top