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:
- 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).
- Escolher o próximo processo: O programador do sistema operativo seleciona o próximo processo a executar.
- 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.