当进程结束时,内核级线程会发生什么?
What does happen with kernel level threads when process ends?
如果我们有一个带有内核级线程的进程 运行,并且该进程结束了这些线程到底发生了什么?
我想他们也结束了,但具体步骤是什么?
I suppose they end too, but what are exact steps?
确切的步骤是:它们只是蒸发成虚无。
更准确地说,当进程执行 exit
(或 Linux 上的 exit_group
)系统调用时,OS 取消调度任何 运行 线程,无论它们当前所在的指令,然后销毁与其关联的所有内核资源(内存映射、文件描述符等)。
就好像内核将它们从存在中剔除一样。前一刻它们正在 CPU 上执行或等待调度,下一刻它们根本不存在。
如果我们有一个带有内核级线程的进程 运行,并且该进程结束了这些线程到底发生了什么?
我想他们也结束了,但具体步骤是什么?
I suppose they end too, but what are exact steps?
确切的步骤是:它们只是蒸发成虚无。
更准确地说,当进程执行 exit
(或 Linux 上的 exit_group
)系统调用时,OS 取消调度任何 运行 线程,无论它们当前所在的指令,然后销毁与其关联的所有内核资源(内存映射、文件描述符等)。
就好像内核将它们从存在中剔除一样。前一刻它们正在 CPU 上执行或等待调度,下一刻它们根本不存在。