Sempre se sabe que as operações do disco são lentas e sabemos os motivos pelos quais elas são lentas. Portanto, a pergunta aqui é por que precisamos esperar por E / S ou por que existe algo como IOWait etc.?
Quero dizer, notei que, quando você está executando algumas tarefas de E / S em segundo plano, seu computador fica muito mais lento, eu notei especialmente que ao usar o Linux, se você estiver executando algumas tarefas de E / S mais longas , o sistema operacional se torna quase inutilizável até que sejam concluídos.
Na verdade, eu também encontrei esse tópico em um artigo, há um trecho:
A espera de E / S é de 12,1%. Este servidor possui 8 núcleos (via cat / proc / cpuinfo). Isso é muito próximo a (1/8 núcleos = 0,125)
Então, basicamente, significa que está diminuindo bastante o computador, por que isso? Quero dizer OK, agora o computador normal tem pelo menos 2 núcleos, às vezes 4 ou às vezes eles têm mais por causa do hyperthreading ou algo assim. Mas agora a questão é por que a CPU realmente precisa ficar lá, praticamente não fazendo mais nada além de apenas esperar por E / S? Quero dizer a idéia básica ou a arquitetura do gerenciamento de processos, agora não sei se é o SO responsável por isso ou se trata da parte do hardware, mas deve ser possível que a CPU aguarde ou verifique regularmente, enquanto realmente executa muitas outras tarefas e só volte ao processo de E / S quando estiver pronto. De fato, se essa é uma tarefa tão difícil e a CPU tem que esperar, por que não é ' que gerenciado pelo hardware com mais eficiência? Por exemplo, poderia haver algum tipo de mini CPU que esperaria por ele e entregaria a pequena parte dos dados à CPU real assim que ela retornasse ao processo e, assim, o processo seria repetido e não teríamos praticamente dedicar todo o núcleo da CPU ao processo de cópia de dados ... Ou seria eu quem deveria inventar esse tipo de coisa e receber um prêmio nobel por isso? : S
Agora, tudo bem, eu estou realmente colocando isso agora da perspectiva dos observadores e realmente não fui tão fundo no assunto, mas realmente não entendo por que a CPU precisa trabalhar com a velocidade do disco rígido, enquanto poderia faça outra coisa e volte ao HDD quando estiver pronto. A idéia não é acelerar o aplicativo que precisa dessa operação de E / S, do processo de cópia ou de qualquer outra coisa, mas a idéia é afetar minimamente o consumo da CPU durante a execução dessa operação, para que o sistema operacional possa utilizá-lo para outros processos e para o usuário. não precisaria sentir um atraso geral do computador ao fazer algumas operações de cópia ...