基于时间片的轮转调度算法

基于时间片的轮转调度算法

ID:12394772

大小:70.00 KB

页数:7页

时间:2018-07-16

基于时间片的轮转调度算法_第1页
基于时间片的轮转调度算法_第2页
基于时间片的轮转调度算法_第3页
基于时间片的轮转调度算法_第4页
基于时间片的轮转调度算法_第5页
资源描述:

《基于时间片的轮转调度算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于时间片的轮转调度算法实验目的:深入了解算法的实现过程实验内容:用C++模拟基于时间片的轮转算法实验步骤:1、编写代码2、运行调试3、查看结果4、编写实验报告实验要求在提交的实验报告中,必须包含如下内容:(1)设计思想、系统结构图、数据结构及程序流程图。(2)调试通过的源程序清单(含必要注释)及运行结果。实验结果:实验小结:时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。时间片轮转调度中关键的一点是时间片的长度的选取。本实验默认时间片为1,在试验过程中基本满足了实验要求。通过本次实验,我更加了解了时间片轮转调度算法,通过翻看课

2、本,对其的理解更加的深刻了,在以后的学习中,我会更加努力的学习操作系统的相关课程。当然,实验中也遇到了问题,但都不是理论上的问题,而是编程的问题,根本原因还是编程基础不牢。以后会在编程方面努力。源代码:#include "stdio.h"#include"stdlib.h"struct PCB{ int pid;   //进程标识符 int rr;    //已运行时间 int time;   //进程要求运行时间 char sta;   //进程的状态 struct PCB *next;   //链接指针};struct PCB pcb1

3、,pcb2,pcb3,pcb4,pcb5,*tail,*head,*rp;init(){ int i,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 = pcb5.sta = 'w'; printf("请输入时间片p1需要运行的时间:"); scanf("%d

4、",&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需要运行的时间:"); scanf("%d",&time); pcb

5、5.time = time; pcb1.next=&pcb2; pcb2.next=&pcb3; pcb3.next=&pcb4; pcb4.next=&pcb5; pcb5.next=&pcb1; head = &pcb1; tail = &pcb5;}void printf1(){ printf("+---------------

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

7、---------------

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

9、tpidt

10、trrt

11、ttimet

12、tSTAt

13、"); pri

14、ntf("

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

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

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

18、---------------

19、");}printf2(){ printf("processes p%d running",head->pid); printf1(); printf("

20、t%dt

21、t%dt

22、t%dt

23、t%ct

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

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

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

27、------

28、---------

29、---------------

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

31、t%dt

32、t%dt

33、t%dt

34、t%ct

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

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

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

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

39、---------------

40、"); } }operation(){  int flag=1; while (flag<=5

41、) {   head->rr ++;  if ((head->rr==head->time)

42、

43、(head->time==0))  {   tail->sta='w';   he

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

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

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