【发布时间】:2014-01-29 17:31:13
【问题描述】:
据我所知,与用户空间线程/进程相比,Linux 内核线程没有自己的地址空间。内核线程不会上下文切换到用户空间,但内核线程是可调度和可抢占的。所以我的问题是,如果内核线程没有地址空间,那么内核线程的切换/抢占如何工作?
【问题讨论】:
-
是什么让您认为它需要用户空间地址空间才能使进程/线程可抢占?
-
我并不是说它需要用户地址空间,我的疑问是如果内核线程没有地址空间,那么它将如何访问内核代码/指令?
-
一个内核线程,在内核上下文和地址空间中运行!内核线程可能是可抢占的(CONFIG 选项),在这种情况下,中断会导致调度程序重新评估并切换到另一个线程。如果内核不是抢占式的,那么线程会一直运行,直到完成,协作多任务;在内核中作为内核代码工作的是
trusted
标签: linux multithreading kernel scheduling preemption