进程调度算法与死锁
进程调度算法
先来先服务算法
每次调度都是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机。
短作业(进程)优先调度算法
以作业或进程执行时间的长短来计算优先级,所需时间越少,优先级越高。
缺点:
a. 必须预知作业的运行时间;
b. 对长作业不利;
c. 人机无法交互;
d. 未考虑作业的紧迫程度。
高优先权调度算法
基于作业的紧迫程度,由外部赋予进程相应的优先级。可以保证紧迫的作业优先运行。
非抢占式调度算法
抢占式调度算法
优先级的类型
静态优先级
动态优先级
高响应比优先调度算法
高响应比优先调度算法,同时考虑了进程的等待时间和进程的执行时间。
优先权 = (等待时间 + 要求服务时间) / 要求服务时间
由于进程的等待时间和服务时间之和就是响应时间,故优先级又相当于响应比:
Rp = (等待时间 + 要求服务时间) / 要求服务时间 = 相应时间 / 要求服务时间
时间片轮转算法
就绪队列中的每次进程每次仅运行一个时间片。
当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一给定的时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定的时间内响应所有用户的请求。</