1、 操作系统操作系统课程设计报告课程设计报告 专业: 计算机科学与技术 班级: 09 计本班 学 号 姓 名 成绩 题目名称: 进程调度模拟程序 完成日期: 2012 年 6 月 20 日 目目 录录 第一章 课程设计目的. 3 第二章 课程设计要求. 3 第三章 设计思想. 4 3.1 基本概念 4 3.2 进程控制块 5 3.3 算法思想 5 第四章 详细设计. 6 4.1 程序设计流程图 6 4.2 程序各模块功能介绍 7 第五章 运行结果及分析 14 5.1 程序调试 . 14 5.2 运行结果 . 15 5.3 结果分析 . 17 第六章 总结 17 参考文献. 18 进程调度模拟程序
2、进程调度模拟程序 第一章第一章 课程设计目的课程设计目的 深入掌握进程调度的概念原理和实现方法, 理解操作系统进程管理中进行进 程调度的过程和编程方法, 掌握先来先服务调度算法和最高优先数优先的调度算 法,创建进程控制块 PCB。理解进程的状态及变化,动态显示每个进程的当前状 态及进程的调度情况。进程调度是处理机管理的核心内容。本次课程设计用 C 语言编写模拟进程调度程序,以便加深理解有关进程控制快、进程队列等概念, 并体会最高优先数优先与按时间片轮转调度结合算法的优缺点。 第二章第二章 课程设计要求课程设计要求 编写一个进程调度程序,允许多个进程并行执行。 1、进程调度算法:采用最高优先数优
3、先与按时间片轮转调度结合算法。 2、 每个进程有一个进程控制块 (PCB) 表示。进程控制块可以包含如下信息: 进程名、优先数、到达时间、需要运行时间、已用 CPU 时间、进程状态等等。 3、进程的优先数及需要的运行时间可在运行时输入,进程的到达时间为输 入进程的时间。 4、进程的运行时间以时间片为单位进行计算。 5、 每个进程的状态可以是就绪 W (Wait) 、运行 R (Run) 、或完成 F (Finish) 三种状态之一。 6、就绪进程获得 CPU 后都只能运行一个时间片。 7、如果运行一个时间片后,进程的已占用 CPU 时间已达到所需要的运行时 间,则撤消该进程,如果运行一个时间片
4、后进程的已占用 CPU 时间还未达所需要 的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减 1(即降低 一级) ,然后把它插入就绪队列等待 CPU。 8、每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。 第三章第三章 设计思想设计思想 3.1 3.1 基本概念基本概念 优先级调度算法:按照进程的优先级大小来调度。使高优先级进程或线程得 到优先的处理的调度策略称为优先级调度算法。 进程的优先级可以由系统自动地 按一定原则赋给它,也可由系统外部来进行安排。本次课程设计是自己给定进程 的优先级。 但在许多采用优
5、先级调度的系统中,通常采用动态优先数策略。即一个进程 的优先级不是固定的,往往是随许多因素的变化而变化。尤其随作业(进程)的 等待时间,已使用的处理器时间或其他系统资源的使用情况而定, 以防止低优先 级进程或线程长期饥饿现象发生 时间片轮转算法: 时间片轮转调度是一种最古老,最简单,最公平且使用 最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运 行的时间。如果在时间片结束时进程还在运行,则 CPU 将被剥夺并分配给另一个 进程。如果进程在时间片结束前阻塞或结束,则 CPU 当即进行切换。调度程序所 要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的 末尾
6、。时间片轮转算法主要用于处理器调度。采用此算法的系统,其进程就绪队 列往往按进程到达的时间来排序。 进程调度程序总是选择就绪队列中的第一个进 程, 也就是说按照先进先出原则调度, 但一旦进程占有处理器仅使用一个时间片, 在使用完一个时间片后,进程还没有完成其运行,它也必须释放出(被抢占)处 理器给下一个就绪的进程。 而被抢占的进程返回到就绪队列的末尾重新排队等候 再次运行。 进程调度程序选择一个就绪状态的进程,使之在处理器上运行,每个进程的 状态信息用数据结构(进程控制块 PCB)表示,进程的调度采用最高优先数优先 和按时间片轮转相结合的调度算法,并且采用动态优先数策略,选择进程占用处 理器后该进程仅能使用一个时间片,运行完后优先数减 1。 进程的状态: 运行状态 R(Run) :进程正在处理器上运行。 就绪状态 W(Wait) :一个进程获得了除处理器外的一切所需资源,一旦得到处 理器即可运行。 完成状态 F(Finish) :一个进程一旦完成,就停止运行。 3.2 3.2 进程控制块进程控制块 描述进程的状态信息,用结构体定义 typedef