1、 操作系统课程设计操作系统课程设计 进程调度模拟进程调度模拟 班级:班级: 计算机科学与技术三班计算机科学与技术三班 学号:学号: 1 一、一、实验要求实验要求 编写一个进程调度程序,允许多个进程共行的进程调度程序。编写一个进程调度程序,允许多个进程共行的进程调度程序。 采用最高优先级数优先的调度算法(即把处理机分配给优先数最高的进程)采用最高优先级数优先的调度算法(即把处理机分配给优先数最高的进程) 和先来先服务算法。和先来先服务算法。 每个进程用一个进程控制块(每个进程用一个进程控制块( PCBPCB)表示。进程控制块可以包含如下信息:)表示。进程控制块可以包含如下信息: 进程名、优先数、
2、到达时间、需要运行时间、已用进程名、优先数、到达时间、需要运行时间、已用 CPCPU U 时间、进程状态等等。时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产 生) 。进程的到达时间为输入进程的时间。生) 。进程的到达时间为输入进程的时间。 进程的运行时间以时间片为单位进行计算。进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪每个进程的状态可以是就绪 W W(WaitWait) 、运行) 、运行 R R(RunRun) 、或完成) 、或完成 F F(FinishFinish)
3、三种状态之一。三种状态之一。 就绪进程获得就绪进程获得 CPUCPU 后都只能运行一个时间片。用已占用后都只能运行一个时间片。用已占用 CPUCPU 时间加时间加 1 1 来表来表 示。示。 如果运行一个时间片后, 进程的已占用如果运行一个时间片后, 进程的已占用 CPUCPU 时间已达到所需要的运行时间,时间已达到所需要的运行时间, 则撤消该进程,如果运行一个时间片后进程的已占用则撤消该进程,如果运行一个时间片后进程的已占用 CPUCPU 时间还未达所需要的时间还未达所需要的 运行运行时间,也就是进程还需要继续运行,此时应将进程的优先数减时间,也就是进程还需要继续运行,此时应将进程的优先数减
4、 1 1(即降低一(即降低一 级) ,然后把它插入就绪队列等待级) ,然后把它插入就绪队列等待 CPUCPU。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCBPCB,以便进行检查。,以便进行检查。 重复以上过程,直到所有进程都完成为止。重复以上过程,直到所有进程都完成为止。 二、二、设计思路设计思路 本程序用两种算法(最高优先级数优先的调度算法和先来先服务算法)对本程序用两种算法(最高优先级数优先的调度算法和先来先服务算法)对 多个进程进行调度,每个进程有三个状态,初始状态为就绪状态。多个进程进行调度,每个进程有三个状态,初始状态为就绪状态。 最高优先级数优先的调度算法中,程序的某进程运行时间以时间片为单位最高优先级数优先的调度算法中,程序的某进程运行时间以时间片为单位 计算。各进程的优先数或轮转时间数以及进程需运行计算。各进程的优先数或轮转时间数以及进程需运行的时间片数的初始值均由的时间片数的初始值均由