内核如何管理linux中的用户空间线程?

时间:2014-12-16 06:38:01

标签: linux-kernel pthreads

我已阅读此Linux - Threads and Process

我知道每个内核线程都有唯一的task_struct

但是现在我的问题是内核如何管理用户应用程序的线程,假设任何用户应用程序有12个线程,那么内核如何管理它们,每个线程都有像内核线程一样的独特task_struct

1 个答案:

答案 0 :(得分:0)

内核在可能的情况下管理它们,即。每当从“中断”输入时,它会改变线程的状态。

有两种类型的中断:来自正在运行的线程的系统调用,或来自驱动程序的调用,来自KB,NIC,磁盘,计时器等的“真实”硬件中断,可以改变状态线程并启动一个sceduling算法运行,可能会改变在可用内核上运行的线程集。

在中断之间,内核不管理任何内容,因为它没有输入。

当正在运行的线程使系统调用创建新线程时,将引发task_struct。新线程已准备就绪,只要调度算法将其分派到核心上,就会运行。