操作系统中进程运行在CPU与内存中的区别

目录

前言:

一、明确核心问题

二、详细说明

1、内存中的进程

2、CPU中的执行

3、协同工作流程

4、理解类比

5、常见误区澄清

6、性能影响

7、实际观察工具

总结:


前言:

        本文阐述了关于进程在CPU与内存中运行的区别,有助于理解计算机系统工作原理。同时澄清一下进程运行中误区。

一、明确核心问题

        进程既运行在内存中,也运行在CPU中,两者各司其职:

  •  内存:存储进程的代码、数据和状态信息。
  •  CPU:实际执行进程的指令

二、详细说明

1、内存中的进程

        内存(RAM)是进程的"居住地",存储着以下内容:

  • 可执行代码:程序的指令
  • 数据段:全局变量、静态变量
  • :动态分配的内存
  • :函数调用、局部变量
  • 进程控制块(PCB):操作系统维护的进程元数据

        当进程被创建时,操作系统会在内存中为其分配地址空间,加载可执行文件的内容。即使进程没有被CPU执行,它的这些信息也保留在内存中(除非被换出到交换空间)。

2、CPU中的执行

        CPU是实际"干活"的部件,针对进程它会有如下一些操作:

  • 从内存中读取指令
  • 解码并执行这些指令
  • 读写内存中的数据
  • 通过寄存器进行高速计算

        这里有一个关键点:CPU在任何时刻只能执行一个进程的指令(单核情况下),通过快速切换实现多任务。

3、协同工作流程

  (1)、读取指令:CPU从内存中读取下一条指令(通过程序计数器PC确定地址)

  (2)、解码:CPU解码该指令

  (3)、执行:CPU执行指令,可能需要:

  • 从内存读取数据
  • 将结果写回内存
  • 进行算术/逻辑运算

  (4)、更新状态:程序计数器更新为下一条指令地址

4、理解类比

        可以把这场景想象成一个图书馆

  • 内存:就像图书馆的书架,存储所有书籍(程序和数据)
  • CPU:就像正在阅读的人,只能同时阅读一本书的一页(执行一条指令)
  • 进程切换:就像把当前阅读的书放回书架,取出另一本书继续阅读

5、常见误区澄清

(1)、进程存储在CPU中

       事实:CPU不"存储"进程,它只是按指令行事。CPU寄存器会保存进程的当前执行状态,但这是临时性的

(2)、进程完全在内存中

        事实:内存存储进程的静态信息,但执行必须依赖CPU,未被执行的进程可以看作完全在内存中

(3)、CPU性能越高,能同时运行的进程越多

        事实:单个CPU核心在任何时刻只能执行一个线程的指令,多核CPU可以真正并行执行多个进程 "同时运行多个进程"是通过快速切换实现的假象

6、性能影响

(1)、CPU密集型进程:主要受CPU速度限制

(2)、内存密集型进程:受内存带宽和延迟影响更大

(3)、I/O密集型进程:更多时间在等待I/O而非使用CPU

7、实际观察工具

(1)、`top`/`htop`

  • CPU列:显示进程占用CPU的情况
  • RES列:显示进程使用的物理内存

(2)、`vmstat`

  • US:用户态CPU时间
  • SY:内核态CPU时间
  • free:空闲内存

(3)、`pmap`

    pmap -x <pid>  查看进程的内存映射

总结:

  • 内存是进程的"家":长期存储所有代码和数据
  • CPU是进程的"工人":实际执行指令
  • 两者通过总线/缓存紧密协作
  • 操作系统作为"管理者"协调内存分配和CPU调度

理解这个区别有助于:

  • 合理设计程序(减少CPU/内存瓶颈)
  • 有效进行系统调优
  • 调试性能问题
  • 理解计算机系统的基本工作原理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值