OS内核或进程生成的信号是什么?

问题描述:

https://en.wikipedia.org/wiki/Unix_signalOS内核或进程生成的信号是什么?

信号是 的Unix,类Unix和其他符合POSIX的操作系统使用的进程间通信的有限形式。信号 是发送给进程或同一进程内的特定线程的异步通知,以便通知其发生的事件 。

...

内核可以产生信号通知进程的事件的。例如,对于 示例,当进程写入已由读者关闭的管道 时,将生成SIGPIPE;在默认情况下,这会导致 进程终止,这在构建shell 管道时很方便。

操作系统内核或进程生成的信号是?

如果信号是由OS内核生成的,那么在进程间通信中如何使用信号?它是通过将OS内核放在两个进程之间的中间通信来完成的,即进程通过某种方式(也是信号?)与OS内核进行通信,然后OS内核通过信号与另一个进程通信?

信号可以由内核或其他进程产生。在你的例子中,内核自己生成信号以便与进程进行通信。

其他进程也可以使用kill(2)发送信号,它要求内核向进程或进程组发送信号(进程甚至可以向自己发送信号)。如果发起者有权发送信号,则内核将其发送。

这是当一个运行像会发生什么:

$ kill -TERM <some_pid> 

值得注意的是,内核能够提供信号的唯一实体,不论其来源。