gpt4 book ai didi

process - 什么是 kthreadd 进程和子进程以及它与 init 和子进程有何不同

转载 作者:行者123 更新时间:2023-12-03 10:26:05 26 4
gpt4 key购买 nike

我想知道什么是kthread以及为什么它不占用任何内存并且没有打开的文件。我写了一些代码,它会简单地以父子树格式打印当前正在运行的进程的 PID 以及一些附加信息,如使用的 VMZ、RSS、线程、openfiles。 PID 2 的所有子代名为 kthreadd /proc/[pid]/status 中没有 VmSize 和 VmRSS文件。 /proc/[pid]/fd不包含任何打开的文件。

这些进程是什么,它们与 init (PID 1) 产生的正常进程有何不同。我读到(在一本旧书中)交换器将产生 init PID1 并且所有其他进程都是 PID 1 的子进程。这背后肯定有一个不同的架构(Linux 内核 3.7.10.1-16),我不知道,所以另一个问题是为什么 PID 2 是 PID 0 的 child 而不是 PID 1 的 child 。

最佳答案

内核线程不是 init 的子线程,因为它们可以在所有用户空间进程之前启动。

它们通常用于管理硬件,这就是为什么它们由内核直接处理并具有高优先级的原因。

要使进程成为 init 的子进程,它需要从 init 克隆,而 Kthreads 不是这就是为什么它们的父 PID 为 0 表示“没有人”的原因。

关于process - 什么是 kthreadd 进程和子进程以及它与 init 和子进程有何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17988526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com