时间片轮转法完成进程调度(操作系统实验报告)

时间片轮转法完成进程调度(操作系统实验报告)

ID:39071494

大小:150.51 KB

页数:10页

时间:2019-06-24

时间片轮转法完成进程调度(操作系统实验报告)_第1页
时间片轮转法完成进程调度(操作系统实验报告)_第2页
时间片轮转法完成进程调度(操作系统实验报告)_第3页
时间片轮转法完成进程调度(操作系统实验报告)_第4页
时间片轮转法完成进程调度(操作系统实验报告)_第5页
资源描述:

《时间片轮转法完成进程调度(操作系统实验报告)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、时间片轮转法完成进程调度【实验目的】(1)加深对进程的理解(2)理解进程控制块的结构(3)理解进程运行的并发性(4)掌握时间片轮转法进程调度算法【实验内容】(1)建立进程控制块(2)设计三个链队列,分别表示运行队列、就绪队列和完成队列(3)用户输入进程标识符以及进程所需的时间,申请空间存放进程PCB信息。(4)每一个时间片结束输出各进程的进程号,CPU时间(即已经占用的CPU时间),所需时间(即还需要的CPU时间),以及状态(即用W表示等待,R表示运行,F表示完成)【程序代码】#include"stdio.h"#include"stdlib.h"structPC

2、B{intpid;//进程标识符intrr;//已运行时间inttime;//进程要求运行时间charsta;//进程的状态structPCB*next;//链接指针};structPCBpcb1,pcb2,pcb3,pcb4,pcb5,*tail,*head,*rp;init(){inti,time;pcb1.pid=1;pcb2.pid=2;pcb3.pid=3;pcb4.pid=4;pcb5.pid=5;pcb1.rr=pcb2.rr=pcb3.rr=pcb4.rr=pcb5.rr=0;pcb1.sta=pcb2.sta=pcb3.sta=pcb4.sta

3、=pcb5.sta='w';printf("请输入时间片p1需要运行的时间:");scanf("%d",&time);pcb1.time=time;printf("请输入时间片p2需要运行的时间:");scanf("%d",&time);pcb2.time=time;printf("请输入时间片p3需要运行的时间:");scanf("%d",&time);pcb3.time=time;printf("请输入时间片p4需要运行的时间:");scanf("%d",&time);pcb4.time=time;printf("请输入时间片p5需要运行的时间:");sca

4、nf("%d",&time);pcb5.time=time;pcb1.next=&pcb2;pcb2.next=&pcb3;pcb3.next=&pcb4;pcb4.next=&pcb5;pcb5.next=&pcb1;head=&pcb1;tail=&pcb5;}voidprintf1(){printf("+---------------

5、---------------

6、---------------

7、---------------+");printf("

8、tpidt

9、trrt

10、ttimet

11、tSTAt

12、");printf("

13、----

14、-----------

15、---------------

16、---------------

17、---------------

18、");}printf2(){printf("processesp%drunning",head->pid);printf1();printf("

19、t%dt

20、t%dt

21、t%dt

22、t%ct

23、",head->pid,head->rr,head->time,head->sta);printf("

24、---------------

25、---------------

26、---------------

27、---------------

28、

29、n");rp=head;while(rp!=tail){rp=rp->next;printf("

30、t%dt

31、t%dt

32、t%dt

33、t%ct

34、",rp->pid,rp->rr,rp->time,rp->sta);printf("

35、---------------

36、---------------

37、---------------

38、---------------

39、");}}operation(){intflag=1;while(flag<=5){head->rr++;if((head->rr==head->time)

40、

41、(head->time==0)

42、){tail->sta='w';head->sta='f';printf2();head=head->next;tail->next=head;flag++;}else{tail->sta='w';head->sta='r';printf2();tail=head;head=head->next;}}}voidmain(){init();//初始化printf("thisisthebeginstate:");printf2();//显示初始状态operation();//运行}【结果截图】

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

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

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