LINUX.ORG.RU
ФорумAdmin

Статус потока ядра I(IDLE)

 


0

1

Приветствую всех гуру администраторов Linux! В процессе изучения статусов процесса наткнулся на статус I(idle), как пишут на просторах интернета этот статус присущ только для потоков ядра.И вот что нагуглил в процессе поиска - "Currently people use TASK_INTERRUPTIBLE to idle threads and wait for ‘work’ because TASK_UNINTERRUPTIBLE contributes to the loadavg. Having all idle threads contribute to the loadavg is somewhat silly.

Now mostly this works OK, because threads have all their signals masked. However there’s a few sites where this is causing problems and TASK_UNINTERRUPTIBLE should be used, except for that loadavg issue.

This patch adds TASK_NO LOAD which, when combined with TASK_UNINTERRUPTIBLE avoids the loadavg accounting.

As most of imagined usage sites are loops where a thread wants to idle, waiting for work, a helper TASK_IDLE is introduced." И возникает вопрос, почему нам не использовать статус S?Чем он отличается от статуса I в контексте потоков ядра, потому как есть потоки ядра которые находятся в статусе S. И может ли быть пользовательский процесс в этом статусе? Заранее благодарю за подробное объяснения для новичка.

Ответ на: комментарий от kto_tama

Информативный ответ, но к сожалению данная статья не открыла для меня Америку.Попробую задать вопрос по другому, возможно возникло недопонимание. Я понимаю что существуют процессы с непрерывным сном и с прерывным.Тут вопрос заключается в другом, в контексте потоков ядра, которые работают в 0 кольце защиты. Те процессы которые работают в пространстве ядра не реагируют на сигналы из пространство пользователя.Да обычные процессы которые работают на 3 уровне кольца защиты действительно могут быть в статусе S(прерываемый сон) которые реагирует на сигналы и статус D(не прерываемый сон) который не реагирует на сигналы.Но суть моего вопроса следующая.Если мы посмотрим в тот же top или ps то мы увидим что есть некоторые потоки ядра со статусом S. И возникает логичный вопрос, зачем нам новый статус I(idle) если можно использовать статус S?Какую нам информативность даёт данный статус и чем он отличается от статуса S в конексте потоков ядра?

superkot
() автор топика