1. 三态模型
三态模型是最简单的进程状态模型,描述了进程在操作系统中的三种基本状态:
-
就绪(Ready) :
- 进程已经获得了所有必要的资源(如内存),
等待被分配CPU
以开始执行。 - 进程在就绪队列中等待。
- 进程已经获得了所有必要的资源(如内存),
-
运行(Running) :
- 进程正在使用CPU执行指令。
- 在任意时刻,
只有一个
进程处于运行状态(在单处理器系统中)。
-
阻塞(Blocked) :
- 进程正在
等待某个事件
(如I/O操作完成)而无法继续执行。 - 一旦事件发生,进程将从
阻塞
状态转移到就绪
状态。
- 进程正在
三态模型的状态转换
- 从就绪到运行:调度器选择一个就绪进程,将CPU分配给它。
- 从运行到阻塞:运行进程发出I/O请求或等待某个事件,进入阻塞状态。
- 从阻塞到就绪:等待的事件发生,进程进入就绪状态,等待CPU分配。
- 从运行到就绪:时间片到期,调度器将进程切换出去,进入就绪状态。
2. 五态模型
五态模型扩展了三态模型,增加了两种状态以更详细地描述进程的生命周期:
- 新建(New) :进程
刚刚被创建
,尚未进入就绪队列。 - 就绪(Ready) :与三态模型中的就绪状态相同。
- 运行(Running) :与三态模型中的运行状态相同。
- 阻塞(Blocked) :与三态模型中的阻塞状态相同。
- 终止(Terminated) :进程
已经完成执行
或被强制终止
,不再占用系统资源。
五态模型的状态转换
- 从新建到就绪:操作系统完成进程初始化,将进程放入就绪队列。
- 从就绪到运行:调度器选择一个就绪进程,将CPU分配给它。
- 从运行到阻塞:运行进程发出I/O请求或等待某个事件,进入阻塞状态。
- 从阻塞到就绪:等待的事件发生,进程进入就绪状态,等待CPU分配。
- 从运行到就绪:时间片到期,调度器将进程切换出去,进入就绪状态。
- 从运行到终止:进程完成执行或被强制终止,进入终止状态。
3. 细分进程状态及转换
1. 新建状态(New)
- 新建 → 就绪:进程初始化完成,操作系统将其放入内存中,
等待调度
。 - 新建 → 挂起就绪:进程创建完成,但
由于内存资源不足
,被挂起
到磁盘。
2. 就绪状态(Ready)
- 就绪 → 运行:调度器选择该进程,将CPU分配给它,进程开始执行。
- 就绪 → 挂起就绪:由于资源紧张(如内存不足),操作系统将进程挂起到磁盘。
3. 运行状态(Running)
- 运行 → 就绪:进程的时间片用完或被更高优先级的进程抢占,进程进入就绪状态。
- 运行 → 阻塞:进程发出I/O请求或等待某个事件,进入阻塞状态。
- 运行 → 终止:进程完成执行或被操作系统强制终止,进入终止状态。
4. 阻塞状态(Blocked)
- 阻塞 → 就绪:等待的事件(如I/O操作完成)发生,进程进入就绪状态。
- 阻塞 → 挂起阻塞:由于资源紧张,操作系统将进程挂起到磁盘。
5. 挂起就绪状态(Ready Suspended)
- 挂起就绪 → 就绪:系统资源(如内存)恢复,操作系统将进程从磁盘调回内存,进入就绪状态。
6. 挂起阻塞状态(Blocked Suspended)
- 挂起阻塞 → 阻塞:等待的事件发生,操作系统将进程从磁盘调回内存,进入阻塞状态。
- 挂起阻塞 → 挂起就绪:等待的事件发生,但系统资源仍然紧张,进程进入挂起就绪状态。
7. 终止状态(Terminated)
- 进程完成执行或被操作系统强制终止,不再占用系统资源。