1、进程调度的任务是控制协调进程对CPU的竞争即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的进程
2、确定算法的原则
2.1、具有公平性
2.2、资源利用率高
2.3、在交互式系统情况下要追求响应时间(越短越好)
2.4、在批处理系统情况下要追求系统吞吐量
3、各种进程调度算法
3.1、先进先出调度算法(FIFO)
按照进程就绪的先后次序来调度进程
优点:实现简单
缺点:没考虑进程的优先级
3.2、基于优先数的调度(HPF)
优先选择就绪队列中优先级最高的进程投入运行,优先级根据优先数来决定
4、确定优先数的方法
4.1、静态优先数法
在进程创建时指定优先数,在进程运行时优先数不变
4.2、动态优先数法
在进程创建时创立一个优先数,但在其生命周期内优先数可以动态变化。
5、两种占用CPU的方式
5.1、可剥夺式(可抢占式)
当有比正在运行的进程优先级更高的进程就绪时,系统可强行剥夺正在运行进程的CPU,提供给具有更高优先级的进程使用
5.2、不可剥夺式(不可抢占式)
某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去
6、时间片轮转程序调度算法(RR)
把CPU划分成若干时间片,并且按顺序赋给就绪队列中的每一个进程,进程轮流占有CPU,当时间片用完时,即使进程未执行完毕,系统也剥夺该进程的CPU,将该进程排在就绪队列末尾。
7、时间片选择问题:固定时间片,可变时间片
8、与时间片大小有关的因素: 系统响应时间,就绪进程个数,CPU能力
9、多队列反馈调度算法
将就绪队列分为N级,每个就绪队列分配给不同的时间片,队列级别越高,时间越长,级别越小,时间片越小,最后一级采用时间片轮转,其他队列采用先进先出;系统从第一级调度,当第一级为空时,系统转向第二个队列,...,当运行进程用完一个时间片,放弃CPU时,进入下一级队列;等待进程被唤醒时,进入原来的就绪队列;当进程第一次就绪时,进入第一级队列
10、进程调度的时机
10.1、当一个进程运行完毕,或由于某种错误而终止运行
10.2、当一个进程在运行中处于等待状态(等 待I/O)
10.3、分时系统中时间片到
10.4、当有一个优先级更高的进程就绪(可抢 占式)
10.5、在进程通信中,执行中的进程执行了某 种原语操作(P操作,阻塞原语,唤醒原语 )