时间片轮转调度.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文档。上传文档
查看更多
时间片轮转调度

时间片轮转调度算法的实现 数据结构: typedef struct pcb /*进程控制块定义*/ { char pname[N]; /*进程名*/ int runtime; /*服务时间*/ int arrivetime; /*到达时间*/ char state; /*进程状态*/ struct pcb *next;/*联接指针*/ }PCB; 实验要求: 给出程序中使用的数据结构及符号说明 给出程序流程图和源程序,源程序中要附有详细的注释 输入:时间片,五个进程的进程名、到达时间、服务时间 输出:打印程序运行时的初值和运行结果,要求如下: (1)选中运行进程的名、运行后各进程控制块状态; (2)计算平均周转时间和带权平均周转时间。 总结收获体会及对该题解的改进意见和见解 输入 时间片 1 作业号 A B C D E 到达时间 1 2 3 4 5 开始时间 1 2 3 4 5 服务时间 4 3 5 2 4 输出 运行时刻: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 运行进程名: A B C D E A B C D E A B C E A C E C 运行后状态: R R R R R R R R C R R C R R C R C C head 数据结构的建立可参考实验一与数据结构书 源代码: /*****************操作系统实验二:模拟时间片轮转调度算法(头文件RR.h)*******************/ /*********定义进程控制块**********/ typedef struct pcb { char pname[5]; //进程名 int arrivetime; //到达时间 int runtime; //运行时间 char state; //运行后的状态 struct pcb *next; }PCB; /*************封装头结点,指针分别指向队头和队尾**************/ typedef struct { PCB *front,*rear; }queue; /****************进程队列置空******************************/ queue *init() { queue *head; head=(queue*)malloc(sizeof(queue)); head-front=NULL; head-rear=NULL; return head; } /******************检验进程队列是否为空******************/ int empty(queue *head) { return(head-front ? 0:1); } /***************进程队列入队,往后插入*******************/ queue *append(queue *head,char c[5],int a,int r,char s) { PCB *p; p=(PCB*)malloc(sizeof(PCB)); strcpy(p-pname,c);p-arrivetime=a; p-runtime=r;p-state=s; p-next=NULL; if(empty(head)) head-front=head-rear=p; else { head-rear-next=p; head-rear=p; } return head; } /******************创建进程队列***************************/ queue *creat(queue *head) { char c[5];char s=R; int a,r,i,n; printf(请输入共有几个进程:\n); scanf(%d,n); for(i=1;i=n;i++) { printf(请分别输入第%d个进程的到达时间、估计运行时间、以及进程名:\n,i); scanf(%d%d,a,r); gets(c); head=append(head,c,a,r,s); }

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档