设计一个按优先数调度算法实现处理器调度的程序 改

设计一个按优先数调度算法实现处理器调度的程序 改

ID:47499491

大小:82.50 KB

页数:14页

时间:2020-01-12

设计一个按优先数调度算法实现处理器调度的程序 改_第1页
设计一个按优先数调度算法实现处理器调度的程序 改_第2页
设计一个按优先数调度算法实现处理器调度的程序 改_第3页
设计一个按优先数调度算法实现处理器调度的程序 改_第4页
设计一个按优先数调度算法实现处理器调度的程序 改_第5页
资源描述:

《设计一个按优先数调度算法实现处理器调度的程序 改》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、题目:设计一个按优先数调度算法实现处理器调度的程序提示:(1)假定系统有5个进程,每个进程用一个PCB来代表。PCB的格式为:进程名、指针、要求运行时间、优先数、状态。进程名——P1~P5。指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。要求运行时间——假设进程需要运行的单位时间数。优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。状态——假设两种状态,就绪,用R表示,和结束,用E表示。初始状态都为就绪状态。(2)每次运行之前,为每个进程任意确定它的“优先数”和“要求运行时间”。(3)处理器总是选队首进程运行。采用动态改变优先数的办法,进

2、程每运行1次,优先数减1,要求运行时间减1。(4)进程运行一次后,若要求运行时间不等于0,则将它加入队列,否则,将状态改为“结束”,退出队列。(5)若就绪队列为空,结束,否则,重复(3)。2.程序中使用的数据结构及符号说明:#definenum5//假定系统中进程个数为5structPCB{charID;//进程名intruntime;//要求运行时间intpri;//优先数charstate;//状态,R-就绪,F-结束};structPCBpcblist[num];//定义进程控制块数组3.流程图:(1)主程序流程图:结束调用运行子程序调用初始化子程序开始(2)子程序init(

3、)流程图:开始定义ii=0i

4、blist[i]的ID,pri,runtime,state提示按键继续i=i+1结束(5)子程序run()流程图:开始定义i,j,tj=0j

5、st[i].state='R'show()getchar()i=i+1j=j+1结束4.源程序清单//按优先数调度算法实现处理器调度的程序#include"stdio.h"#include"string.h"#definenum5//假定系统中进程个数为5structPCB{charID;//进程名intruntime;//要求运行时间intpri;//优先数charstate;//状态,R-就绪,F-结束};structPCBpcblist[num];//定义进程控制块数组voidinit()//PCB初始化子程序{inti;for(i=0;i

6、PCB[%d]:IDpriruntime",i+1);//为每个进程任意指定pri和runtimescanf("%s%d%d",&pcblist[i].ID,&pcblist[i].pri,&pcblist[i].runtime);pcblist[i].state='R';//进程初始状态均为就绪getchar();//接收回车符}}intmax_pri_process()//确定最大优先级进程子程序{intmax=-100;//max为最大优先数,初始化为-100inti;intkey;for(i=0;i

7、/r为辅助状态标志,表示正在运行return-1;//返回-1elseif(max

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

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

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