Troca de contexto: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
RibotBOT (discussão | contribs)
m Bot: Modificando: fr:Anthony Rivoire
Luckas-bot (discussão | contribs)
m Bot: Adicionando: zh:上下文交換
Linha 31: Linha 31:
[[pl:Przełączanie kontekstu]]
[[pl:Przełączanie kontekstu]]
[[simple:Context switch]]
[[simple:Context switch]]
[[zh:上下文交換]]

Revisão das 10h44min de 5 de fevereiro de 2010

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

Existem três cenários no qual a troca de contexto ocorre. A primeira e mais comum e 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

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.