gpt4 book ai didi

c++ - 用户空间和内核空间进程中的一组信号处理程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:16 26 4
gpt4 key购买 nike

我是 linux 新手..

“用户空间进程”和“内核空间进程(内核线程)”是否共享同一组信号。处理程序。只是想知道内核如何根据进程运行的区域(用户空间或内核空间)发送不同的信号?

最佳答案

我认为这里可能有些困惑。当人们在 UNIX 上下文中说“内核线程”时,他们通常指的是“线程”,而不是“内核空间进程”。过去有两种线程方法:一种是在没有内核帮助的情况下实现概念的库,称为用户线程;那些主要只是包装内核提供的专门用于多线程的系统调用,称为内核线程。如今,大多数人都使用内核线程,尤其是因为 POSIX 线程标准自 2.6 以来已成为 Linux 内核的一部分。

为了回答您的问题,信号总是发送给 PID(好吧,除非您使用 pthread_kill 进行线程间信号发送)​​。对于 POSIX 线程,一个进程的所有线程共享一个 PID。但实际上只有一个线程可以被中断。所以每个线程都有一个信号掩码作为其线程本地存储的一部分。实际上,您应该做的是使用 pthread_sigmask 明确说明哪些线程处理哪些信号。在 Linux 中,根线程是默认的。

关于c++ - 用户空间和内核空间进程中的一组信号处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819953/

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