并行处理 - 术语"interrupt safe"是什么意思?



我偶尔会遇到这个词。现在我真的需要一个明确的解释,因为我希望使用一些MPI例程据说是不安全的。

我相信这是reentrant的另一个措辞。如果一个函数是可重入的,那么它可以在中间被中断并再次调用。

例如:

void function()
{
    lock(mtx);
    /* code ... */
    unlock(mtx);
}

这个函数显然可以由不同的线程调用(互斥锁将保护里面的代码(。但是,如果信号在lock(mtx)之后到达,并且函数再次被调用,它将死锁。所以它不是中断安全的。

从中断并发访问的安全代码被称为中断安全代码

考虑这样一种情况:您的进程处于关键部分,出现异步事件并中断您的进程以访问进程在抢占之前访问的相同共享资源。

如果在操作资源的代码中间发生中断,并且中断处理程序可以访问同一资源,则这是一个主要错误。锁定可以拯救您!

最新更新