1950年世界杯_中国队如何进世界杯 - mbkbl.com

1950年世界杯_中国队如何进世界杯 - mbkbl.com

shape
  • Home
  • 摩洛哥西班牙世界杯
  • 操作系统:进程状态(Process State)

操作系统:进程状态(Process State)

  • 2025-12-18 10:43:17
  • admin

目录

什么是进程状态?

为什么需要“进程状态”?

进程的 5 种基本状态(Five-State Model)

1. New(新建)

2. Ready(就绪)

3. Running(运行中)

4. Waiting(等待/阻塞)

5. Terminated(终止)

状态转换举个完整的例子:

状态转换图解

什么是进程状态?

当一个程序正在运行时,它的执行情况会不断变化,操作系统就用“状态”这个概念,来描述它当前正处于什么阶段。

就像我们人有不同的状态(正在走路、在睡觉、在排队等),一个程序运行的过程,也有「正在执行」、「正在等待」、「刚被创建」、「刚结束」等等状态。

状态 = 行为快照

我们可以把“进程状态”理解为:

进程的运行轨迹中的每一个时刻的行为快照

每当它做了一件关键事情(比如完成输入、获得 CPU、被强制中断),它的状态就更新一次。

为什么需要“进程状态”?

在现代操作系统中,同时会运行成百上千个进程。但:

CPU 同一时刻只能执行一个或几个进程

有些进程在等待输入(例如等待你敲键盘)

有些进程已经结束但还没被清理

因此,操作系统必须随时知道每个进程目前处于什么“状态”,这样才能:

决定哪个进程可以运行

哪个进程要等待

哪个进程可以终止

哪个进程正在被阻塞、暂停……

进程的 5 种基本状态(Five-State Model)

在操作系统中,一个正在执行的进程从出生到结束,通常会经历以下 五种状态:

状态名称英文名说明 创建New系统刚刚创建了进程,还未开始执行 就绪Ready进程已经准备好,只等 CPU 给它机会 执行Running进程正在 CPU 上运行(执行代码) 等待Waiting进程因为等待某件事(比如文件、网络)暂时停下 终止Terminated进程已经执行完毕或被终止,将被清理

1. New(新建)

系统刚刚“创建”一个进程。

比如:你双击打开 Word,系统就会立刻为它创建一个「新进程结构」,但还没安排它真正开始工作。

此时操作系统会:

分配内存

设置初始状态

把它放进 PCB(进程控制块)

2. Ready(就绪)

进程一切准备就绪,等着 CPU 来“叫它上台”。

进程已经被初始化了,也没有在等 I/O,它已经具备运行条件,只是暂时还没分到 CPU。 多个就绪进程排队,等着 CPU 调度器来选一个执行。

类比:像是一群运动员在起跑线等“发令枪”,谁也不动,但谁都准备好了。

3. Running(运行中)

进程被调度到了 CPU,开始实际执行。

此时它:

执行指令

使用寄存器和内存

可能读写数据

做逻辑判断

⚠️ 关键点:同一时刻只有一个进程(或一个线程)真正处于 Running 状态,即使你的电脑上有很多程序开着。

4. Waiting(等待/阻塞)

进程遇到某些“必须等待”的事情,只能暂停。

典型例子:

正在等用户输入(键盘没敲)

正在等网络下载

正在等文件打开

这时候进程不再占用 CPU,而是挂起,直到外部事件完成,再回到「就绪」状态。

5. Terminated(终止)

进程执行完毕或出现错误,结束了。

可能原因:

程序主动运行结束(比如你关闭了 Word)

出现了非法操作(比如访问了非法地址)

被操作系统或用户强行终止

此时,系统会:

回收进程所占资源(内存、文件等)

将其从 PCB 移除

状态转换举个完整的例子:

假设你打开了记事本(Notepad):

New:系统创建进程结构(你刚点击)

Ready:记事本在排队等 CPU 调度

Running:获得 CPU,开始打开窗口

Waiting:你点击“打开文件” → 等待文件读取

Ready:文件读取好了,重新排队等 CPU

Running:读取完后显示内容

Terminated:你点击关闭,记事本退出

状态转换图解

进程有 5 种基本状态,但这些状态不是孤立的,它们之间是可以相互转换的,就像人的生活状态一样不断变化。

┌────────────┐

│ New │

└────┬───────┘

↓ (由操作系统调度)

┌────────────┐

│ Ready │◄────────┐

└────┬───────┘ │

↓ (被调度器选择) │

┌────────────┐ │

│ Running │ │

└────┬──┬────┘ │

│ │ │

(需要I/O) │ └───────┐ │

↓ │ │

┌──────────┐ │ │

│ Waiting │─────┘ │

└────┬─────┘(I/O完成) │

↓ │

┌────────────┐ │

│ Terminated │◄───────┘

└────────────┘

New → Ready:系统初始化完成

当你点击打开某个程序(比如记事本)时,系统:

创建 PCB(进程控制块)

分配内存

把它放到「就绪队列」

然后它进入「Ready」状态,准备运行。

Ready → Running:被 CPU 调度器选中

当轮到你这个进程获得 CPU 执行权限时:

调度器将它从「Ready」移到「Running」

正式进入执行阶段

Running → Waiting:等待某种资源

进程在运行中发现:

用户还没输入内容

文件还没读出来

网络数据还没到

就会主动“放弃”CPU,进入「等待状态」(等待 I/O 完成)

Waiting → Ready:I/O 事件完成,继续排队

当等待的事完成(如键盘按下、文件读取完):

操作系统通知这个进程「你可以继续了」

它进入「Ready」队列,准备下一轮执行

Running → Ready:被抢占或时间片耗尽

如果系统启用了「时间片轮转」调度策略:

每个进程最多运行一小段时间

到时间后会被系统“抢下来”,放回就绪队列

给下一个进程机会使用 CPU

(也可能被优先级更高的进程抢占)

Running → Terminated:任务完成或被终止

程序运行结束(自然退出)

程序发生错误(如除以 0)

用户强制关闭(比如你点了 X)

系统会释放资源,并从进程表中移除它。

Previous Post
怎么哄女孩子开心?
Copyright © 2088 1950年世界杯_中国队如何进世界杯 - mbkbl.com All Rights Reserved.
友情链接