“中断安全”一词是什么意思?

时间:2011-06-30 13:43:20

标签: parallel-processing mpi interrupt

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

2 个答案:

答案 0 :(得分:7)

我认为这是reentrant的另一个措辞。如果函数是reentrant,它可以在中间被中断并再次调用。

例如:

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

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

答案 1 :(得分:2)

从中断并发访问安全的代码被认为是中断安全的。

考虑一种情况,即您的进程处于关键部分并且异步事件到来并中断您的进程以访问进程在抢占之前访问的同一共享资源。

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