Em sistemas operacionais, uma troca de contexto (também conhecido como chaveamento ou mudança de contexto) é o processo computacional de armazenar e restaurar o estado (contexto) de uma CPU de forma que múltiplos processos possam compartilhar uma única instância de CPU.

Uma vez que troca de contexto se refere à saída de uma tarefa do processamento para que outra assuma, podendo a primeira não ter sido concluída é garantido que o contexto anterior armazenado seja restaurado, assim isso permite que, quando for, o ponto de execução volte ao mesmo estado que foi deixado durante o armazenamento.

Uso editar

Existem três cenários no qual a troca de contexto ocorre:

  • O primeiro e mais comum é a multitarefa. Em um esquema de escalonamento de processos, um processo deve ser substituído por outro na CPU. Em um sistema preemptivo, o escalonador permite que cada tarefa seja executada por um determinado tempo. Se um processo não indicar explicitamente a troca de contexto (por exemplo, ao realizar uma operação de E/S), uma interrupção de tempo é disparada, e o sistema operacional troca o contexto para outro processo. Isso assegura que a CPU não é monopolizada por um processo somente.
  • O segundo cenário é a interrupção de hardware, presente em algumas arquiteturas (como o Intel x86). Isso significa que se a CPU requisita dados de um disco, por exemplo, ela não precisa esperar a leitura em disco terminar, podendo continuar alguma outra tarefa na fila de execução. Quando a leitura em disco é terminada, a CPU é interrompida e o resultado da leitura é disponibilizado. Antes de realizar a interrupção, o contexto do processo em execução é armazenado para futura restauração.
  • O terceiro cenário é a troca de modo usuário para modo núcleo. Quando tal transição é requisitada pelo sistema operacional, uma troca de contexto não é necessária, mas dependendo da implementação isso é feito.

Procedimento editar

Em uma troca de contexto, o estado do primeiro processo deve ser armazenado de alguma forma, para que quando o escalonador retorne sua execução, o estado seja antes restaurado. O estado de um processo inclui todos os registradores que o processo pode estar usando, especialmente o contador de programa, e qualquer outro dado específico do sistema operacional. A estrutura que armazena todas essas informações é chamada de bloco de controle de processo.

O bloco pode ser armazenado na pilha de execução do processo na memória do núcleo, ou em algum outro local específico definido pelo sistema operacional. A seguir é feita a restauração do bloco de controle do processo que irá executar. Com a atualização do contador de programa, a execução do novo processo pode iniciar.


  Este artigo sobre computação é um esboço. Você pode ajudar a Wikipédia expandindo-o.