过程调剂模拟法度模范.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
过程调剂模拟法度模范

进程调度模拟程序 #include stdio.h #include malloc.h typedef struct jinchen //定义结构体 { char name[5]; int tijiaoshijian; int reachtime; int runtime; int beirun; int accomplishtime; char state; int flag; struct jinchen *next; }PCB; PCB *finish,*ready;//定义队列 一个完成一个就绪 int time=0; int t=0; int num; void InitPcb() //进程初始化 { int i,j=0; PCB *p,*q,*l,*m,*k,*n; printf(请输入进程个数:); scanf(%d,num); ready=(PCB *)malloc(sizeof(PCB)); ready-next=NULL; finish=(PCB *)malloc(sizeof(PCB)); finish-next=NULL; l=(PCB *)malloc(sizeof(PCB)); l-next=NULL; p=l; for(i=0;inum;i++) { q=(PCB *)malloc(sizeof(PCB)); printf(\n进程号 %d:\n,i); printf(请输入进程名:); scanf(%s,q-name); q-reachtime=0; printf(请输入提交时间:); scanf(%d,(q-tijiaoshijian)); printf(请输入运行时间:); scanf(%d,(q-runtime)); q-beirun=q-runtime; q-state=R; q-flag=0; if(i!=0) //链接就绪进程 { //q-next=NULL; q-next=p-next; p-next=q; p=p-next; } else //第一个进程插入就绪队列 { p-next=q; p=p-next; p-next=NULL; } } p=l-next; k=ready; for(i=0;inum;i++) //按照提交时间排序 { q=l-next; t=1000; while(q!=NULL) { if(q-tijiaoshijiantq-flag==0) { t=q-tijiaoshijian; m=(PCB *)malloc(sizeof(PCB)); m-next=NULL; m-accomplishtime=q-accomplishtime; m-beirun=q-beirun; m-flag=q-flag; for(j=0;j5;j++) m-name[j]=q-name[j]; m-reachtime=q-reachtime; m-runtime=q-runtime; m-state=q-state; m-tijiaoshijian=q-tijiaoshijian; n=q; } q=q-next; } p=p-next; n-flag=1; m-flag=1; k-next=m; k=k-next; } k-next=NULL; } void display() //函数作用:计算和显示相关输出 { PCB *p; int m,n=0,k=0,l; p=finish-next; while(p!=NULL) { printf(进程名 :%s,p-name); m=p-accomplishtime-p-tijiaoshijian; printf(周转时间:%d,m); l=m/(p-beirun); printf(带权周转时间:%d,l); printf(\n); n=m+n; k=l+k; p=p-next; } printf(平均周转时间:%d\n,n/num); printf(平均带权周转时间:%d\n,k/num); } void Use()//进程调用 { int j; PCB *p=ready-next,*k=ready,*q,*n=finish; while(k-next!=NULL) {

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档