进程调度算法 操作系统

进程调度算法 操作系统

ID:9800000

大小:45.50 KB

页数:7页

时间:2018-05-10

进程调度算法 操作系统_第1页
进程调度算法 操作系统_第2页
进程调度算法 操作系统_第3页
进程调度算法 操作系统_第4页
进程调度算法 操作系统_第5页
资源描述:

《进程调度算法 操作系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、进程调度::优先数、时间片轮转、先来先服务代码:#include#include#includetypedefstructnode{charname[10];intprio;intround;intcputime;intneedtime;intcount;charstate;structnode*next;}PCB;PCB*finish,*ready,*run,*r;intN;voidfirstin(){run=ready;run->state='R';rea

2、dy=ready->next;}voidprt1(chara){if(a=='P'

3、

4、a=='p')printf("进程号cpu时间所需时间优先数状态");elseif(a=='r'

5、

6、a=='R')printf("进程号cpu时间所需时间记数时间片状态");elseif(a=='f'

7、

8、a=='F')printf("进程号所需时间状态");}voidprt2(chara,PCB*q){if(a=='P'

9、

10、a=='p')printf("%-10s%-10d%-10d%-10d%c",q->name,

11、q->cputime,q->needtime,q->prio,q->state);elseif(a=='r'

12、

13、a=='R')printf("%-10s%-10d%-10d%-10d%-10d%c",q->name,q->cputime,q->needtime,q->count,q->round,q->state);elseif(a=='f'

14、

15、a=='F')printf("%-10s%-10d%c",q->name,q->needtime,q->state);}voidprt(charalgo){PCB*p

16、;prt1(algo);if(run!=NULL&&!(algo=='r'

17、

18、algo=='R'))//这个对RR不适应!!prt2(algo,run);p=ready;while(p!=NULL){prt2(algo,p);p=p->next;}p=finish;while(p!=NULL){prt2(algo,p);p=p->next;}getchar();}voidinsert1(PCB*q){PCB*p1,*s,*r;intb;s=q;p1=ready;r=p1;b=1;while((p1!=NULL)&&b

19、){if(p1->prio>=s->prio){r=p1;p1=p1->next;}elseb=0;}if(r!=p1){r->next=s;s->next=p1;}else{s->next=p1;ready=s;}}voidcreat1(charalg){PCB*p;inti,time;charna[10];ready=NULL;finish=NULL;run=NULL;printf("输入进程号和运行时间:");for(i=1;i<=N;i++){p=(PCB*)malloc(sizeof(PCB));sca

20、nf("%s",na);scanf("%d",&time);strcpy(p->name,na);p->cputime=0;p->needtime=time;p->state='W';p->prio=50-time;if(ready!=NULL)insert1(p);else{p->next=ready;ready=p;}}//clrscr();if(alg=='p'

21、

22、alg=='P')printf("优先数算法输出信息:");elseprintf("先来先服务算法输出信息:");printf("*****

23、************************************");prt(alg);run=ready;ready=ready->next;run->state='R';}voidcreat2(charalg){PCB*p;inti,time,round;charna[10];ready=NULL;finish=NULL;run=NULL;printf("请输入时间片:");scanf("%d",&round);printf("输入进程号和运行时间:");for(i=1;i<=N;i++){p=(

24、PCB*)malloc(sizeof(PCB));scanf("%s",na);scanf("%d",&time);strcpy(p->name,na);p->cputime=0;p->needtime=time;p->state='W';p->count=0;p->round=round;p->next=NULL;if(i==1)/*按顺序插

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。