网站大量收购独家精品文档,联系QQ:2885784924

实验一处理机调度.pdfVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验一处理机调度

一.实验目的

多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。

本实验模拟实现处理机调度,以加深了解处理机调度的工作。

二.实验内容

选择一个调度算法,实现处理机调度。

1.设计一个按优先权调度算法实现处理机调度的程序。

2.设计按时间片轮转实现处理机调度的程序。

三.实验要求

要求:

进程名/PID

要求运行时间(单位时间)

优先权

状态

PCB指针

1、可随机输入若干进程,并按优先权排序;

2、从就绪队列首选进程运行:优先权-1,要求运行时间-1,

要求运行时间=0时,撤销该进程。

3、重新排序,进行下轮调度。

4、最好采用图形界面。

5、可以随时增加进程。

6、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备队列

调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队

列。

7、每次调度后,显示各进程状态。

四.实验过程

#includeiostream.h

#includestdio.h

#includeconio.h

enumPCBSTATE{READY,RUN,FINISH};//定义进程状态的数据类型

typedefstructPCB_Struct{//定义进程控制块

charName[8];//进程名

intPriority;//优先数

doubleWorkTime;//已运行的时间

doubleNeedTime;//还需运行时间

doubleWaitTime;//进程总共花费时间

PCBSTATEState;//进程状态

PCB_Struct*Next;//指针

}PCB;

boolRunOk;

PCB*ReadyList;//声明就绪链表

PCB*FinishList;//声明完成链表

PCB*RearReady;//声明就绪监听队列

PCB*RearFinish;//声明完成监听队列

PCB*CurrentRun;//声明当前运行队列

voidAdjustProcessList(PCB*Insert)//调整进程队列

{

PCB*tmp,*Parent;//定义线程

tmp=ReadyList;//把临时线程加入就绪链表

if(tmp-PriorityInsert-Priority)//比较优先级安排链表序

{

ReadyList=Insert;

Insert-Next=tmp;

}

else

{

Parent=tmp;

while(tmp)

{

if(tmp-Priority=Insert-Priority)

{

Parent=tmp;

tmp=tmp-Next;

}

else

break;

}

if(!tmp)

{

RearReady-Next=Insert;

RearReady=Insert;

}

文档评论(0)

156****6092 + 关注
实名认证
文档贡献者

博士研究生

1亿VIP精品文档

相关文档