gpt4 book ai didi

Linux内核线程地址空间

转载 作者:太空狗 更新时间:2023-10-29 12:33:02 25 4
gpt4 key购买 nike

我读到 linux 内核线程没有自己的地址空间,它们的 mm 字段设置为 NULL。我知道所有内核线程共享地址空间,但它们仍然有自己的堆栈,对吧?他们需要以某种方式描述那个领域,没有 mm,他们该怎么做?和其他列表,如打开的文件,他们把它放在哪里?另外,将 active_mm 字段设置为上一个用户任务的 mm 有什么意义?提前致谢。

最佳答案

顾名思义,内核线程在内核模式下工作,因此它的堆栈由 CPU 寄存器引用(即:ssebp)。

打开文件引用(与任何其他进程一样)保存在进程描述符字段 struct files_struct *files 中。它们与内存描述符无关。

对于常规流程,字段mmactive_mm 通常是相同的。内核线程不拥有任何内存描述符,因此它们使用先前运行进程的事件 (active_mm),因此,内核线程mm 始终为 null,他们使用 active_mm

希望这对您有所帮助!

关于Linux内核线程地址空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21174222/

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