【问题标题】:What happens inside machine when i send a signal当我发送信号时机器内部会发生什么
【发布时间】:2010-12-21 08:24:05
【问题描述】:

我的意思是,我有一个操作系统请求,比如 kill SIG_NUMBER PID,接下来会发生什么。操作系统采取了什么行动等等。

非常感谢

【问题讨论】:

    标签: unix operating-system signals


    【解决方案1】:

    当然取决于操作系统 - 但通常假设您有足够的权限将该信号传递给相关进程 - 然后操作系统将更改 proc 的进程状态。关注内核。这通常会导致进程的一些“生命周期”状态更改 - 即终止、终止、死亡、暂停......等等。

    对内核的实际调用(取决于操作系统)将通过系统调用或通过一些适当的设备进行“ioctl”调用。

    当进程轮到某个 cpu 时间时,proc 调度程序将考虑进程状态来确定下一步要做什么。在这里特意简要介绍一下,因为它涉及到很多。

    我建议查看一些示例源代码——也许可以查看 Linux 发行版或 OpenSolaris(尽管这很复杂)。

    此处的示例 - 警告这非常复杂。 OpenSolaris signal handling in the kernel

    【讨论】:

      猜你喜欢
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      相关资源
      最近更新 更多