Процессы в состоянии TASK_INTERRUPTIBLE
или TASK_UNINTERRUPTIBLE
подразделяются на различные классы, каждый из которых соответствует определенному событию. В этом состоянии состояние процесса не предоставляет достаточно информации для быстрого извлечения дескриптора процесса, поэтому используется другой список процессов, называемый wait_queue
. Wait_queue реализует условное ожидание событий. Процесс, ожидающий определенного события, помещается в надлежащую очередь ожидания.
Очереди ожидания реализованы в виде циклических списков, элементы которых включают указатели для обработки.
дескрипторы. Каждый элемент списка очередей ожидания имеет тип wait_queue:
struct wait_queue {
struct task_struct * task;
struct wait_queue * next;
};