文章目录
一、进程特殊形式 ( 内核线程 | 用户线程 )二、C 标准库与 Linux 内核中进程相关概念三、Linux 查看进程命令及输出字段解析一、进程特殊形式 ( 内核线程 | 用户线程 )
普通的进程 , 包含 内核虚拟地址空间 和 用户虚拟地址空间 , 其中 内核虚拟地址空间 所有进程共享 , 用户虚拟地址空间 由进程独立拥有 ;
除了 普通进程 外 , 进程 还有 222 种 特殊形式 :
内核级线程 :只有 内核虚拟地址空间 , 没有 用户虚拟地址空间 的进程 , 称为 内核线程 ;用户级线程 :共享 用户虚拟地址空间 的进程 , 称为 用户线程 ;
线程 :用户线程 又称为 线程 ;
线程组 :共享 相同 用户虚拟地址空间 的线程 , 组成了一个 线程组 ,
二、C 标准库与 Linux 内核中进程相关概念
C 语言中 标准库 提供的 进程 , 与 Linux 内核 中的 进程 这两个概念是不同的 ;
C 标准库 中的 包含多个线程 的进程 , 在 Linux 内核中 称为 " 线程组 " ;
C 标准库 中的 只有一个线程 的进程 , 在 Linux 内核中 称为 " 任务 / 进程 " ;
C 标准库 中的 线程 , 在 Linux 内核中 称为 " 共享 用户虚拟地址空间 的 进程 "
三、Linux 查看进程命令及输出字段解析
在 Ubuntu 中 , 执行
ps aux
命令 , 可以查看当前系统的进程状态 , 确定有哪些进程 正在运行 , 占用的 CPU , 内存资源比例, 进程 ID 是多少 ;
ps 命令显示的当前执行命令时的 瞬间状态 , 不是 实时动态更新的 ;
实时进程使用 top 命令 ;
进程字段说明 :
USER: 表示 进程是属于哪个账户的 ;PID: 进程 ID ;%CPU: 使用的 CPU 资源占用的 百分比 ;%MEM: 使用的 内存 资源占用的 百分比 ;VSZ: 该进程 占用的虚拟内存容量是多少 , 单位是 KB , 225864 表示 225864KB ;RSS: 实际占用的内存容量 ;TTY: 进程 运行的终端 ;STAT: 程序目前的状态 ; S 表示程序在休眠 , 可以发送信号唤醒 ;
执行过程如下 :
root@octopus:~# ps auxUSER PID %CPU %MEM VSZ RSS TTYSTAT START TIME COMMANDroot1 0.3 0.2 225864 9376 ? Ss 09:26 0:03 /sbin/init splashroot2 0.0 0.000 ? S 09:26 0:00 [kthreadd]root3 0.0 0.000 ? I< 09:26 0:00 [rcu_gp]root4 0.0 0.000 ? I< 09:26 0:00 [rcu_par_gp]root6 0.0 0.000 ? I< 09:26 0:00 [kworker/0:0H-kb]root9 0.0 0.000 ? I< 09:26 0:00 [mm_percpu_wq]root 10 0.0 0.000 ? S 09:26 0:00 [ksoftirqd/0]root 11 0.0 0.000 ? I 09:26 0:00 [rcu_sched]root 12 0.0 0.000 ? S 09:26 0:00 [migration/0]root 13 0.0 0.000 ? S 09:26 0:00 [idle_inject/0]root 14 0.0 0.000 ? S 09:26 0:00 [cpuhp/0]root 15 0.0 0.000 ? S 09:26 0:00 [cpuhp/1]root 16 0.0 0.000 ? S 09:26 0:00 [idle_inject/1]root 17 0.0 0.000 ? S 09:26 0:00 [migration/1]root 18 0.0 0.000 ? S 09:26 0:00 [ksoftirqd/1]root 20 0.0 0.000 ? I< 09:26 0:00 [kworker/1:0H-kb]root 21 0.0 0.000 ? S 09:26 0:00 [cpuhp/2]root 22 0.0 0.000 ? S 09:26 0:00 [idle_inject/2]root 23 0.0 0.000 ? S 09:26 0:00 [migration/2]
【Linux 内核】进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )