Linux kernel linux中等待锁定的任务如何在另一个任务释放锁定后唤醒?

Linux kernel linux中等待锁定的任务如何在另一个任务释放锁定后唤醒?,linux-kernel,linux-device-driver,kernel,Linux Kernel,Linux Device Driver,Kernel,假设linux中的任务A正在等待锁定,此时指定的锁定被另一个任务B持有。因此任务A将处于等待队列中。现在,任务B完成后,释放锁。现在我的疑问是任务A如何知道锁可用,以及它是如何唤醒的 答案是。。。内核 锁定和解锁由专用的内核函数完成。当调用unlock时,内核会检查是否有人在等待锁定,如果有,他们会得到锁定并被内核唤醒。正如您所说,内核(许多模块和子模块的集合)会这样做,但您能否解释内核的哪一部分会准确地执行(如调度器)这个机制涉及的所有模块都是什么?@zair请参阅有关Linux的书籍(例如,

假设linux中的任务A正在等待锁定,此时指定的锁定被另一个任务B持有。因此任务A将处于等待队列中。现在,任务B完成后,释放锁。现在我的疑问是任务A如何知道锁可用,以及它是如何唤醒的

答案是。。。内核

锁定和解锁由专用的内核函数完成。当调用unlock时,内核会检查是否有人在等待锁定,如果有,他们会得到锁定并被内核唤醒。

正如您所说,内核(许多模块和子模块的集合)会这样做,但您能否解释内核的哪一部分会准确地执行(如调度器)这个机制涉及的所有模块都是什么?@zair请参阅有关Linux的书籍(例如,了解Linux内核)和源代码。