




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
题目:设计一个按优先数调度算法实现处理器调度的程序 提示: (1)假定系统有5个进程,每个进程用一个PCB来代表。PCB的格式为: 进程名、指针、要求运行时间、优先数、状态。 进程名——P1~P5。 指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。 要求运行时间——假设进程需要运行的单位时间数。 优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。 状态——假设两种状态,就绪,用R表示,和结束,用E表示。初始状态都为就绪状态。 (2)每次运行之前,为每个进程任意确定它的“优先数”和“要求运行时间”。 (3)处理器总是选队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。 (4)进程运行一次后,若要求运行时间不等于0,则将它加入队列,否则,将状态改为“结束”,退出队列。 (5)若就绪队列为空,结束,否则,重复(3)。 2.程序中使用的数据结构及符号说明: #definenum5//假定系统中进程个数为5 structPCB{ charID;//进程名 intruntime;//要求运行时间 intpri;//优先数 charstate;//状态,R-就绪,F-结束 }; structPCBpcblist[num];//定义进程控制块数组 3.流程图: (1)主程序流程图:结束 调用运行子程序 调用初始化子程序 开始 (2)子程序init()流程图: 开始 定义i i=0 i<num 输出操作提示 输入ID,pri,runtime state=’R’ getchar() 结束 i=i+1 (3)子程序max_pri_process()流程图: 开始 定义i,key,max=100 i=0 i<num pcblist[i].state==’r’ max<pcblist[i].pri&&pcblist[i].state=='R' max=pcblist[i].prikey=i pcblist[key].state=='F' return-1 returnkey 结束 return-1 i=i+1 (4)子程序show()流程图: 开始 定义i 输出提示 i=0 i<num 输出pcblist[i]的ID,pri,runtime,state 提示按键继续 i=i+1 结束 (5)子程序run()流程图: 开始 定义i,j,t j=0 j<num t+=pcblist[j].runtime j=j+1 输出提示 show() getchar() j<t max_pri_process()!=-1 j=0 pcblist[max_pri_process()].state='r' i=0 i<num pcblist[i].state=='r' pcblist[i].pri-=1pcblist[i].runtime-- pcblist[i].runtime==0 pcblist[i].state='F' pcblist[i].state='R' show()getchar() i=i+1 j=j+1 结束 4.源程序清单 //按优先数调度算法实现处理器调度的程序 #include"stdio.h" #include"string.h" #definenum5//假定系统中进程个数为5 structPCB { charID;//进程名 intruntime;//要求运行时间 intpri;//优先数 charstate;//状态,R-就绪,F-结束 }; structPCBpcblist[num];//定义进程控制块数组 voidinit()//PCB初始化子程序 { inti; for(i=0;i<num;i++) { printf("PCB[%d]:IDpriruntime\n",i+1);//为每个进程任意指定pri和runtime scanf("%s%d%d",&pcblist[i].ID,&pcblist[i].pri,&pcblist[i].runtime); pcblist[i].state='R';//进程初始状态均为就绪 getchar();//接收回车符 } } intmax_pri_process()//确定最大优先级进程子程序 { intmax=-100;//max为最大优先数,初始化为-100 inti; intkey; for(i=0;i<num;i++) {if(pcblist[i].state=='r')//r为辅助状态标志,表示正在运行 return-1;//返回-1 else if(max<pcblist[i].pri&

王子****青蛙
实名认证
内容提供者


最近下载
最新上传
浙江省宁波市2024-2025学年高三下学期4月高考模拟考试语文试题及参考答案.docx
汤成难《漂浮于万有引力中的房屋》阅读答案.docx
四川省达州市普通高中2025届第二次诊断性检测语文试卷及参考答案.docx
山西省吕梁市2025年高三下学期第二次模拟考试语文试题及参考答案.docx
山西省部分学校2024-2025学年高二下学期3月月考语文试题及参考答案.docx
山西省2025年届高考考前适应性测试(冲刺卷)语文试卷及参考答案.docx
全国各地市语文中考真题名著阅读分类汇编.docx
七年级历史下册易混易错84条.docx
湖北省2024-2025学年高一下学期4月期中联考语文试题及参考答案.docx
黑龙江省大庆市2025届高三第三次教学质量检测语文试卷及参考答案.docx