进程何时处理信号

2024-02-10

我想知道linux进程什么时候处理信号。 假设进程已经安装了信号的信号处理程序,我想知道进程的正常执行流程何时会被中断并调用信号处理程序。

根据http://www.tldp.org/LDP/tlk/ipc/ipc.html http://www.tldp.org/LDP/tlk/ipc/ipc.html,进程在退出系统调用时会处理该信号。这意味着像 a = b+c 这样的普通指令(或其等效的机器代码)不会因为信号而被中断。

此外,有些系统调用在收到信号后会被中断(并因 EINTR 失败或重新启动)。这意味着信号甚至在系统调用完成之前就已被处理。这种行为似乎与我在上一段中提到的相冲突。

因此,我不清楚信号何时被处理以及进程将在哪些进程状态下处理信号。可以中断吗

  1. 任何时候它从内核空间进入用户空间,或者
  2. 任何时候它在用户空间,或者
  3. 任何时候进程被调度程序安排执行

Thanks!


根据http://www.tldp.org/LDP/tlk/ipc/ipc.html http://www.tldp.org/LDP/tlk/ipc/ipc.html,进程在退出系统调用时会处理该信号。这意味着像 a = b+c 这样的普通指令(或其等效的机器代码)不会因为信号而被中断。

好吧,如果是这样的话,CPU 密集型进程就不会服从进程调度程序。事实上,调度程序可以在进程的时间量过去后的任何时间点中断进程。除非是FIFO实时进程。

更正确的定义:信号被传递到进程的一个时刻是控制流离开内核模式以恢复执行用户模式代码的时刻。这不一定涉及系统调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进程何时处理信号 的相关文章

随机推荐

  • 我想在我的电脑上安装 nuxt js 但每次都会显示错误

    我想在我的电脑上安装 nuxt js 但每次都会显示错误 npm init nuxt app 项目名称 create nuxt app 不被识别为内部或外部命令 可运行的程序或批处理文件 npm 错误 代码1 npm 错误 路径 C Use
  • 仅在设计时更新默认值

    我想仅在设计时更新链接到公共属性的私有变量的默认值 如果可能的话 TMyComp class TComponent private FColumnWidth Integer FColumnWidthDef Integer protected
  • .NET 中带有 Unity IOC 容器的 RabbitMQ

    我使用 Unity App Block 作为 WCF 项目服务层的 IOC 容器 使用 Unity WCF 库将其插入到每个 WCF 服务中 效果非常好 我最近将 RabbitMQ 引入了我的服务层 目前我正在使用 using 块来连接并添
  • 如何使用 SVN 使某些开发人员只显示某些文件夹

    我有一个包含一堆文件夹的存储库 我希望某些开发人员在检出存储库时只能获取其中两个或三个文件夹 如何使文件夹默认不显示 然后仅在我想要授予访问权限时添加它们 我使用 VisualSVN 作为 SVN 服务器 我所做的就是授予对顶层的读取访问权
  • 使用 RPostgreSQL 进行 UTF-8 / Unicode 文本编码

    我在直接链接到 PostgreSQL 数据库的 Windows 计算机上运行 R 我没有使用 RODBC 我的数据库采用 UTF 8 编码 由以下 R 命令确认 dbGetQuery con SHOW CLIENT ENCODING cli
  • 如何获取嵌入Flash影片的URL?

    今天我试图获取我的 Flash 电影所在的 URL I found 这里有一个类似的问题 https stackoverflow com questions 396412 how can my flash app determine its
  • Apache 在 URL 中隐藏查询字符串但保持 URL 正常工作

    我有两种类型的 URL 但它们可以在查询字符串之后包含任何内容 因为我们有 1000 个 URL 帖子 两者都有 id 我希望隐藏 删除它 但页面仍然加载 这些页面是 WordPress 中的自定义 slugs 我没有在 Apache 2
  • 将 boost::array 转换为带参数的函数 (const float (&arr)[12])

    我有一个boost array
  • R 中 PCA 的结果载荷

    在R中进行PCA时 p lt princomp iris 1 4 我通过以下两种方法得出不同Component的系数 IrisLoading lt p loadings 1 2 methods1 use the fist two Comp
  • 在大型数据集上使用 grep 或 fgrep 的循环速度非常慢

    我正在尝试做一些非常简单的事情 grep 从列表中 对目录中的文件进行精确匹配的字符串 try grep each line from the files for i in cat data datafile do LOOK echo i
  • 为什么根窗口小部件与窗口的大小不同?

    我正在尝试使用自定义小部件GridLayout 但结果总是在角落里出现一个很小的网格 而不是在整个窗口中扩展的网格 示例代码 import kivy kivy require 1 5 1 from kivy app import App f
  • 到大端还是小端? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ReactDOM.render 放在 React 中的什么位置

    这里是入门 https facebook github io react docs getting started htmlReact的例子 在例子中 下面的代码片段是单独的main js file ReactDOM render h1 H
  • 从委托访问列表视图 currentIndex

    我有一个QMLListView委托从另一个文件加载其组件的地方 单击委托项目时 我想更新ListView CurrentIndex and highlight所选项目 当我明确设置时它有效id of the ListView 但是因为我想使
  • Scala 2.13 视图与 LazyList

    我正在将一个项目从 Scala 2 12 1 迁移到 2 13 6 并发现SeqView flatMap现在返回一个View 其中没有distinct方法 因此 我有一段代码不再编译 val nodes debts view flatMap
  • 如何以正确的类型安全方式迭代记录键?

    让我们针对一些属性构建一个示例记录 type HumanProp weight height age type Human Record
  • 如何获取光标下的单词?

    假设有一个mousestop事件附加到整个文档 找出确切事件的最佳方法是什么word当鼠标停止移动时 在光标下方 如果有任何文本 我可以从事件处理程序获取底层 jQuery 元素 document elementFromPoint e cl
  • MATLAB:在子图中绘制/保存网格函数的 X-Y 视图

    正如标题所示 我试图将网格函数的 2 变量切片 例如 作为 jpg 保存为子图 我想使用 m 文件来执行此操作 因为我有很多要生成的图 我已经弄清楚如何在他们自己的图形上绘制视图 但我无法让它们正确地绘制为图形中的子图 为了说明我的意思 以
  • 绘制包含 80% (x, y) 点的圆

    我有一个二维数组 x y 的点 我想绘制一个包含该点 80 的圆 并且我想知道所得圆的半径 有没有办法用 python 来做到这一点 我一直在寻找一种方法来做到这一点 但没有成功 我很抱歉没有尝试 但我完全迷失了在不给圆半径的情况下取 80
  • 进程何时处理信号

    我想知道linux进程什么时候处理信号 假设进程已经安装了信号的信号处理程序 我想知道进程的正常执行流程何时会被中断并调用信号处理程序 根据http www tldp org LDP tlk ipc ipc html http www tl