直接回答:经典三态模型为:就绪(Ready,万事俱备只欠 CPU)、运行(Running,正在 CPU 上执行)、阻塞/等待(Blocked,等待某事件如 IO 完成,有 CPU 也无法运行)。完整的五态模型再增加创建(New)和终止(Terminated)两个过渡状态。
展开解析:转换关系:新进程初始化完成后进入就绪;被调度器选中则从就绪转运行(调度/分派);时间片用完或被更高优先级进程抢占则回到就绪;运行中发起 IO 请求或等待资源则转入阻塞;等待的事件完成后只能回到就绪而非直接运行,由调度器决定何时再上 CPU。注意"阻塞→运行"的转换不存在,这是常见易错点。Linux 实际实现中状态更细,如可中断睡眠 TASK_INTERRUPTIBLE 与不可中断睡眠 TASK_UNINTERRUPTIBLE(常见于磁盘 IO,即负载高但 CPU 闲的"D 状态"进程)、僵尸态等。追问方向:挂起态(swap 出到磁盘)、D 状态进程为何杀不掉。