Troca de contexto

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Este artigo não cita fontes confiáveis e independentes (desde dezembro de 2013). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)

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. É garantido que quando o contexto anterior armazenado seja restaurado, o ponto de execução volte ao mesmo estado que foi deixado durante o armazenamento.

Termo referente a sistemas operacionais, encontrado também sobre a designação troca de contexto ou mudança de contexto, que se refere à saída de uma tarefa do processamento para que outra assuma, podendo a primeira não ter sido concluída. O chaveamento garante que quando a primeira novamente voltar a ser processada todo o seu contexto de software volte ao ponto de onde ela permitiu a entrada de outro processo.

Uso[editar | editar código-fonte]

Existem três cenários no qual a troca de contexto ocorre. A primeira e mais comum é a multitarefa. Em uma 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 | editar código-fonte]

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.

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.