操作系统实验
实验三 进程调度
学号 姓名 班级
华侨大学电子工程系
一、实验目的
1、理解有关进程控制块、进程队列的概念。
2、掌握进程优先权调度算法和时间片轮转调度算法的处理逻辑。
二、实验内容与基本要求
1、设计进程控制块PCB的结构,分别适用于优先权调度算法和时间片轮转
调度算法。 2、建立进程就绪队列。
3、编制两种进程调度算法:优先权调度算法和时间片轮转调度算法。
三、 优先权调度算法和时间片轮转调度算法原理
优先级调度算法细分成如下两种方式:
非抢占式优先级算法:
在这种调度方式下,系统一旦把处理机分配给就绪队列中优先级最高的进程后,该进程就能一直执行下去,直至完成;或因等待某事件的发生使该进程不得不放弃处理机时,系统才能将处理机分配给另一个优先级高的就绪进程。
抢占式优先级调度算法
在这种调度方式下,进程调度程序把处理机分配给当时优先级最高的就绪进程,使之执行。一旦出现了另一个优先级更高的就绪进程时,进程调度程序就停止正在执行的进程,将处理机分配给新出现的优先级最高的就绪进程。
在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片.时间片的大小从几ms到几百ms.当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片.这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间。
对于时间片轮转法,时间片大小的确定是很重要的。一般可根据以下三点确定时间片大小:
1.系统对响应时间的要求 2.就绪队列中进程的数目 3.系统的处理能力
四、 程序流程图 1、 总流程图
输入进程数目创建进程就绪队列链表让用户依次输入各进程名、开始时间、运行时间、优先级打印创建后的进程链表,以便用户查看算法类型选择界面1、先来先服务算法2.时间片轮转算法3.优先级算法4、退出
2、时间片轮转算法流程图
在进入本算法前,已输入就绪队列及时间片值是判断进程就绪队列是否为空否剩余运行时间是否为0?否剩余运行时间是否大于时间片是否执行该进程,并将其剩余运行时间置0,将该进程的剩余运行时间置为原剩余运行时间与时间片timeturn的差完成标志位time2自加一就绪队列首进程移位否time2是否等于输入的进程数n是算法结束,返回算法选择界面
3、优先级算法流程图 采用非抢占式优先级算法。
输入就绪队列各进程PCB的参数,如进程名、到达时间等就绪队列是否为null是否将就绪队列链表按优先级排序就绪队列移位,队首变为优先级次高的进程执行就绪队列队首的进程直至完成将完成的进程移出就绪队列否就绪队列是否为空是算法结束,返回算法选择界面