进程调度算法实验报告提问与答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
进程调度算法实验报告提问与答案   __成绩:________   武汉科技大学城市学院《操作系统》实验报告   院系_信息工程__学生专业__信科___年级班___大三___课程名称_操作系统_实验题目___处理机调度_学生姓名___宋骋___指导教师__郭冀生__   XX年11月20日   一、实验目的   进程调度是操作系统最重要的概念之一,是操作系统核心内容。调度算法好坏将直接影响操作系统的性能。本实验可以加深对进程调度和各种调度算法的理解。要求到达的进程数、各进程到达的时间可以任意选择。通过实验,求出平均周转时间和加权均周转时间。二、实验内容及要求   三、实验原理及步骤   将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务(驻留时间最长)的方式进行调度处理。   ?对于作业调度:该算法就是从后备作业队列中选择队首一个或几个作业,调入内存,创建进程,放入就绪队列。?对于进程调度:该算法就是从就绪队列中选择一个最先进入队列的进程,将CPU分配于它。   步骤   四、源程序代码:   #includestructfcfs{charname[10];   floatarrivetime;   floatservicetime;floatstarttime;floatfinishtime;floatzztime;floatdqzztime;floatpzztime;floatpdqzztime;};   fcfsa[100];   voidinput(fcfs*p,intN)   {inti;printf(intputtheprocesssnamearrivetimeservicetime:\nforexmple:a0100\n);for(i=0;i%s,p[k].name);}printf(\ntheprocesssinformation:\n);printf(\nname\tarrive\tservice\tstart\tfinish\tzz\tdqzz\tpzztime\tpdqzztime\n);   for(k=0;k   classPCB//PCB类,包含time、range、state、next指针{   public:voidIn(char*n,intt,intr);PCB(){}PCB(PCB*p)//复制PCB{strcpy(name,p-name);next=p-next;time=p-time;range=p-range;state=p-state;}voidRed()//模拟进程运行状态{   time--;range--;if(!time)state=0;}voidprint()//输出当前PCB内容{cout进程调度算法实验报告提问与答案)名称PCB*next;//用于链表的指针inttime;//用于记录进程运行时间intrange;//用于记录优先值intstate;//用于判断该进程是否运行结束};   voidPCB::In(char*n,intt,intr)//初始化PDB对象{strcpy(name,n);time=t;range=r;next=NULL;if(t0)state=1;elsestate=0;}   voidPri_Li(PCB*head)//用于输出每一次运行的结果{if(head){coutnext)coutnamestate)//当该对象为新进程是,插入队列{   if(!num){head=p;(head)-next=NULL;}else{PCB*tp=head;PCB*tp2=head;for(;num0;num--){if(p-rangetp-rangeii==num)//位于头部插入{p-next=head;head=p;break;}elseif(p-rangetp-range)//位于中间插入{p-next=tp;tp2-next=p;break;}else{tp2=tp;tp=tp-next;}}if(!num!tp)//位于尾部插入{tp2-next=p;}}}else//当该对象是已完成进程时,从队列中除去{PCB*tp=head;inttem=num;for(PCB*tp2=tp;num0;num--,tp=tp-next){   进程调度算法的设计   一、实验题目:   实现先来先服务调度算法   实现时间片轮转调度算法   二、实验目的:   通过对进程调度算法的设计,深入理解进程调度的原理。   进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。   进程调度分配处理机,是控制协调进程对CPU的竞争,即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的

文档评论(0)

mmrs369 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档