A CPU alterna entre os processos usando um agendador de processos, que faz parte do sistema operacional. O comutador envolve salvar o estado do processo atual e carregar o estado do próximo processo. Isso é frequentemente chamado de
interruptor de contexto .
Aqui está uma ilustração simplificada:
`` `
+-------------------++-----------------+-------------------+
| Processo a | <-> | Agendador de Processos | <-> | Processo B |
+-------------------++-----------------+-------------------+
^ |
| V
+-------------------------------------------+
Interruptor de contexto
`` `
Explicação: 1.
Processo A está em execução: A CPU está executando instruções para o processo A. Os registros da CPU, contador de programas (PC - indicando a próxima instrução) e informações de gerenciamento de memória (como tabelas de página) refletem o estado do processo A.
2.
Switch de contexto iniciado: Uma interrupção (por exemplo, interrupção do timer, conclusão de E/S) ou uma decisão de agendamento faz com que o agendador do sistema operacional intervenha.
3. O agendador salva o estado completo do processo A (registros da CPU, PC, informações de gerenciamento de memória) em um bloco de controle de processo (PCB), uma estrutura de dados na memória. Pense no PCB como um instantâneo do processo.
4.
Processo B Selecionado: O agendador seleciona o próximo processo a ser executado, digamos o processo B, com base em vários algoritmos de agendamento (por exemplo, redondo-robin, baseado em prioridade).
5.
Processo B do estado carregado: O agendador carrega o estado salvo do processo B (do seu PCB) nos registros da CPU, PC e unidades de gerenciamento de memória.
6.
Processo B é executado: A CPU agora executa instruções para o processo B.
Esse processo se repete continuamente, permitindo que vários processos compartilhem o tempo da CPU, criando a ilusão de execução paralela (simultaneidade). Quanto mais rápido a troca de contexto, mais suave a experiência multitarefa. No entanto, a troca de contexto tem alguma sobrecarga.