File tree Expand file tree Collapse file tree 2 files changed +8
-0
lines changed
Expand file tree Collapse file tree 2 files changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -81,6 +81,14 @@ root 14 0.0 0.0 0 0 ? S 02:33 0:00 [migration/0]
8181
8282 由于 kthreadd 运行于内核空间,故需按大写 K(++"Shift"++ + ++"k"++)键显示内核进程后才能看到。然而无论如何也不可能在 htop 中看到 0 号进程本体,只能发现 1 号和 2 号进程的 PPID (Parent PID) 是 0。
8383
84+ ??? question "PID 真的标识的是进程吗?"
85+
86+ 在 Linux 内核中,PID 实际上是被用来唯一标识内核调度的基本单位——**任务**(task),可以将其简单理解为 **线程**(thread)。对于单线程程序来说,一个进程里只有一个线程,因而 PID 就可以唯一标识该进程;但对于多线程程序来说,一个进程里有多个线程,每个线程都有自己的 PID,且所有线程都位于同一个 **线程组**(thread group)中,其唯一标识为 **线程组 ID**(TGID),与主线程的 PID 相同,因而 TGID 可以唯一标识该进程。
87+
88+ 在 htop 中,使用快捷键 ++"Shift"++ + ++"H"++ 可以切换是否显示线程,在同时开启了显示线程和树形结构的情况下,可以看到同一进程的其他线程均归属于主线程之下。
89+
90+ 
91+
8492### 进程优先级与状态 {#process-priority-and-stat}
8593
8694我们平时使用操作系统的时候,可能同时会开启浏览器、聊天软件、音乐播放器、文本编辑器……前面提到它们都是进程,但是单个 CPU 核心一次只能执行一个进程。为了让这些软件看起来「同时」在执行,操作系统需要用非常快的速度将计算资源在这些进程之间切换,这也就引入了进程优先级和进程状态的概念。
You can’t perform that action at this time.
0 commit comments