Please enable JavaScript.
Coggle requires JavaScript to display documents.
Tópicos em Gestão de Tarefas, Gustavo Chemin Ribeiro - 2556480, Capítulo…
Tópicos em Gestão de Tarefas
O Problema
Definição
Uma tarefa de
ALTA
prioridade é forçada a esperar por uma de
BAIXA
prioridade.
Ingredientes Necessários
Escalonamento por Prioridade Preemptivo:
Tarefas de maior prioridade tomam o processador.
Recurso Compartilhado com Exclusão Mútua:
Algo que só pode ser usado por uma tarefa de cada vez (ex: área de memória, arquivo).
Cenário Clássico (3 Tarefas)
t_baixa:
Pega o recurso R.
t_media:
Entra e toma o processador de t_baixa (preempção).
t_alta:
Entra, precisa do recurso R, mas ele está com t_baixa.
Resultado:
t_alta (a mais importante) tem que esperar t_media (menos importante) terminar, para só então t_baixa poder rodar e liberar o recurso.
A Solução
Protocolo: Herança de Prioridades
Conceito:
A tarefa de baixa prioridade que possui o recurso
"herda" temporariamente
a prioridade da tarefa de alta prioridade que está esperando por ele.
Como Funciona (no cenário clássico)
Quando t_alta tenta pegar o recurso R e bloqueia...
...o SO
eleva a prioridade de t_baixa
para o mesmo nível de t_alta.
Agora, t_baixa pode competir com (e até tomar o lugar de) t_media.
t_baixa executa rapidamente, libera o recurso R e
volta à sua prioridade original
.
t_alta finalmente consegue o recurso e executa.
Nota:
A herança garante que a tarefa que está bloqueando um recurso crítico seja executada o mais rápido possível para liberá-lo.
Exemplo Real
Sonda Mars Pathfinder (NASA, 1997)
Sistema:
SO de tempo real VxWorks.
As Tarefas:
t_ger (gerência):
ALTA prioridade.
t_com (comunicação):
MÉDIA prioridade.
t_met (meteorologia):
BAIXA prioridade.
O Recurso:
Uma área de transferência de dados.
O Problema:
Ocorria a inversão de prioridades exatamente como no cenário clássico.
Sintoma:
O sistema reiniciava esporadicamente. Um
watchdog timer
(cão de guarda) via que a tarefa de gerência (alta prioridade) não respondia e forçava um
reboot
de segurança.
A Solução:
Engenheiros da NASA diagnosticaram o problema e enviaram um
patch
(correção de software) para a sonda em Marte para
ativar a herança de prioridades
no sistema operacional.
Gustavo Chemin Ribeiro - 2556480
Capítulo 07