版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验4优先级调度算法设计实验实验目的法要求每个进程都有一个优先级与其关联,具有最高优先级的进程会分配到 CPU,具有相同优先级的进程按FCFSFirst Come First Served顺序调度。本次实验要求在Linux 操作系统上用C 语言编写和调试一个基于优先级优先运行算法的进程调度程序。实验内容优先级简介动态优先数CPU待时间的增长而优先数变为最高而得到CPU例如:在进程获得一次 CPU 后就将其优先数减少 1,或者进程等待的时间超过某一时限时增加其优先数的值,等等。详细设计优先权调度算法:进程控制块PCB链表数据结构。CPU 时间、进进程的优先数及需要的运行时间人为地指定行计算。1学
2、习文档 仅供参考束”状态。在设计的程序中有输入语句,输入5个进程的“优先数”和“要求运行时间以及结束进程的进程名。设计的程序,显示或打印出逐次被选中进程的进程名及其进程控制块的动态变化过 程。流程图:最高优先级优先调度算法流程图学习文档 仅供参考实验内容要求:1运行程序后显示一个友好的界面,上面显示实验者的实验题目、班级、学号及完成实验的日期,例如界面如下:2要求模拟进程的参数有分 5 次输入,每次输入 1 个进程名称、优先级以及运行时间;5CPU 的时状态置为“结束”,且退出就绪队列;4重复 5 次操作,直到进程运行完毕位置,如下列图所示:学习文档 仅供参考5将每步的执行界面拷屏插入到实验报
3、告中。思考题:在此程序基础上,实现 8 个任务的动态优先级调度。例如源程序:#includestdio.h #include#define getch(type) (type*)malloc(sizeof(type) #define NULL 0struct pcb /* 定义进程控制块PCB char name10;/进程名char state;进程状态int super;/进程优先级int ntime;/进程需要运行时间int rtime;/struct pcb* link;学习文档 仅供参考学习文档 仅供参考学习文档 仅供参考*ready=NULL,*p; typedef struct
4、pcb void inunization()/初始化界面printf(nntt*ttn); printf(tttt 基 于 最 高 优 先 级 优 先 运 行 的 进 程 调 n); printf(tt*ttn); printf(nnnttttt15 电子班n);printf(ttttt:*n);printf(ttttt 学号:*n);printf(ttttt 完成时间:2017 年 *月*日nnnn); printf(请输入任意键进入演示过程n);getchar();void sort() /* */PCB *first, *second; int insert=0;if(ready=NUL
5、L)|(p-super)(ready-super) /*优先级最大者,插入队首*/p-link=ready; ready=p;else /* ,*/first=ready; second=first-link; while(second!=NULL)if(p-super)(second-super) /*假设插入进程比当前进程优先数大,*/ /*插入到当前进程前面*/ p-link=second;first-link=p; second=NULL; insert=1;else /* ,*/first=first-link; second=second-link;if(insert=0) fir
6、st-link=p;void input() /* */int i;system(cls); /*清屏*/printf(n for(i=0;iname); printf(n scanf(%d,&p-super); printf(n scanf(%d,&p-ntime);printf(n);p-rtime=0;p-state=w; p-link=NULL;sort(); /* sort 函数*/int space()/计算进程控制块的个数int l=0; PCB* pr=ready; while(pr!=NULL) l+;pr=pr-link;return(l);void disp(PCB *
7、pr) /*建立进程显示函数,用于显示当前进程*/printf(n qname t state t super t ndtime t runtime n); printf(|%st,pr-name);printf(|%ct,pr-state); printf(|%dt,pr-super); printf(|%dt,pr-ntime); printf(|%dt,pr-rtime); printf(n);void check() /* */PCB* pr;printf(n * :%s,p-name); disp(p);pr=ready;printf(n *当前就绪队列状态为:n); /*显示就绪队
8、列状态*/ while(pr!=NULL)disp(pr); pr=pr-link;void destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/printf(n 进程 %s 已完成.n,p-name); free(p);void running() /* (*/(p-rtime)+;if(p-rtime=p-ntime) destroy(); /* destroy 函数else (p-super)-; p-state=w;sort(); /*调用 sort 函数*/void youxian()/ 高优先级优先算法的程序入口int len,h=0; char ch; system(cls); input(); len=space();while(len!=0)&(ready!=NULL)ch=getchar(); h+;printf(n The execute number:%d n,h); p=ready;ready=p-link; p-link=NULL; p-state=R;check(); running();printf(n 按任一键继续);printf(nn ch=getchar();void menu()/菜单int m;sy
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川乐山市沙湾区医疗卫生辅助岗招募7人笔试备考题库及答案详解
- 2026辽宁锦州市市属国有企业招聘双一流院校毕业生12人笔试备考题库及答案详解
- 2026辽宁沈阳药科大学高层次人才招聘30人(第二批)考试备考题库及答案详解
- 2025新奥集团春季校园招聘100人笔试历年参考题库附带答案详解
- 2025中国广播电视国际经济技术合作有限公司高校毕业生招聘笔试历年参考题库附带答案详解
- 小学六年级英语上册 Unit 4 I Have a Pen Pal 单元整体教学设计
- 初中九年级道德与法治学科“责任与角色共生”单元主题探究教学设计
- 小学四年级英语上册《Unit 5 Let's Go!Hit It Big!》第四课时教学设计
- 小学语文三年级上册《品味北大荒秋色·学习构段之妙》教学设计
- 初中八年级英语上册Unit 8“How do you make a banana milk shake”过程描述类写作深度教学设计与实施
- 2026年安宁市教育体育系统急需紧缺人才引进(68人)考试备考试题及答案详解
- 2026中国民用航空适航审定中心招聘事业单位40人笔试参考试题
- (2026)继续教育公需课必修课考试题与参考答案(完整版)
- ICU火灾应急预案演练脚本
- (2023版)冠状动脉微血管疾病诊断和治疗中国专家共识培训课件
- 2026科特迪瓦建筑材料市场供需分析与产业链优化
- 重力势能课件2025-2026学年高一下学期物理人教版必修第二册
- 2026年新疆维吾尔自治区克拉玛依市重点学校初一新生入学分班考试试题及答案
- 市政设施维护考试题及答案
- 2024合肥轨道交通社会招聘笔试真题及答题模板+答案
- 山东山东技师学院2025年度第一批招聘18人笔试历年参考题库附带答案详解(5卷)
评论
0/150
提交评论