什么是用户线程和内核线程?


13

我知道线程是什么,我知道它们是如何工作的,但是对于允许用户线程内核线程做什么,我感到很困惑。

您能否说明用户线程可以做什么以及内核线程可以做什么?



好了,这个问题已经问过了,但没有得到正确回答。该人员仅询问有关用户空间和内核空间的5或6件事,就可以回答所有问题。
西·哈提卜

1
我认为Dave Rager的定义简洁明了:“内核空间和用户空间是特权操作系统功能和受限制用户应用程序的分离。”
Shadok 2012年

Answers:


13

内核创建并调度一个内核线程,有时称为LWP(轻量级进程)。创建内核线程通常比用户线程更昂贵,并且直接创建内核线程的系统调用是特定于平台的。

用户线程通常由线程库创建,而调度由线程库本身(在用户模式下运行)管理。所有用户线程都属于创建它们的进程。用户线程的优点是它们是可移植的。当使用多处理器系统时,可以看到主要的区别,完全由线程库管理的用户线程不能在不同的CPU上并行运行,尽管这意味着它们可以在单处理器系统上正常运行。由于内核线程使用内核调度程序,因此不同的内核线程可以在不同的CPU上运行。许多系统以不同的方式实现线程,

多对一线程模型将许多用户进程直接映射到一个内核线程,可以将内核线程视为主要进程。一对一线程模型将每个用户线程直接映射到一个内核线程,该模型允许在多处理器系统上进行并行处理。每个内核线程都可以看作是由调度程序管理的VP(虚拟进程)。

资料来源: 答案

您也可以在Wikipedia第3-3章中找到信息:进程,内核线程,用户线程和光纤:

线


我认为复制而不是完全不知道参数的真正含义,而又不完全知道答案是一个好主意。通常不是在内核线程的顶部创建LWP作为最后一个线程和用户线程之间的桥梁吗?另外,这个答案非常令人困惑,因为它一直在切换术语,最后您不知道例如内核线程是否是进程等
。– nbro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.