我经常遇到这个术语。现在我真的需要一个清晰的解释,因为我想使用一些被称为不可中断安全的MPI例程。
我经常遇到这个术语。现在我真的需要一个清晰的解释,因为我想使用一些被称为不可中断安全的MPI例程。
我认为这是“可重入”的另一种说法。如果一个函数是可重入的,那么它可以在执行过程中被中断并再次调用。
例如:
void function()
{
lock(mtx);
/* code ... */
unlock(mtx);
}
这个函数可以被不同的线程明确地调用(互斥锁将保护代码)。但是如果在lock(mtx)
之后接收到一个信号并且再次调用该函数,它将会死锁。因此它不是中断安全的。
安全免受中断并发访问的代码被称为中断安全代码。
考虑这样一种情况:您的进程处于临界区,异步事件发生并中断了进程以访问先前被抢占的相同共享资源。
如果在操作资源的代码中间发生中断,并且中断处理程序可以访问相同的资源,则存在重大错误。锁定可以解决这个问题!