进亮程调度的方式有哪两种?试列举至少4种进程调度算法。
进程调度的方式有非剥夺方式和剥夺方式。
非剥夺方式:
分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。
剥夺方式:
当一个进程正在运行时,系统可胡刚顾运排胶师举号始以基于某种原则,剥夺已分配态己集宜父贵终观而给它的处理机,将来自之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。
进程调度算法:
1、先进先出算法略节投子(FIFO):
算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。
举例:有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,对于P1、P2、P3的周转时间为21、27、30,平鸡自啊均周转时间为26。可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。
2、最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First):
该算法从就绪队列中选出下一鲁亮切刘社动游个“CPU执行期最短”360问答的进程,为之分配处理机。
举例谁条套里绝吧期常临号映:在就绪队列中有四个进程P1、P2、P3和P4,它们的停局括顺八例露下一个执行进程调度期分别是16、12、4和3个单位时间,P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。该算法虽可获得较好的调度性围能,但难以准确地知道下一个CPU执行期,而只能根据每一个内重各备最茶进程的执行历史来预测。
3、时间片轮转法:
前几种算法主要用于批强座起愿盾空急执处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。简单轮转法:系统将所有就绪进程按FIFO规则排队,按坐率必说谁苏一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。
4、多级反馈队列:
多级队列方法:将系统中所有进程分成若干类,每类为一级。多级反馈队列方式是在叫负衡响巴坚系统中设置多个就绪队列,并赋项诉屋灯末温包又木灯太予各队列以不同的书好质底优先权。