📜  SRJF和LRJF CPU调度算法的区别(1)

📅  最后修改于: 2023-12-03 15:05:21.382000             🧑  作者: Mango

SRJF和LRJF CPU调度算法的区别

介绍

CPU调度算法是操作系统中非常重要的一部分,其作用是决定哪个进程可以使用CPU。SRJF和LRJF都属于基于时间片算法的非抢占式调度算法。

SRJF

SRJF,即Shortest Remaining Job First,是一种可实现的非抢占式调度算法。它将系统中所有未完成的进程按照剩余执行时间进行排序,优先选择剩余时间最短的进程来运行。如果当前进程的剩余时间比新进入的进程短,就将当前进程调度出去,将CPU分配给新进入的进程。

示例:

| 进程 | 到达时间 | 服务时间 | | ---- | -------- | -------- | | P1 | 0 | 3 | | P2 | 1 | 4 | | P3 | 2 | 1 |

假设在时刻0,P1进程进入系统。因为此时没有其他进程需要运行,CPU立即分配给P1。在时刻3,P1进程完成服务。此时,P2和P3已经到达系统,但是由于P3的服务时间最短,所以CPU会立即分配给P3。在时刻4,P3进程完成服务。此时,只剩下P2进程未完成,CPU会分配给P2。在时刻8,P2进程完成服务。整个进程的服务顺序为P1、P3、P2。

LRJF

LRJF,即Longest Remaining Job First,也是一种可实现的非抢占式调度算法。它与SRJF算法恰好相反:每次选择剩余时间最长的进程来运行。如果当前进程的剩余时间比新进入的进程长,就将当前进程调度出去,将CPU分配给新进入的进程。

示例:

| 进程 | 到达时间 | 服务时间 | | ---- | -------- | -------- | | P1 | 0 | 3 | | P2 | 1 | 4 | | P3 | 2 | 1 |

假设在时刻0,P1进程进入系统。因为此时没有其他进程需要运行,CPU立即分配给P1。在时刻3,P1进程完成服务。此时,P2和P3已经到达系统,但是由于P2的服务时间最长,所以CPU会立即分配给P2。在时刻7,P2进程完成服务。此时,只剩下P3进程未完成,CPU会分配给P3。在时刻8,P3进程完成服务。整个进程的服务顺序为P1、P2、P3。

区别
  • SRJF是选择剩余服务时间最短的进程执行,而LRJF则是选择剩余服务时间最长的进程执行。
  • SRJF倾向于短进程,而LRJF倾向于长进程。
  • SRJF比较容易实现,但是会造成长进程等待时间过长,影响系统吞吐量。而LRJF可以提高系统吞吐量,但是对短进程的响应较慢,可能会影响用户体验。
总结

SRJF和LRJF虽然都是非抢占式调度算法,但是它们有着明显的差异。选择哪种算法取决于具体情况,需要综合考虑进程的服务时间、到达时间等因素,才能得到更好的系统性能。