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

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

Todos sabemos que a CPU está alternando entre os processos em execução, mas como é que nunca experimentamos qualquer interrupção enquanto a CPU está alternando e usamos aplicativos?

Eu diria que isso se deve à grande velocidade das alternâncias entre processos, mas estou curioso para saber quantos processos realmente impactariam o desempenho de uma CPU a um ponto em que os humanos experimentariam descontinuação (ou interrupções) em um único aplicativo e como isso se manifestaria em sistemas operacionais modernos?

Responder1

Eu diria que isso se deve à grande velocidade das alternâncias entre processos

Você está certo. Mas ainda assim as operações realizadas pelo microprocessador são realizadas em etapas discretas e não de forma contínua. Cada ciclo de clock faz com que a CPU busque o conteúdo da memória apontado pelo contador do 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 perceber), poderá perceber que a música que você pensa ser contínua na verdade toca por algum tempo e depois para, toca novamente e assim por diante.

A fera rápida e complexaque torna o processo de comutação extremamente rápido é chamado de agendador de curto prazo (agendador 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 escalonadores mantêm filas de prioridade para diferentes classes de processos, como ativo, em segundo plano, etc.

Portanto, mesmo que milhares de processos estivessem em execução em um computador, apenas alguns deles interagiriam diretamente com o usuário. Os agendadores levam essas informações em consideração ao alternar processos. Porque um processo de verificação de atualização pode esperar, mas o streaming de música em tempo real não.

Mas estou curioso para saber quantos processos realmente impactariam o desempenho de uma CPU a um ponto em que os humanos experimentariam a descontinuação

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 interrupções é quando alguma rotina de interrupção de alta prioridade está sendo invocada e executada por um longo tempo.

Fato engraçado: - Para melhorar a experiência do usuário em um sistema (esqueci), Steve Jobs orientou os engenheiros da Apple a atribuir a prioridade mais alta à interrupção do mouse para que o ponteiro não ficasse atrasado enquanto se movia.

informação relacionada