OS内核或进程生成的信号是什么?
问题描述:
https://en.wikipedia.org/wiki/Unix_signal说OS内核或进程生成的信号是什么?
信号是 的Unix,类Unix和其他符合POSIX的操作系统使用的进程间通信的有限形式。信号 是发送给进程或同一进程内的特定线程的异步通知,以便通知其发生的事件 。
...
内核可以产生信号通知进程的事件的。例如,对于 示例,当进程写入已由读者关闭的管道 时,将生成SIGPIPE;在默认情况下,这会导致 进程终止,这在构建shell 管道时很方便。
操作系统内核或进程生成的信号是?
如果信号是由OS内核生成的,那么在进程间通信中如何使用信号?它是通过将OS内核放在两个进程之间的中间通信来完成的,即进程通过某种方式(也是信号?)与OS内核进行通信,然后OS内核通过信号与另一个进程通信?
答
信号可以由内核或其他进程产生。在你的例子中,内核自己生成信号以便与进程进行通信。
其他进程也可以使用kill(2)
发送信号,它要求内核向进程或进程组发送信号(进程甚至可以向自己发送信号)。如果发起者有权发送信号,则内核将其发送。
这是当一个运行像会发生什么:
$ kill -TERM <some_pid>
值得注意的是,内核能够提供信号的唯一实体,不论其来源。