-
新建(New):
- 进程正在被创建。此时操作系统正在为新进程分配必要的资源(如内存、进程控制块)。
-
就绪(Ready):
- 进程已创建并等待被分配CPU时间进行执行。所有必要的资源都已分配,只需要等待调度程序将其调度到CPU上运行。
-
运行(Running):
- 进程正在CPU上执行。这是进程的实际执行状态,当调度程序将CPU分配给进程时,进程从就绪状态变为运行状态。
-
等待(Waiting)或阻塞(Blocked):
- 进程无法继续执行,正在等待某个事件的发生(如I/O操作完成、资源可用等)。当进程等待的事件发生后,它会从等待状态转变为就绪状态。
-
终止(Terminated)或退出(Exit):
- 进程的执行已经完成或被强制终止。操作系统将清理该进程所占用的资源并将其从进程列表中移除。
-
挂起(Suspended):
- 挂起等待(Suspended Blocked):进程在等待某个事件的发生,但同时被挂起,不占用内存。
- 挂起就绪(Suspended Ready):进程不再占用内存,但一旦恢复后会直接进入就绪状态,等待被调度。
状态转换
以下是进程在不同状态之间的常见转换:
- 新建 → 就绪:进程创建完成并分配了必要资源后,进入就绪状态。
- 就绪 → 运行:调度程序选择一个就绪进程,并将其调度到CPU上执行。
- 运行 → 等待:进程执行过程中等待某个事件(如I/O操作),从运行状态转换为等待状态。
- 运行 → 就绪:进程时间片用完,或被操作系统抢占,从运行状态回到就绪状态。
- 等待 → 就绪:等待的事件发生,进程从等待状态转为就绪状态。
- 运行 → 终止:进程执行完毕或被强制终止,从运行状态转换为终止状态。
- 就绪 → 挂起就绪:系统资源不足或优先级调整时,进程被挂起,不再占用内存。
- 等待 → 挂起等待:等待事件期间被挂起,不再占用内存。
- 挂起就绪 → 就绪:挂起状态解除,进程重新进入就绪队列,等待调度。
- 挂起等待 → 等待:挂起状态解除,进程回到等待队列,继续等待事件发生。
这些状态和转换机制帮助操作系统有效地管理和调度进程,使系统资源得到合理利用。