O tempo de CPU não é gasto enquanto o código espera que algum evento ocorra, assim como ocorre com as E / Ss, uma chamada de sistema de rede de bloqueio é essencialmente tempo ocioso.
Do usuário, sistema e leituras ociosas fornecidas por "top", o que refletiria o tempo gasto em uma chamada de sistema de bloqueio?
Eu li que as chamadas de disco de i / o de bloqueio são refletidas como tempo ocioso, mas não para bloqueio de chamadas de E / S de rede. Mas então onde?
O tempo de CPU não é gasto enquanto o código espera que algum evento ocorra, assim como ocorre com as E / Ss, uma chamada de sistema de rede de bloqueio é essencialmente tempo ocioso.
Ele é mostrado como wait
( wa
) em top
. Isso não reflete o tempo de espera envolvido, mas o esforço da CPU para lidar com a operação.
Se um processo lesse um arquivo grande de um disco lento, o planejador do kernel teria que atribuir CPU com mais frequência para lidar com a operação de E / S e, portanto, também desperdiçaria tempo do planejador para lidar com ele.
Infelizmente, mesmo os desenvolvedores do kernel não podem dar uma resposta mais direta, porque o tempo real de espera não requer CPU, mas lidar com isso não é necessário.Tags top system-calls