Por que a troca de processos não torna nossa experiência de computação descontínua

2

Estamos todos cientes de que a CPU está alternando entre os processos em execução, mas como é que nunca experimentamos qualquer descontinuação enquanto a CPU está mudando e estamos usando aplicativos?

Eu diria que isso é por causa da velocidade dos comutadores entre os processos, mas estou curioso sobre quantos processos realmente afetariam o desempenho de uma CPU a um ponto em que os humanos experimentariam a interrupção (ou interrupções) em um único aplicação e como se manifestaria em sistemas operacionais modernos?

    
por tox 24.07.2014 / 10:59

1 resposta

0

I would say this is because of the sheer speed of the switches between processes

Você está correto. Mas ainda as operações sendo executadas pelo microprocessador estão sendo realizadas em etapas discretas e não de forma contínua. Todo ciclo de clock faz com que a CPU busque o conteúdo da memória apontada pelo contador de programa. No próximo ciclo de clock, ele decodifica a instrução e assim por diante. Se você conseguir se tornar rápido o suficiente (para notar), você pode notar que a música que você acha que é contínua realmente toca por algum tempo e então para de tocar novamente e assim por diante.

O animal rápido e complexo que faz o processo de chaveamento rápido é chamado de programador de curto prazo (planejador de CPU). Deve ser rápido porque está sendo invocado a cada poucos milissegundos e não está fazendo nenhum trabalho útil (da perspectiva do usuário). Embora diferentes implementações possam ter pequenas diferenças, quase todos os agendadores mantêm as filas de prioridade para diferentes classes de processos, como ativo, segundo plano, etc.

Assim, mesmo que milhares de processos estivessem sendo executados em um computador, apenas alguns deles estariam interagindo diretamente com o usuário. Agendadores levam essas informações em conta ao alternar processos. Porque um processo de verificação de atualização pode esperar, mas a transmissão de música em tempo real não pode.

But I am curious about how many processes would really impact the performance of a CPU to a point where humans would experience discontinuation

Não existe um número mágico e existem muitos outros fatores que afetam o desempenho (velocidade da memória, tamanho, etc.). Acho que você ficará sem memória antes que o desempenho do agendador se torne um problema. Uma coisa que pode se manifestar como breakouts é quando uma rotina de interrupção de alta prioridade está sendo chamada e está sendo executada por muito tempo.

Curiosidade : - Para tornar a experiência do usuário melhor em um sistema (esqueci) Steve Jobs orientou os engenheiros da Apple a atribuir a maior prioridade à interrupção do mouse, de modo que o ponteiro não fique em movimento. / p>     

por 30.01.2018 / 14:21