实验一 进程调度试验.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 进程调度实验根据实习指导中给出的代码框架,补充代码完成相应的功能。采用“最高优先数优先”调度算法对五个进程进行调度。动态优先数调度算法代码:#include stdio.h#include stdlib.h#include conio.h#define getpchtype type*mallocsizeoftype#define NULL 0struct pcb /* 定义进程控制块PCB */char name[10];char state;int super;int ntime;int rtime;struct pcb* link;*readyNULL,*p;typedef struct pcb PCB;sort /* 建立对进程进行优先级排列函数*/PCB *first, *second;int insert0;ifreadyNULL||p-superready-super /*优先级最大者,插入队首*/p-linkready;readyp;else /* 进程比较优先级,插入适当的位置中*/firstready;secondfirst-link;whilesecond!NULLifp-supersecond-super /*若插入进程比当前进程优先数大,*/ /*插入到当前进程前面*/p-linksecond;first-linkp;secondNULL;insert1;else /* 插入进程优先数最低,则插入到队尾*/firstfirst-link;secondsecond-link;ifinsert0 first-linkp;input /* 建立进程控制块函数*/int i,num;systemcls; /*清屏*/printf\n 请输入进程个数:;scanf%d,num;fori1;inum;i++printf\n 进程号No.%d:\n,i;pgetpchPCB;printf\n 输入进程名:;scanf%s,p-name;printf\n 输入进程优先数:;scanf%d,p-super;printf\n 输入进程运行时间:;scanf%d,p-ntime;printf\n;p-rtime0;p-statew;p-linkNULL;sort; /* 调用sort函数*/int spaceint l0; PCB* prready;whilepr!NULLl++;prpr-link;returnl;dispPCB * pr /*建立进程显示函数,用于显示当前进程*/printf\n qname \t state \t super \t ndtime \t runtime \n;printf|%s\t,pr-name;printf|%c\t,pr-state;printf|%d\t,pr-super;printf|%d\t,pr-ntime;printf|%d\t,pr-rtime;printf\n;check /* 建立进程查看函数 */PCB* pr;printf\n **** 当前正在运行的进程是:%s,p-name; /*显示当前运行进程*/dispp;prready;printf\n ****当前就绪队列状态为:\n; /*显示就绪队列状态*/whilepr!NULLdisppr;prpr-link;destroy /*建立进程撤消函数进程运行结束,撤消进程*/printf\n 进程 [%s] 已完成.\n,p-name;freep;running /* 建立进程就绪函数进程运行时间到,置就绪状态*/p-rtime++;ifp-rtimep-ntimedestroy; /* 调用destroy函数*/elsep-super--;p-statew;sort; /*调用sort函数*/main /*主函数*/int len,h0;char ch;input;lenspace;whilelen!0ready!NULLchgetchar;h++;printf\n The execute number:%d \n,h;pready;readyp-link;p-linkNULL;p-stateR;check;running;printf\n 按任一键继续......;chgetchar;printf\n\n 进程已经完成.\n;chgetchar;画出数据结构(eg. PCB、优先级队列…)图、代码的整体和局部结构流程图。 对不同阶段的执行结果进行截图,并对截图进行说明。采用“最高优先数优先”调度算法对五个进程进行调度。静态优先数调度算法代码:将动态优先数算法代码中的120行:p-super--;注释即为静态优先数算法结果截图:编写并调试一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行

您可能关注的文档

文档评论(0)

6952225 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档