Sobes.tech
Junior

O que é a mudança de contexto?

sobes.tech IA

Resposta da IA

A mudança de contexto (Context Switching) é o processo de guardar o estado de um processo (ou thread) e restaurar o estado de outro processo (ou thread) pelo sistema operativo. Isto permite que vários processos partilhem um mesmo processador.

O algoritmo inclui os seguintes passos:

  1. Guardar o contexto atual: Os registos do processador, o contador de instruções (PC), o estado da pilha e outras informações do processo atual são guardados no seu descritor (PCB - Bloco de Controlo de Processo).
  2. Escolher o próximo processo: O programador do sistema operativo seleciona o próximo processo a executar.
  3. Restaurar o contexto: O estado guardado do processo selecionado é carregado a partir do seu PCB para os registos do processador.

Os custos (overhead) de mudança de contexto incluem:

  • Tempo gasto a guardar e restaurar o estado.
  • Perda de eficiência devido a falhas de cache (cache misses), pois o cache cheio com dados de um processo torna-se irrelevante para outro.
  • Custos de execução das instruções do programador.

Exemplo:

Suponha que temos dois processos, A e B, a executar num núcleo de processador.

// Inicialmente, o Processo A está a executar
// O Processo A usa os recursos da CPU

// Ocorre um evento que requer uma mudança, por exemplo, o quantum de tempo do Processo A expira
// O estado do Processo A (registos, PC) é guardado
// O sistema operativo seleciona o Processo B para executar
// O estado do Processo B é carregado
// O Processo B começa a execução

A mudança de contexto é um mecanismo fundamental de multitarefa nos sistemas operativos, permitindo criar a ilusão de execução paralela de múltiplos processos num único processador físico.