让我们考虑一个场景:-
内核线程获取锁并在发生中断时处于临界区的中间。中断处理程序运行并到达相同的临界区并尝试获取锁并进入睡眠状态。
会发生这种情况还是在关键部分禁用中断?采取了哪些措施来避免它?
// Some Code
Acquire_lock()
Critical section //Interrupt occurs and arrives to acquire the same lock.
Disable_lock()
让我们考虑一个场景:-
内核线程获取锁并在发生中断时处于临界区的中间。中断处理程序运行并到达相同的临界区并尝试获取锁并进入睡眠状态。
会发生这种情况还是在关键部分禁用中断?采取了哪些措施来避免它?
// Some Code
Acquire_lock()
Critical section //Interrupt occurs and arrives to acquire the same lock.
Disable_lock()