持有互斥体时,内核上下文中的进程可以休眠吗?

时间:2019-03-29 01:06:07

标签: linux kernel mutex

我知道内核允许持有互斥量的进程进入睡眠状态(尽管这不是一个好习惯)。我的问题是这是否必然意味着进程将获得pre-empted? LKD说,每次我获取锁时,process->thread_info->preempt_count都会增加,并且schedule()在调用调度程序之前会检查preempt_count

那么睡眠线程将不会被抢占并继续占用系统吗?

1 个答案:

答案 0 :(得分:0)

是的,互斥体持有人完全可以睡觉。


  

LKD说,每当我获得锁时,process->thread_info->preempt_count都会增加...

这是关于自旋锁,而不是互斥锁自旋锁持有人实际上是禁止睡觉的。