操作系统课程设计报告 进程调度算法.docxVIP

操作系统课程设计报告 进程调度算法.docx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共23页,可阅读全部内容。
  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文档。上传文档
查看更多
操作系统课程设计报告 题 目:— 进程调度算法 Minix操作系统实践 姓 名:— ********* 学 Be ********* 专 业: 计算机科学与技术 指导教师: ***** PAGE PAGE # 实验一 实验目的 通过优先权法和轮转算法的摹拟加深对进程概念和进程调度过程的理解,掌 握进程状态之间的切换,同时掌握进程调度算法的实现方法和技巧。 实验内容 用C++语言来实现对n个进程采用优先权优先算法以及轮转算法的进程 调度。 每一个用来标识进程的进程控制块PCB用结构来描述,包括以下字段: (1) 进程标识ID,其中0为漫步进程,用户进程的标识数为1, 2, 3...O (2) 进程优先级Pnonty,漫步进程(idle)的优先级为0,用户进程的优先 级大于0,且随机产生,标识数越大,优先级越高。 (3) 进程占用的CPU时间CPUtmie.进程每运行一次,累计值等于4。 (4) 进程总共需要运行时间Alltiuie,利用随机函数产生。 C5)进程状态,。一就绪态;1 一运行态;2—阻塞态。 :6)队列指针next,用来将多个进程控制块PCB链接为队列。 优先数改变的原则 (1) 进程在就绪队列中每呆一个时间片,优先数增加1° (2) 进程每运行一个时间片,优先数減3。 在调度前,系统中拥有的进程数PCB_iiumbei由键盘输入,经初始化后, 所有的进程控制块PCB链接成就绪队列。 为了清晰地观察诸进程的调度过程,程序应将每一个时间片内的进程的情 况显示岀来, 实验步骤 ■进程调度的思想 U)当系统空暇(就绪队列为空)时,系统运行漫步进程,否则运行其他 进程,发生变迁1 (就绪一运行)。 (2)在运行进程(包括漫步进程)的过程中,可能发生变迁2 (运行一阻 塞),即将运行进程插入到阻塞队列(漫步进程不能被阻塞),可能有其他新的进 程创建PCB,还可能唤醒阻塞队列中的某些进程PCB,发生变迁3(阻塞f就绪), 即从阻塞队列中移出弁插入就绪队列中。 (3)时间片运行结束后,若进程累计占用CPU时间大于等于进程需要运行 的时间,则进程执行结束,释放其PCB。若进程累计占用CPU时间小于进程需 要运行时间,发生变迁4 (运行一就绪),即将当前运行的进程插入就绪队列中。 .程序流程图 1.动态优先权的进程调度算法摹拟流程 PAGE PAGE # 2.轮转法进程调度算法摹拟流程 程序代码 /*以下程序在C++环境调试通过*/ #define NULL 0 ^include stdio.h ^include stdlib.h #includeiostieain using namespace std; 产以下仅列岀动态优先权的进程调度算法摹拟 /*进程PCB结构*/ struct Pcb intID;//进程标识ID,其中0为漫步进程,用户进程的标识数为1, 2, 3… int priority;//进程优先级Pnonty>漫步进程(idle)的优先级为0.用户进程的优先级大 于0,旦随机产生,标识数越大,优先级越高。 intCPUtime;〃进程占用的CPU时冋CPUtime,进程每运行一次,累计值等于4 iiit ALL time;//进程总共需要运行时间Alltiuie intSlate;〃进程状态,0—就绪态;1 一运行态;2—阻塞态° stmct Pcb *next;〃队列指针next,用来将多个进程控制块PCB链接为队列 typed stmct Pcb PCB; 盛产生idle进程,输入用户进程数目,调用inseitQ*/ /*输出进程属性信息*/ 卄输岀所有PCB的初始值*/ 户动态优先权调试算法将mm插入到队列中, void uut(); void priiit(PCB *pcb); void piiiit_uiit(PCB *pcb); void msert_queue(PCB *queue,PCB 使得插入后,队列中按照优先级从高到低有序*/ void insert_queue 1 (PCB *queueJCB /*轮转法将 item 插入到队列末尾*7 void pushback_queue(PCB *queue.PCB /*将 Hem 插入到队列的尾部 void insert(); 绪队列*/ void insenlQ; 列*/ void nm(PCB *pcb); 醒阻塞进程*/ void nml(PCB *pcb); void block(PCB *pcb); void wakeupQ; void wakeup IQ; void proc_prioiityO; void proc_loop(); void update(PCB *pcb); PCB *ready.queue

文档评论(0)

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

大部分作品为个人原创作品,部分作品整理于网络,旨方便供大家学习和参考,版权属原创作者所有,如有侵权,请联系删除。

1亿VIP精品文档

相关文档