版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>typedefstruct_proc(charname32;intteam;intci;intrec;/*定义进程名称*/*定义柱面号*/*定义磁道面号*/*定义记录号*/struct_proc*prior;struct_proc*next;PROC;PROC*g_head=NULL,*g_curr=NULL,*local;intrecord=0;intyi=1;voidinit()/*初始化链表(初始I/O
2、表)(PROC*p;*/g_head=(PROC*)malloc(sizeof(PROC);g_head->next=NULL;g_head->prior=NULL;p=(PROC*)malloc(sizeof(PROC);strcpy(p->name,"P1");p->team=100;p->ci=10;p->rec=1;p->next=NULL;p->prior=g_head;g_head->next=p;g_curr=g_head->next;p=(PROC*)malloc(sizeof(PROC);strc
3、py(p->name,"P2");p->team=30;p->ci=5;p->rec=5;p->next=NULL;p->prior=g_curr;g_curr->next=p;g_curr=p;p=(PROC*)malloc(sizeof(PROC);strcpy(p->name,"P3");p->team=40;p->ci=2;p->rec=4;p->next=NULL;p->prior=g_curr;g_curr->next=p;g_curr=p;p=(PROC*)
4、malloc(sizeof(PROC);strcpy(p->name,"P4");p->team=85;p->ci=7;p->rec=3;p->next=NULL;p->prior=g_curr;g_curr->next=p;g_curr=p;p=(PROC*)malloc(sizeof(PROC);strcpy(p->name,"P5");p->team=60;p->ci=8;p->rec=4;p->next=NULL;p->prior=g_curr;g_curr->n
5、ext=p;g_curr=g_head->next;/*选中进程*/local=(PROC*)malloc(sizeof(PROC);strcpy(local->name,"P0");local->team=0;local->ci=0;local->rec=0;local->next=NULL;local->prior=NULL;)voidPrintInit()/*打印I/O表*/(PROC*t=g_head->next;printf("n");printf("I/OLISTn");pr
6、intf("processteamcirecn");while(t!=NULL)(printf("%4s%8d%8d%5dn",t->name,t->team,t->ci,t->rec);t=t->next;)printf("nnCurrentprocessis:n");printf("nn");printf("processteamcirecn");printf("%4s%8d%8d%5dn",local->name,local->
7、team,local->ci,local->rec);switch(yi)(case1:printf("currentdirectionisUPn");break;case0:printf("currentdirectionisdownn");break;voidacceptreq()/*接受请求函数*/PROC*p;p=(PROC*)malloc(sizeof(PROC);printf("pleaseinputtheinformationofthenewprocessnprocess-name:nprocess-teamnproc
8、ess-cinprocess-recn");printf("1.name'n");scanf("%s",p->name);printf("2.team0-199'n");scanf("%d",&p->team);printf("3.ci0-19n");scanf("%d",&p->ci);printf("4.rec0-7n");scanf("%d",&p->rec
9、);getchar();/*输入请求进程信息*/g_curr=g_head;while(g_curr->next!=NULL)g_curr=g_curr->next;p->next=NULL;p->prior=g_curr;g_curr->next=p;/*将此节点链入I/O请求表*/g_curr=g_head->next;printf("NEWI/OLISTnn");PrintInit();/*将新的I/O请求表输出*/voidqddd()PROC*out;intmin;intmax=g_head->next->team;i
10、f(g_head->next=NULL);/*驱动调度函数*/*若已全部调度,则空操作*/elseswitch(yi)case1:min=g_head->next->team;out=g_head->next;进程*/*选出最小的team进程,模拟启动此strcpy(local->name,out->name);local->team=out->team;local->ci=out->ci;local->rec=out->rec;for(g_curr=g_head->next;g_curr!=NULL;g_curr=
11、g_curr->next)(if(g_curr->team>record)min=g_curr->team;break;for(g_curr=g_head->next;g_curr!=NULL;g_curr=g_curr->next)if(min>=g_curr->team&&g_curr->team>record)min=g_curr->team;out=g_curr;strcpy(local->name,out->name);local->team=out->team;local-&g
12、t;ci=out->ci;local->rec=out->rec;printf("nn");printf("theprocesschoosed:n");printf("processteamcirecn");printf("%4s%8d%8d%5dn",out->name,out->team,out->ci,out->rec);record=local->team;printf("%d",record);for(g_curr=g_head->
13、next;g_curr!=NULL;g_curr=g_curr->next)if(max<g_curr->team)max=g_curr->team;if(max=record)yi=0;record=1000;break;)break;/*case1*/case0:/*case1的对称过程*/(max=g_head->next->team;out=g_head->next;strcpy(local->name,out->name);local->team=out->team;local->ci=out->ci;lo
14、cal->rec=out->rec;for(g_curr=g_head->next;g_curr!=NULL;g_curr=g_curr->next)(if(g_curr->team<record)max=g_curr->team;break;for(g_curr=g_head->next;g_curr!=NULL;g_curr=g_curr->next)if(max<=g_curr->team&&g_curr->team<record)max=g_curr->team;out=g_curr;s
15、trcpy(local->name,out->name);local->team=out->team;local->ci=out->ci;local->rec=out->rec;printf("nn");printf("theprocesschoosed:n");printf("processteamcirecn");printf("%4s%8d%8d%5dn",out->name,out->team,out->ci,out->rec);min
16、=g_head->next->team;for(g_curr=g_head->next;g_curr!=NULL;g_curr=g_curr->next)(if(min>g_curr->team)min=g_curr->team;record=local->team;if(min=record)(yi=1;record=0;break;break;default:return-1;/*将选中的进程从I/O请求表中删除*/*switch*/if(out->next=NULL)(out->prior->next=NULL;free(
17、out);else(out->prior->next=out->next;out->next->prior=out->prior;free(out);/*else*/voidacceptnum()受请求*/(floatnum;charc;while(1)(printf("n");printf("pleaseinputanumberbetween0anddiaodunnnum=2:I/OLISTnnnum=?n");scanf("%f",&num);getchar();while(num<
18、;0|num>1)&&num!=2)入数据可能未过滤*/*通过输入01选择驱动调度或是接1nnum<=0.5:acceptrequestnnum>0.5:qudong/*过滤不合法数据注意:本程序其他输(printf("numberERROR!Inputagainplease!nnum=?n");scanf("%f",&num);getchar();/*驱动调度*/*请求表为空无需调度*/if(num>0.5&&num!=2)(if(g_head->next=NULL)(printf("nn");printf("n");printf("I/Olistisempty!n");else(printf("qudongdiaodun&q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年四川省资阳市乐至县石佛镇招聘社区工作者考前自测高频考点模拟试题(共500题)含答案
- 2024年公务员考试瓮安县《行政职业能力测验》统考试题含解析
- 习作:他-了 说课稿-2023-2024学年语文五年级下册统编版
- 2025年金融理财销售工作计划
- Unit 6 There are four seasons in a year. Lesson 36(说课稿)-2024-2025学年人教精通版英语六年级上册
- 2025年安全环保工作计划范文
- 2025年数学教研工作计划
- Unit 2 My week (说课稿)-2024-2025学年人教版PEP英语五年级上册
- 2025年教师个人新学期工作计划范文
- 2025年度社区卫生服务中心工作计划
- 2024-2025学年乌鲁木齐市数学三上期末检测试题含解析
- 2025年初级经济师之初级经济师基础知识考试题库及完整答案【全优】
- 2024年度服装代言合同:明星代言服装品牌拍摄广告协议
- 五年高考真题(2020-2024)分类汇编 政治 专题19 世界多极化 含解析
- 物业元宵节活动方案
- ISBAR辅助工具在交班中应用
- GB 30254-2024高压三相笼型异步电动机能效限定值及能效等级
- 非物质文化遗产拓印 课件
- 监控系统自检报告
- 代理商授权书
- 中南财经政法大学工商管理硕士(MBA)
评论
0/150
提交评论