Overview
Processes in a TASK_INTERRUPTIBLE or TASK_UNINTERRUPTIBLE state are subdivided into many classes, each of which corresponds to a specific event。 A wait queue represents a set of sleeping processes, which are woken up by the kernel when some condition becomes true.
A wait queue head
Each wait queue is identified by a wait queue head, a data
structure of type wait_queue_head_t:
struct __wait_queue_head {
spinlock_t lock;