- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实习一处理器调度
实习内容
选择一个调度算法,实现处理器调度。
实习目的
本实习模拟在单处理器环境下的处理器调度,加深了解处理器调度的工作。
实习题目
设计一个按优先数调度算法实现处理器调度的程序。
设计思想
设计思路
⑴假定系统有5个进程,每个进程用一个PCB来代表。
开始运行之前,为每个进程确定它的“优先数”和“要求运行时间”。通过键盘输入 这些参数c
按进程优先数排列进程,优先数最大的进程插入队首,否者比较进程优先数,插入 适当位置。
处理器总是选择队首进程运行。釆用动态改变优先数的办法,进程每运行1次,优 先数减1,要求运行时间减1。
进程运行一次后,若要求运行时间不等于0,则将它加入就绪队列,否则,将状态 改为“结束,退出就绪队列。
若就绪队列为空,结束,否则转到(4)重复。
主要数据结构
struct pcb { /*定义进程控制块PCB *1
char namef 10]; 程名*/
char state; /*状态,/
int super; /*优先数*/
int nlime; /*要求运行时间*/
ini rtime; /*周转时间*/
struct pcb* link; /*下一个进程pcb首地址*/
)
主要代码结构及代码段分析
void inputo /*建立进程控制块函数*/
( int i ,niim;
systemCcls); /*清屏*/
for( i=l;i=5;i++)
{ printfCVn projectNo.%d:\n,i);
P=getpch(PCB);
printf(\n please input project name:);
scanf(%s,p-name);
prinlf(\n please input project priority:);
scanf(%d,p-super);
printf(\n please input project running time:);
scanf(%d,p-ntime);
prinlf(\n);
p-rlime=O;p-state=,W,;
P-1 ink=NULI.;
sort(); /* 调用 sort 函数*/
}
}
void sort() /*建立对进程进行优先级排列函数
{
PCB *first, *second;
ini insert=0;
i f((ready=NULL) 11((p-super)(ready-super))) /*优先级最大者,插入队首*/
{
p-link=ready;
ready=p;
}
else /*进程比较优先级,插入适当的位置中*/
(
first=ready;
second=fi rst-link;
while(second!=NULL)
{
if((p-super)(second-suPer)) /*若插入进程比当前进程优先数大插入到当前进程前面*/
{
p-link=second;
first-link=p;
second=NUIL;
insert=l;
}
else /*插入进程优先数最低.则插入到队尾*/
(
first=first-link;
second=second-link;
}
}
if(insert=0) first-link=p;
int space()/*求队列长度*/
int 1=0;
PCB* pr=ready;
while(pr!=NULL)
(1卄;
pr=pr-link;
}
return(l);
)
void disp(PCB * pr)尸建立进程显示函数,用于显示当前进程*/
{
print f(,r\n proname\t state\t\l priori ty\t needt ime\t remainlimen);
prin[f(I %s\t\t,pr-name);
printfCl %c\l\t,pr-slate);
printffI %d\t\t,pr-super);
printf( I %d\t\t,,pr-ntime);
printfCl %d\l\t,pr-rlime);
printf(\n);
}
void check。/*建立进程査看函数*/
{
PCB* pr;
printf(\n **** the running project is:\n); /*显示当前运行进程*/
disp(p);
pr=ready;
printf(\n **** the ready project state is:\n); /*显示就绪队列状态*/
while(pr!=NULL)
(
disp(pr);
pr=pr-link;
}
)
void destroyO /*建立进程撤消函数(进程运行结束,撤消进程)*/
{ printf(\n project囹s
您可能关注的文档
- 全国抗击疫情表彰大会观后感悟10篇.docx
- 全市商贸和成品油安全专项整治三年行动实施方案材料.docx
- 石峁古城性质再认识.docx
- 庆祝建国71周年活动心得作文5篇.docx
- 庆祝建国71周年活动心得作文.docx
- 勤俭节约主题班会心得体会与感悟5篇_1.docx
- 全国中小企业股份转让系统挂牌公司信息披露指引--教育公司.docx
- 亲清营商环境工作总结汇报.docx
- 区域代理协议(完整版).docx
- 十九届四中全会精神心得体会与感悟四篇.docx
- 实验室建设及安全管理,安全实验室建设规范有哪些.docx
- 实验室病原微生物危害评估报告材料带模板材料(精品多篇).docx
- 人民至上心得体会与感悟十篇.docx
- 陕西聚新节能科技有限公司年产18万吨优质岩棉生产线建设项目竣工环境保护验收监测报告材料表.docx
- 商业楼框架剪力墙结构工程安全施工组织设计可编辑.docx
- 陕西未来能源化工有限公司煤制油分公司合成车间一二级过滤器放空高效分离器技术规格书.docx
- 生物有机肥料产业化技术开发与应用项目竣工环境保护验收监测报告材料表.docx
- 全域旅游讲话汇报调研报告材料汇编.docx
- 山体植被恢复项目绿化工程施工组织设计.docx
- 省内国道改建工程施工组织.docx
原创力文档


文档评论(0)