5

Согласно этой ссылке, процесс имеет следующие состояния

R  running or runnable (on run queue)
D  uninterruptible sleep (usually IO)
S  interruptible sleep (waiting for an event to complete)
Z  defunct/zombie, terminated but not reaped by its parent
T  stopped, either by a job control signal or because it is being traced

В состоянии ожидания не ожидается, что процесс потребляет процессорное время, однако в приведенных ниже выходных данных я вижу, что процесс использует 100% процессорного времени, и в то же время он находится в состоянии S.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
32643 root      20   0 13736 7748  472 R   98  0.0   2:59.30 bzip2
29504 satam     20   0 1063m 779m 3824 S  100  2.4   1242:54 stencil
31923 root      20   0 15092 1224  848 D   14  0.0   1:39.96 find

Как это возможно и что это значит?

1 ответ1

0

"непрерывный сон" означает, что процесс ожидает ввода-вывода (например, операции с диском). Но, учитывая, что процессор выполняет процесс, даже если он не выполняет работу, он все еще "застрял", ожидая, пока он завершит ввод, поэтому он может заняться чем-то другим - запланировать другую задачу. Таким образом, это потребляет 100% циклов ЦП, когда процесс находится в режиме D.

Таким образом, он находится в спящем режиме, по сравнению с тем, что он не выполняет какую-либо работу ЦП, но является непрерывным, что означает, что ЦП не может делать ничего другого.

В многоядерной системе другие ядра доступны для других задач.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .