Приветствую всех гуру администраторов 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. И может ли быть пользовательский процесс в этом статусе? Заранее благодарю за подробное объяснения для новичка.