Escolar Documentos
Profissional Documentos
Cultura Documentos
P1: P2:
Considerando x = 2 – Proibindo que mais de um processo possa ler
x := x + 1 x := x * 2
y := 5 + 2 a := 2 * 5
P1 P2 : x = 6 ou escrever numa área compartilhada ao
P2 P1 : x = 5
z := y + t c := a - 7 mesmo tempo.
Tanenbaum, Capítulo 2
wakeup()
– Ativa o processo quando o recurso foi liberado
Down(s):
s.counter--
if (s.counter < 0) contador = contador - 1
{
s.enqueue (processo_atual) P1
suspend(processo_atual)
}
Database
DEADLOCK Deadlock
Problema de programação concorrente
Preemptivo:
Novo – Execução de um processo dura um tempo pré-
determinado
– Quando o tempo acaba, o processo é interrompido.
Pronto Executando
Não-preemptivo:
– Processo fica em execução até que:
Bloqueado
Terminado • Termine
• Libere a CPU VOLUNTARIAMENTE
• Seja bloqueado por falta de recurso
O que afeta a performance de um
Ilustração da troca de contexto
algoritmo de escalonamento?
Cada processo possui informações que
permitem definir precisamente seu estado. preempção
• Tais informações definem o contexto do processo
– Separação do escalonamento
• Escalonamento = Política + Mecanismo
• OBJETIVOS:
– melhorar o throughput (vazão) – Tempo real:
– melhorar o turnaround (tempo entre submissão e • Em geral são preemptivos
finalização) • OBJETIVO:
– manter a CPU ocupada – cumprir requisitos lógicos
– cumprir requisitos temporais
Qual o objetivo do escalonamento? Escalonamento para sistemas em lote