Contexto

Uma mudança de contexto ocorre quando a CPU muda de um processo para outro. Isto pode acontecer quando um processo é preposto por outro processo com maior prioridade, ou quando um processo desiste voluntariamente da CPU. As trocas de contexto são normalmente muito rápidas e permitem à CPU realizar multitarefas de forma eficiente, alternando entre processos. Como podemos evitar a comutação de contexto? Há várias maneiras de evitar a mudança de contexto:

1. Use um sistema operacional em tempo real (RTOS)
2. Use um modelo de programação orientado por eventos
3. Use um modelo de programação cooperativa multitarefa
4. Use um modelo de programação com uma única rosca
1. Use um sistema operacional em tempo real (RTOS)

Um sistema operacional em tempo real (RTOS) é projetado para evitar a mudança de contexto, fornecendo recursos como programação preventiva e interrupções em tempo real. A programação preventiva garante que as tarefas críticas de tempo tenham sempre prioridade e nunca sejam atrasadas por tarefas não críticas. As interrupções em tempo real permitem que as tarefas críticas de tempo sejam interrompidas e executadas imediatamente, sem esperar pela próxima fatia de tempo programada.

2. 2. Use um modelo de programação controlado por eventos

Um modelo de programação controlado por eventos evita a mudança de contexto, executando o código apenas em resposta a eventos. Isto significa que o código só é executado quando é necessário, e períodos ociosos são usados para esperar por eventos. Isto pode levar a um código mais eficiente, bem como a um código mais simples, uma vez que não há necessidade de manter informações de estado entre eventos.

3. Use um modelo de programação multitarefa cooperativa

Um modelo de programação multitarefa cooperativa evita a mudança de contexto, designando uma tarefa como a tarefa "ativa" em um determinado momento. Esta tarefa tem o controle total da CPU e é responsável por ceder o controle a outras tarefas quando não é necessária. Isto pode levar a uma mudança de contexto mais eficiente

O que acontece quando a mudança de contexto?

Na computação, uma mudança de contexto é o processo de armazenamento e restauração do estado de uma CPU para que vários processos possam compartilhar uma única CPU. Isto permite que vários processos partilhem uma única CPU sem interferirem uns com os outros.

Uma mudança de contexto é normalmente iniciada por uma interrupção de hardware ou de software. Quando ocorre uma interrupção, a CPU armazena o estado atual do processo na memória e depois carrega o estado do novo processo da memória. Este processo é conhecido como um comutador de contexto.
Os interruptores de contexto são tipicamente muito rápidos e permitem que a CPU partilhe eficientemente o seu tempo entre vários processos. No entanto, os context switches podem introduzir alguma sobrecarga, já que a CPU precisa armazenar e restaurar o estado do processo.

O que é um sistema operativo de deadlock?

Um deadlock é um estado no qual um processo ou grupo de processos não pode continuar porque cada um está esperando por um evento que só pode ser gerado por outro processo no grupo.

Um exemplo clássico de um deadlock é quando dois processos têm um bloqueio em um recurso diferente, e cada processo está esperando que o outro processo libere seu bloqueio no recurso antes que ele possa continuar. Se nenhum dos processos liberar seu bloqueio, então os dois processos ficarão bloqueados.

Podem ocorrer bloqueios em qualquer sistema que permita que vários processos acessem recursos compartilhados. No entanto, é mais provável que ocorram em sistemas que permitam que os processos esperem por recursos que estão sendo utilizados por outros processos.

Há quatro condições que devem ser cumpridas para que um impasse ocorra:

1) Exclusão mútua: Deve haver alguns recursos que só podem ser utilizados por um processo de cada vez.

2) Aguardar e esperar: Um processo deve estar segurando um recurso enquanto espera para adquirir outro recurso que está sendo segurado por outro processo.

3) Sem preempção: Um processo não pode liberar um recurso que está sendo mantido a menos que tenha primeiro adquirido todos os recursos que precisa.

4) Espera circular: Deve haver uma cadeia de processos, cada um retendo um recurso e esperando para adquirir um recurso retido pelo próximo processo da cadeia. Quem é responsável pela mudança de contexto? A mudança de contexto é o processo de armazenar e restaurar o estado de uma CPU para que múltiplos processos possam compartilhar uma única CPU. O sistema operacional é responsável por gerenciar o processo de mudança de contexto.