进程调度模拟程序课程设计

进程调度模拟程序课程设计

ID:47484729

大小:438.21 KB

页数:19页

时间:2020-01-12

进程调度模拟程序课程设计_第1页
进程调度模拟程序课程设计_第2页
进程调度模拟程序课程设计_第3页
进程调度模拟程序课程设计_第4页
进程调度模拟程序课程设计_第5页
资源描述:

《进程调度模拟程序课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《操作系统》课程设计报告专业:计算机科学与技术班级:09计本班学号姓名成绩200981010118刘利刚题目名称:进程调度模拟程序完成日期:2012年6月20日甘肃政法学院计算机科学学院目录第一章课程设计目的3第二章课程设计要求3第三章设计思想43.1基本概念43.2进程控制块53.3算法思想5第四章详细设计64.1程序设计流程图64.2程序各模块功能介绍6第五章运行结果及分析145.1程序调试145.2运行结果155.3结果分析17第六章总结17参考文献18进程调度模拟程序第一章课程设计目的深入掌握进程调度的概念原理和实现方法,

2、理解操作系统进程管理中进行进程调度的过程和编程方法,掌握先来先服务调度算法和最高优先数优先的调度算法,创建进程控制块PCB。理解进程的状态及变化,动态显示每个进程的当前状态及进程的调度情况。进程调度是处理机管理的核心内容。本次课程设计用C语言编写模拟进程调度程序,以便加深理解有关进程控制快、进程队列等概念,并体会最高优先数优先与按时间片轮转调度结合算法的优缺点。第二章课程设计要求编写一个进程调度程序,允许多个进程并行执行。1、进程调度算法:采用最高优先数优先与按时间片轮转调度结合算法。2、每个进程有一个进程控制块(PCB)表示。进

3、程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。3、进程的优先数及需要的运行时间可在运行时输入,进程的到达时间为输入进程的时间。4、进程的运行时间以时间片为单位进行计算。5、每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。6、就绪进程获得CPU后都只能运行一个时间片。7、如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续

4、运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。8、每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。第三章设计思想3.1基本概念优先级调度算法:按照进程的优先级大小来调度。使高优先级进程或线程得到优先的处理的调度策略称为优先级调度算法。进程的优先级可以由系统自动地按一定原则赋给它,也可由系统外部来进行安排。本次课程设计是自己给定进程的优先级。但在许多采用优先级调度的系统中,通常采用动态优先数策略。即一个进程的优先级不是固定的,往

5、往是随许多因素的变化而变化。尤其随作业(进程)的等待时间,已使用的处理器时间或其他系统资源的使用情况而定,以防止低优先级进程或线程长期饥饿现象发生时间片轮转算法:时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。时间片轮转算法主要用于处理器调度。采用

6、此算法的系统,其进程就绪队列往往按进程到达的时间来排序。进程调度程序总是选择就绪队列中的第一个进程,也就是说按照先进先出原则调度,但一旦进程占有处理器仅使用一个时间片,在使用完一个时间片后,进程还没有完成其运行,它也必须释放出(被抢占)处理器给下一个就绪的进程。而被抢占的进程返回到就绪队列的末尾重新排队等候再次运行。进程调度程序选择一个就绪状态的进程,使之在处理器上运行,每个进程的状态信息用数据结构(进程控制块PCB)表示,进程的调度采用最高优先数优先和按时间片轮转相结合的调度算法,并且采用动态优先数策略,选择进程占用处理器后该进

7、程仅能使用一个时间片,运行完后优先数减1。进程的状态:运行状态R(Run):进程正在处理器上运行。就绪状态W(Wait):一个进程获得了除处理器外的一切所需资源,一旦得到处理器即可运行。完成状态F(Finish):一个进程一旦完成,就停止运行。3.2进程控制块描述进程的状态信息,用结构体定义typedefstructprocess{charname[10];//进程名intpriority;//优先数TimeReachTime;//到达时间TimeNeedTime;//需要运行时间TimeUsedTime;//已用时间charst

8、ate;//进程状态}PCB;//进程控制块进程调度模拟程序进程调入AddProcess()函数打印进程print()函数进程调度attemper()函数选择操作face()函数进程优先级排序sort()函数图1进程调度模拟程序模块图3.3算法思想

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。