在这种情况下,当他们说“脆弱的国家”时,它究竟意味着什么?

时间:2014-09-11 03:30:05

标签: linux operating-system

  

因为信号是异步的,所以主程序可能是非常的   处理信号时的脆弱状态,因此在信号处理时   处理函数执行。因此,您应该避免执行任何操作   I / O操作或调用大多数库和系统功能   信号处理程序

我想在这种情况下进行测试,但我不知道如何将主程序变为脆弱状态

参考:Advanced Linux Programming

1 个答案:

答案 0 :(得分:1)

我不认为“脆弱的国家”是一个技术术语。我并不熟悉Linux lernel如何处理信号,但是内核可能在执行信号处理时禁用(或缺少)某些安全措施,例如全局对象上的线程安全或不期望其他副作用。

例如,您的报价专门提到了IO操作。 IO操作通常是异步的,并且在完成时会引发中断,我希望内核不希望在处理信号时调用IO中断处理程序(我想这会抢占信号中当前运行的代码)如果中断处理程序修改了信号处理程序正在使用的某些资源,可能会将系统置于未定义状态,特别是如果正在处理的信号是用于同时等待IO操作的进程。