Resumo sobre os métodos de escalonamento Acontecimentos que ...
Resumo sobre os métodos de escalonamento Acontecimentos que ...
Resumo sobre os métodos de escalonamento Acontecimentos que ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Escalonamento para tempo real<br />
Estático baseado em tabelas (table-driven)<br />
<strong>de</strong>termina em tempo <strong>de</strong> execução o momento em <strong>que</strong><br />
um processo começa (ou recomeça) a executar<br />
Estático com preensão e baseado nas priorida<strong>de</strong>s<br />
Dinâmico baseado no cumprimento <strong>de</strong> temp<strong>os</strong> limite<br />
(<strong>de</strong>adlines)<br />
Escalonamento com preensão baseado em priorida<strong>de</strong>s<br />
po<strong>de</strong> incluir preensão imediata: permite <strong>que</strong> um<br />
processo responda a event<strong>os</strong> muito rapidamente<br />
Problema da inversão das priorida<strong>de</strong>s<br />
Em qual<strong>que</strong>r sistema com priorida<strong>de</strong>s<br />
Um processo p2 po<strong>de</strong> blo<strong>que</strong>ar por muito tempo um<br />
processo <strong>de</strong> mais alta priorida<strong>de</strong> p1<br />
se p1 necessita <strong>de</strong> um recurso <strong>de</strong>tido por p2, não<br />
po<strong>de</strong> interromper o processo <strong>de</strong> mais baixa<br />
priorida<strong>de</strong> <strong>de</strong>ntro da respectiva SC (secção crítica)<br />
Soluções:<br />
Executar a SC à priorida<strong>de</strong> do processo p1 <strong>que</strong> também<br />
usa a SC<br />
Herança dinâmica <strong>de</strong> priorida<strong>de</strong>s:<br />
p2 está na SC<br />
priorida<strong>de</strong>(p1) > priorida<strong>de</strong>(p2)<br />
p1 tenta entrar na SC ⇒ p2 herda a priorida<strong>de</strong> <strong>de</strong><br />
p1 enquanto executa a SC<br />
02-12-2007 SO - 07/08 21<br />
SMP:Symmetric Multiprocessor<br />
Memória Partilhada<br />
Processor Processor Processor<br />
Cache Cache<br />
Cache<br />
Main<br />
Memory<br />
I/O<br />
Subsystem<br />
. . .<br />
Exemplo: Escalonamento baseado em<br />
Deadlines<br />
As aplicações <strong>de</strong> tempo real não estão interessadas<br />
em velocida<strong>de</strong> absoluta mas na conclusão <strong>de</strong> tarefas<br />
num dado prazo limite (<strong>de</strong>adline)<br />
Escolher para correr a tarefa com a “<strong>de</strong>adline” mais<br />
próxima<br />
maximiza a p<strong>os</strong>sibilida<strong>de</strong> <strong>de</strong> cumprimento <strong>de</strong>ssas<br />
“<strong>de</strong>adlines”<br />
Tem <strong>de</strong> levar em conta todas as <strong>de</strong>adlines pen<strong>de</strong>ntes e<br />
temp<strong>os</strong> <strong>de</strong> tratamento <strong>de</strong> cada processo<br />
Escalonamento para múltipl<strong>os</strong><br />
processadores<br />
Problema com várias vertentes e longe <strong>de</strong><br />
estar resolvido<br />
Soluções para:<br />
CPUs homogéne<strong>os</strong><br />
Multiprocessamento simétrico: qual<strong>que</strong>r CPU<br />
po<strong>de</strong> executar qual<strong>que</strong>r processo <strong>que</strong> esteja<br />
na fila READY<br />
Tempo <strong>de</strong> acesso uniforme à memória (UMA)<br />
02-12-2007 SO - 07/08 22<br />
Partilha da carga (load sharing)<br />
Solução assimétrica: <strong>de</strong>cisões <strong>de</strong> <strong>escalonamento</strong><br />
pertencem a um só CPU. Evita o acesso paralelo à fila<br />
READY<br />
cada CPU uma fila ready (ou conjunto <strong>de</strong> filas)<br />
Solução simétrica (SMP): Fila Ready comum a tod<strong>os</strong><br />
<strong>os</strong> CPUs<br />
Os CPUs fazem auto-<strong>escalonamento</strong>: quando um CPU<br />
fica livre, vai à fila READY comum escolher um<br />
processo para correr<br />
É preciso garantir <strong>que</strong> a manipulação da fila READY é<br />
uma secção crítica em paralelismo real<br />
Afinida<strong>de</strong> <strong>de</strong> caches: <strong>de</strong> preferência,um<br />
processo/threads corre sempre no mesmo CPU<br />
02-12-2007 SO - 07/08 24<br />
4