在Linux和Windows下实现信号?
发布时间:2020-12-14 01:29:58 所属栏目:Linux 来源:网络整理
导读:我不喜欢在编程中使用信号.我主要使用C/C++和 Python. 但我很想知道如何在Linux(或Windows)中实际实现信号. 如果有任何注册信号需要处理,操作系统是否在信号描述符表中的每条CPU指令后检查?或者是流程经理/调度程序对此负责? 由于信号是异步的,CPU指令在完
我不喜欢在编程中使用信号.我主要使用C/C++和
Python.
但我很想知道如何在Linux(或Windows)中实际实现信号. 如果有任何注册信号需要处理,操作系统是否在信号描述符表中的每条CPU指令后检查?或者是流程经理/调度程序对此负责? 由于信号是异步的,CPU指令在完成之前是否会中断? 解决方法
操作系统绝对不会处理每个指令.没门.太慢了.
当CPU遇到问题(如0除以,访问受限资源或未被物理内存备份的内存位置)时,会产生一种特殊的中断,称为异常(不要与C / Java混淆) / etc高级语言异常摘要). 操作系统处理这些异常.如果它是如此需要并且如果可能的话,它可以将异常反映回它发起的过程. Windows中所谓的Structured Exception Handling(SEH)就是这种反思.应使用相同的机制实现C信号. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |