TASK_KILLABLE: Новое состояние процесса в Linux

В ядре Linux® 2.6.25 появилось новое состояние приостановки выполнения процесса TASK_KILLABLE , представляющее собой альтернативу эффективному, но потенциально приводящему к невозможности завершения процесса состоянию TASK_UNINTERRUPTIBLE и более безопасному, но легко прерываемому TASK_INTERRUPTIBLE . Своим появлением состояние TASK_KILLABLE обязано проблеме, возникшей в 2002 г. и связанной с драйвером файловой системы OpenAFS, который блокировал все сигналы и ожидал наступления события, находясь в состоянии, допускающем прерывания. Новое состояние приостановки аналогично TASK_UNINTERRUPTIBLE но позволяет обрабатывать фатальные сигналы. В данной статье автор освещает это нововведение и на примерах исходных текстов ядра Linux 2.6.26 и более ранней версии 2.6.18 обсуждает связанные с ним изменения и новые API. ^M

Полный текст статьи читайте на IBM developerWorks