- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《操作系统原理》课程实践报告专 业计算机科学与技术 班 级计算机14-1 学 号123123姓 名123123指导教师陈 珂 完成时间2016.10.14 成 绩进程调度算法模拟一、设计目的编程实现进程调度的算法,更好地掌握操作系统的原理及实现方法,从而有利于把握进程调度细节。二、设计要求(1)要求实现先来先服务,短作业优先,时间片轮转,高优先权调度算法四种算法并进行对比分析.(2)要求界面简单,易懂,关键代码部分要注释.(3)编程语言可以采用自己任意精通的语言三、设计思想说明先来先服务:程序的执行调度顺序按先进入队列的先获得执行,并且其他进程都不能中断正在执行的进程,要等进程完成后才能,让出CPU给其他进程。执行的时候可以随时在队列中插入进程。短作业优先:进程的调度顺序按程序的服务时间来决定,进程的执行顺序。服务时间短的先被调用。调度时先从队列中选取服务时间最短的进程来执行。进程中途不能中断,即使此时队列中存在服务时间比其更短的进程,仍需要等待该进程执行完后才能被执行。高优先权调度:选取进程中优先级最高的一个,以优先级的值大,优先级就大。调度时总是选取队列中进程优先级最高的来执行,不管是否有某个进程在执行,只要存在比正在执行进程优先级高的进程,则就会立刻中断正在执行的进程,让给跟高优先级的进程。时间片轮转:本课程设计采用多级反馈队列调度算法,设立4个进程队列,分给队列1的时间片为3秒,队列2的时间片为6秒,队列3的时间片为12秒,队列4的时间片为24秒。队列1的优先级最高,队列4的优先级最低。高优先级的队列没执行完,即不为空,就永远不执行其下面的低优先级的队列里面的进程。当执行低优先级队列里面的进程时,突然间高优先级的队列插入了进程就立刻跳到高优先级的队列执行其里面的进程。每个队列的进程都是按先来先执行的顺序执行。进程初次执行肯定要进入队列1。如何从头到尾执行一遍队列1中的进程是,存在某些进程在队列1的时间片内还没执行完,就把进程移交到下一个队列中。每个队列都如此类推。直到最后一个队列4,如果在队列4还有进程在本时间片内还没没执行完,就把该程序放到队尾,从新等待时间片执行。四、算法流程1.算法流程图FCFS调度算法流程图 对各进程按到达时间进行排序挑选最先到达的程序一次性执行完判断是否所有进程都被调度是(2)SPJ调度算法流程图查找当前已经到达的最短进程调用该进程判断所有进程是否已经结束否是高优先权调度算法流程图所有进程按到达时间排序按优先级大小选定一个已到达的进程调度该进程至结束进程是否已经调度完毕否是(4)时间片轮转调度算法所有进程按到达时间排序按轮转顺序选定一个已到达的进程当前进程减去一个时间片单位否进程是否已经调度完毕是2.进程控制块PCB的设计进程控制块PCB是进程存在的唯一标志,主要包括进程的以下的信息:进程标识符、处理机状态、进程调度信息(进程状态、进程优先级、进程调度所需要的其他信息、事件)、进程的控制信息。 进程属性 变量名 数据类型进程名sNamechar进程状态iStatusint优先级 iPrivilegeint服务时间 iRunTimeint进程等待时间iWaitTimeint五、实现过程与结果1.先来先服务算法运行结果短进程优先算法运行结果3.髙相应比优先算法运行结果4.时间片轮转算法运行结果六、源程序#includestdio.h #includestring.h #includeiostream.h const int block_time=10; //定义时间片的长度为10秒 const int MAXPCB=100; //定义最大进程数 //定义进程结构体 typedef struct node{ char sName[20];//进程名int iStatus;//进程状态int iRunTime; //进程需运行的时间int iPrivilege; //进程的优先数int iFinished; //标志进程是否执行完成int iWaitTime; //进程的等待时间}pcb; pcb pcbs[MAXPCB]; int iPCBNum; void initPCB()//PCB初始化函数{ int i; for(i=0;iMAXPCB;i++){ strcpy(pcbs[i].sName,); pcbs[i].iStatus=0; pcbs[i].iRunTime=0; pcbs[i].iPrivilege=0; pcbs[i].iFinished=0; pcbs[i].iWaitTime=0; } //for
您可能关注的文档
- 执业药师中药学中药炮制汇总知识点详解.docx
- 抽油机相关总结2003必威体育精装版详解.doc
- 悦读与写作六详解.doc
- 怎样把抽象写具体详解.ppt
- 怎样成为一名优秀店长详解.pptx
- 怎样当好班组长详解.ppt
- 抓住特征合理想象续写故事详解.ppt
- 总裁办公室业务规定详解.doc
- 总复习(题目)详解.ppt
- 总复习专题---物质的分类、组成、命名详解.ppt
- 吉安县公开招聘专职文明实践员笔试备考试题及答案解析.docx
- 2025重庆枫叶国际学校招聘教师笔试备考试题及答案解析.docx
- 游机队电玩自制联网教程-tplink.pdf
- 2025重庆新华出版集团招聘1人笔试模拟试题及答案解析.docx
- 2025宜宾高新丽雅城市产业发展有限公司公开招聘笔试模拟试题及答案解析.docx
- 2025云南保山市龙陵县勐糯镇人民政府招聘合同制专职消防员1人笔试模拟试题及答案解析.docx
- 11.1生活中常见的盐 九年级化学人教版下册.pptx
- 6.1法律保护下的婚姻 高二政治《法律与生活》课件(统编版选择性必修2)(新版).pptx
- 文昌市中小学教师校园招聘29人笔试模拟试题及答案解析.docx
- 10.1.5 常见的酸和碱(第5课时)课件-九年级化学人教版下册.pptx
文档评论(0)