首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >信号是由操作系统内核或进程生成的吗?

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

Stack Overflow用户
提问于 2015-12-15 01:15:33
回答 1查看 664关注 0票数 1

signal

信号是进程间通信的一种有限形式,用于Unix、类Unix和其他符合POSIX的操作系统中.信号是向进程或同一进程中的特定线程发送的异步通知,以便将发生的事件通知进程。 ..。 内核可以生成信号通知进程事件。例如,当进程写入已被读取器关闭的管道时,将生成SIGPIPE;默认情况下,这会导致进程终止,这在构建shell管道时非常方便。

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

如果信号是由OS内核产生的,那么在进程间通信中如何使用信号呢?它是在通信的两个进程之间设置操作系统内核,即进程通过某种方式(也是信号?)与OS内核通信,然后OS内核通过信号与另一个进程通信吗?

EN

回答 1

Stack Overflow用户

发布于 2015-12-15 14:26:09

信号可以由内核或其他进程发出。在您的示例中,内核生成信号本身,以便与进程通信。

其他进程也可以使用kill(2)发送信号,后者要求内核向进程或进程组传递信号(进程甚至可以向自身发送信号)。如果发起者拥有发送信号的权限,那么内核就会传递它。

当一个人运行这样的程序时,会发生这样的情况:

代码语言:javascript
复制
$ kill -TERM <some_pid>

值得注意的是,内核是唯一能够传递信号的实体,不管源是什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34279464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档