PPT 上关于进程状态的四种状态是对操作系统中进程状态的一种抽象和简化。书本上的描述可能更加详尽和精细,涉及更多的状态和过渡。以下是对 PPT 上四种状态的解释,这些状态一般包括:New(新建)、Ready(就绪)、Running(运行)、Blocked(阻塞)。
-
New(新建):
- 描述了进程刚创建时的状态。此时,进程已经被分配了进程控制块(PCB)和必要的资源,但尚未准备好开始执行。
-
Ready(就绪):
- 这是进程处于等待 CPU 分配的状态。进程在此状态下已经具备运行所需的所有条件,只是因为 CPU 忙碌而暂时未能获得运行的机会。在你提到的 PPT 上,或者有的文献中,这个状态可能更细分为 Ready 和 Ready Suspended(就绪挂起)。
-
Running(运行):
- 在此状态下,进程正在 CPU 上执行。操作系统将进程调度到 CPU 上,使之占有 CPU 进行处理。在单处理器系统中,同一时间只有一个进程可以处于运行状态。
-
Blocked(阻塞):
- 进程在等待某些特定事件(如 I/O 操作完成或资源可用)时会进入阻塞状态。处于阻塞状态的进程不占用 CPU 资源,只有当等待的事件发生时,进程才会重新进入就绪状态。
区别与理解:
- 书上描述可能将 Blocked 状态进一步细分,例如 Waiting(等待)和 Suspended(挂起),以更详细地说明进程在等待资源时的不同情形。
- PPT 上的简化方式有助于快速理解和记忆,但需要结合书本上更详细的描述来全面理解进程状态的各种过渡和细节。
进程状态转换图
通常,这些状态和它们之间的转换关系可以用一个状态转换图来说明:
-
从创建(New)到就绪(Ready):
- 当进程创建完成后,资源分配完毕,将进入就绪状态,等待 CPU 分配。
-
从就绪(Ready)到运行(Running):
- 当调度器选择一个就绪进程并将 CPU 分配给它,该进程进入运行状态。
-
从运行(Running)到阻塞(Blocked):
- 如果运行中的进程需要等待某个事件(例如 I/O 操作),它将进入阻塞状态。
-
从阻塞(Blocked)到就绪(Ready):
- 当阻塞事件完成(例如 I/O 操作完成),阻塞的进程将重新进入就绪状态,等待 CPU 分配。
-
从运行(Running)到就绪(Ready):
- 如果发生时间片用完或操作系统需要进行上下文切换,运行中的进程可能会被暂停并返回就绪状态。
-
从运行(Running)或阻塞(Blocked)到终止(Terminated):
- 进程执行完成或被终止时,直接进入终止状态(该状态通常不包含在简化的 PPT 状态图中)。
希望这些解释能帮助你更好地理解 PPT 上进程状态的描述。如果你有特定的 PPT 内容或者书上内容需要对比分析,提供更多具体信息会有助于更加详细的解答。
书上的停止状态对应 PPT 里的 Stopped 状态。书上的终止状态对应着 PPT 里的 Terminated/Zombie 状态。
书上的运行状态有点语焉不详,有可能包括了 PPT 里的 Blocked(阻塞状态)
下面按照 PPT 的 4 种状态解释一下
-
Running 是指进程正在被执行,或者正在等待被执行。所谓等待被执行的意思是,如果现在操作系统决定调度这个进程,这个进程立刻就会开始执行指令。
-
Blocked 状态是指,进程由于等待一些事件(往往是 I/O,比如从磁盘或者网络读数据),暂时无法执行。所谓暂时,就是说如果事件完成了,这个进程就会继续执行。
-
Stopped 状态是指,进程被用户强制的停止了(比如 ctrl+z 发送的 SIGSTOP 信号),这种停止在用户不主动同意的情况下,是会永远持续下去的。
-
Terminated 状态,进程已经结束了,等待被回收的情况。
主要区分一下 2 和 3 两个状态。
2 状态下,操作系统仍然认为该进程很可能被执行,因此操作系统会时不时的去看看(调度)这个进程,如果阻塞的操作完成了(比如读到了想读的数据),那么就会自动继续执行下去,进入状态 1;
3 状态下,操作系统认为这是程序员有意的停止程序,就不会再去调度这个进程了,这个进程必须被主动的唤醒(程序员发送特殊的信号),操作系统才会重新调度这个进程。
更简短的版本:
状态 1 中,进程要么正在被执行,要么在等待 CPU 调度;
状态 2 中,进程在等待阻塞的操作完成,然后才能进入状态 1;
状态 3 中,进程在等待用户主动许可唤醒,然后才能进入状态 1;
状态 4 中,进程只能等待被回收。