SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Sistemas operacionais modernos
Terceira edição
ANDREW S. TANENBAUM
Capítulo 6
Impasses
Adaptado por:
Prof. Esp. Rodrigo Ronner
rodrigoronner@gmail.com
http://rodrigoronner.blogspot.com
Deadlocks
• Situação onde dois ou mais processos estão
esperando por um evento que só pode ser
gerado por algum dos mesmos processos em
espera.
• Ou seja:
• Cada processo de um conjunto em deadlock está
esperando por um recurso que foi entregue a outro
processo do mesmo conjunto.
Deadlocks
• Em alguns casos pode ocorrer a seguinte situação: um processo
solicita um determinado recurso e este não está disponível no
momento.
• Quando isso acontece o processo entra para o estado de espera
(bloqueado).
• Em algumas situações é possível que estes processos nunca mais
mudem de estado, pois os recursos que eles necessitam podem
estar sendo mantidos por outros processos em espera. Essa situação
é chamada de deadlock ou impasses.
“Um conjunto de processos está em estado de deadlock quando todos os
processos no conjunto estão esperando por um evento que só pode ser causado
por outro processo do conjunto.”
Por exemplo, que dois processos queiram cada um gravar em CD um
documento obtido de um scanner:
• O processo A solicita permissão para usar o scanner e é autorizado;
• O processo B, que é programado diferentemente, solicita primeiro
permissão para usar o gravador de CD e também é autorizado;
• Então, o Processo A pede para usar o gravador de CD, mas a solicitação lhe é
negada até que o processo B o libere;
• Infelizmente, em vez de liberar o gravador de CD, o processo B pede para
usar o scanner;
• Nesse ponto, ambos os Processos ficam bloqueados e assim permanecerão
para sempre;
• Essa situação é denominada deadlock.
Deadlocks
Deadlocks
• A ideia de impasse ou deadlock pode ser mais facilmente entendida se
fizermos uma analogia com uma escada de um prédio utilizada para casos
de incêndio.
• Apesar de ter sido construída como uma opção de fuga em caso de
incêndio, as pessoas que trabalham no prédio muitas vezes preferem utilizar
a escada ao invés dos elevadores.
• No entanto, há espaço apenas para uma pessoa em cada degrau. Logo, o
tráfego pela escada vai bem até que 2 pessoas se cruzam.
• Por outro lado, existe uma plataforma em cada um dos andares que suporta
várias pessoas.
• Os problemas acontecem no momento em que uma pessoa que está
subindo a escada encontra outra que está descendo e ambas se recusam a
retroceder até a plataforma.
• Esta situação permanecerá gerando um impasse ou deadlock.
Exemplo para Atravessar uma Ponte
 Trafégo somente em uma direção
 Cada seção da ponte pode ser vista como um recurso
 Se ocorre deadlock, pode ser resolvido se um carro voltar
(preempção de recursos e rollback)
 Diversos carros podem ter que voltar se ocorre deadlock
 Pode causar starvation (Quando um processo nunca é
executado ("morre de fome"), pois processos de prioridade
maior sempre o impedem de ser executado.)
Deadlocks
Deadlocks: Recursos
É qualquer objeto ao qual deva ser dado acesso exclusivo para cada processo. Recursos
podem ser dispositivos de hardware ou arquivo. Para a utilização de um recurso, o
processo deve realizar a seguinte sequência:
• Requisitar o recurso;
• Utilizar o recurso ;
• Liberar o recurso.
Se um recurso não estiver disponível quando for requisitado, o processo que o requisitou
é forçado a aguardar, sendo dois métodos utilizados:
1) O processo é bloqueado e acordado quando o recurso estiver disponível;
2) é enviado um código de erro ao processo indicando que a requisição falhou sendo,
então, que o próprio processo deve decidir a ação a tomar (ex: aguardar algum tempo
e pedir novamente).
Deadlocks:Recursospreemptíveise não
preemptíveis
• Preemptível é aquele que pode ser retirado do processo proprietário sem nenhum
prejuízo;
• Recurso Não Preemptível: é aquele que não pode ser retirado do atual Processo
proprietário sem que a computação apresente falha.
Se um Processo começou a gravar um CD-ROM, retirar dele repentinamente o gravador de CD
e dar a um outro processo resultará em um CD com erros . Gravadores de CD são recursos que
não podem ser tomados a qualquer momento, isto é, não são preemptíveis.
Deadlocks: Condições Para ocorrência
de Deadlock
• Condições necessárias:
• Exclusão Mútua;
• Posse e Espera;
• Não-Preempção;
• Espera Circular.
Obs: Todas as condições necessárias devem estar presentes para
que ocorra. Se faltar uma delas, não ocorrerá deadlock.
• Exclusão mútua: Apenas um processo por vez pode usar o recurso.
• Posse e Espera: Processos que, em determinado instante, retêm recurso
concedido anteriormente podem requisitar novos recursos.
• Não-preempção: Os recursos só podem ser liberados voluntariamente pelo
processo que o mantém.
• Espera circular: Dado um conjunto de processos {P1, P2, ..., Pn} em espera,
P1 está esperando por um recurso mantido por P2; P2 está esperando um
recurso mantido por P3 e assim sucessivamente, até que Pn esteja
esperando por um recurso alocado por P1.
Deadlocks: Condições para ocorrência de
Deadlock
Deadlocks: Prevenção de Deadlocks
• Exclusão Mútua.
• Solução:
• Sem exclusão mútua, não existem deadlocks.
Por quê?
• Quando possível de ser realizada, a eliminação das
condições de exclusão mútua resolve os problemas de
deadlock.
• Problemas:
• Risco de Inconsistência no compartilhamento de recursos.
Deadlocks: Prevenção de Deadlocks
• Posse e Espera.
• Solução:
• Alocação de todos os recursos necessários antes do
inicio dos processos.
• Problemas:
• Desperdício dos recursos do sistema.
• Impossibilidade de alocação dinâmica de recursos.
• Risco de starvation.
Muitos processos só sabem quanto recursos vão precisar
somente após sua execução.
Deadlocks: Prevenção de Deadlocks
• Não-Preempção.
• Solução:
• Retirada do recurso de um processo quando for
requisitado por outro processo.
• Problemas:
• Pode fazer o processo perder totalmente o processamento
realizado.
• Risco de starvation.
Deadlocks: Prevenção de Deadlocks
• Espera Circular
• Solução:
• Limitação da posse de um recurso por vez.
• Se um processo necessitar de outro recurso, deve liberar
qualquer recurso já alocado.
• Fornecer uma numeração global de todos os recursos. Processos
podem requisitar recursos sempre que necessário, mas todas as
solicitações devem ser feitas em ordem numérica. Ex: 1 –
Impressora, 2 – Scanner, 3 – Plotter, 4 – Unidade Fita, 5 – Unidade
CD-ROM.
• Problemas:
• Restrição no grau de compartilhamento e processamento dos
processos.
Deadlocks: Modelagem de Deadlock
• Estratégias para Solução de Deadlocks:
• Ignorar;
• Detectar e Tratar;
• Prevenir.
Em geral, podemos utilizar 3 métodos para tratar o problema de Deadlocks:
• 1. podemos usar um protocolo para garantir que o sistema nunca entre em estado de
deadlock: PREVENÇÃO (O Sistema operacional deve eliminar uma das 4 condições para
que o deadlock ocorra)
• 2. podemos permitir que o sistema entre em deadlock e se recupere: DETECÇÃO e
RECUPERAÇÃO.
• 3. podemos ignorar o problema (Algoritmo do avestruz). Esta opção é utilizada pela
maioria dos sistemas operacionais, incluindo o UNIX.
• Para garantir que um sistema nunca entre em deadlock é possível usar um esquema de
prevenção de Deadlocks ou de impedimento de Deadlocks. Esta prevenção é realizada
através de um conjunto de métodos que garantem que pelo menos uma das situações
necessárias para que um deadlock aconteça seja falha. Basicamente, isso é feito
limitando a forma como as solicitações de recursos acontecem.
Deadlocks: Modelagem de Deadlock
Deadlocks: Prevenção de Deadlocks
• Todas as soluções anteriores são limitadas.
• Alternativa mais utilizada:
• Algoritmo do Banqueiro (Dijkstra – 1965)
• Exige que todos os processos informem o número máximo de
cada tipo de recurso necessário a sua execução.
• Assim é possível definir:
• O estado de alocação de um recurso.
• Número de recursos alocados e disponíveis.
• O número máximo de processos que necessitem desses recursos.
• Problemas:
• Necessidade de definir o número fixo de processos ativos e
recursos disponíveis.
Deadlocks: Evitação Dinâmica de Deadlock
• Procura-se evitar o deadlock sem impor restrições aos processos, isto é
possível desde que alguma informação sobre a utilização de recursos pelo
processo seja disponível antecipadamente ao SO. Vamos analisar maneiras de
se conseguir isso:
• Algoritmo do Banqueiro para um único Recurso: usado para evitar deadlocks
consiste em simular as decisões de um banqueiro no empréstimo de certa
quantia de dinheiro sujeita a certas condições.
• No exemplo próximo slide temos 4 clientes (A B C D) cada um especificou o
número máximo de crédito que precisará, mas eles não precisam de todas
elas imediatamente, de forma que o banqueiro reservou 10 unidades para
atender todos os pedidos (totalizando 32 unidades).
Deadlocks: Prevenção de Deadlocks
Chamamos de estado, a situação dos empréstimos e dos recursos ainda disponíveis em um
dado momento.
Algoritmo do Banqueiro para um único Recurso:
O exemplo ao lado demonstra um estado seguro, pois
existe uma sequência de outros estados que leva a
que todos os clientes recebam seus empréstimos até
seus limites de crédito.
Disponível:2
Algoritmo do Banqueiro para um único Recurso:
Deadlocks: Prevenção de Deadlocks
• O banqueiro pode emprestar 2 unidades à C; pegar de volta (4)
emprestar à B, pegar as 5 unidades de volta e emprestar à A, pegar as 6
unidades de volta e emprestar 3 delas à D, pegando então as 7
unidades de volta, garantindo o atendimento a todos os clientes.
Questão???
Se por exemplo o cliente B fizesse um pedido de mais uma unidade (2)
teríamos um estado não seguro?
• Não há forma do banqueiro garantir o atendimento de todos os pedidos, podendo vir a gerar um
deadlock. Ainda não haverá um deadlock, pois os valores de máximo não precisam necessariamente
ser atingido.
• Por exemplo, o cliente D pode decidir que não precisa mais de novos recursos e devolver os 4 que
pediu, voltando novamente a uma situação segura.
• Mas o banqueiro não pode contar com isso, então para cada pedido que chega, o banqueiro deve
verificar se conceder o mesmo leva a uma situação segura, verificando se o disponível é suficiente
para atender o cliente mais próximo de seu máximo.
• Se for, finge que esse cliente já devolveu tudo que possuía, marca o mesmo como terminado e verifica
se pode atender o cliente mais próximo do máximo entre os que restam. Se ele puder levar a bom
termo esse processo, atendendo todos os clientes então o estado é seguro.
Algoritmo do Banqueiro para um único Recurso:
Deadlocks: Prevenção de Deadlocks
Exercícios
1. O que é deadlock, quais as condições para o acontecimento desses impasses e
quais as soluções possíveis?
2. Pesquise e descreva o mecanismo (ideia) de funcionamento do algoritmo do
banqueiro de Dijkstra proposto para evitar deadlocks. Além disso, cite as
deficiências presentes nesse algoritmo.
3. Um estado inseguro é um estado de deadlock?
4. Descreva as restrições que o algoritmo do banqueiro impõe aos processos.
5. Por que a prevenção de deadlock não é uma preocupação primária para
muitos sistemas operacionais?
6. Por que a recuperação de deadlock é um problema tão difícil?
7. Explique o são Recursos preemptíveis e não preemptíveis?
8. Explique as diferenças entre impasses e condição de inanição (starvation)?
Gerenciamento de processos
Políticas de escalonamento
(agendamento)
•SO escolhe qual processo da fila de PRONTOS irá executar
•Despachante designa um processador a um dado processo
•Política de escalonamento (ou disciplina de escalonamento):
–Critério do SO para escolher o processo que executará
Políticas de escalonamento
(agendamento)
Forte influência no desempenho global do SO
•Deve garantir: justiça, previsibilidade e escalabilidade
•Deve considerar o comportamento de um processo
–Processos CPU-Bound x I/O-Bound
–Processos Em Lote x Interativo
Objetivos do escalonamento (em relação aos processos)
•Maximizar: throughput (total de processos terminados na unidade de tempo)
•Minimizar: turnaround (tempo da criação até o término do processo)
•Maximizar: taxa de utilização de CPU (tempo total de ocupação da CPU)
•Minimizar: tempo de resposta (tempo da criação até o inicio da execução)
•Minimizar: tempo de espera (soma dos tempos na fila de prontos)
•Minimizar: tempo de resposta em processos interativos
•Maximizar: utilização dos recursos (HW ou SW)
•Minimizar: a sobrecarga de gerenciamento do SO
•Favorecer: rotinas de maior prioridade e importância
Escalonamento
Poderá ser classificada como
–Preemptiva
–Não-preemptiva
•Não-preemptiva (cooperativo)
–SO não pode interromper um processo
–Processo executa até concluir (ou parar voluntariamente)
•Preemptiva:
–SO pode interromper um processo a qualquer instante
–Para executar outro processo (chaveamento de contexto)
•Há vantagens e desvantagens em ambas
Políticas de escalonamento
(agendamento)
Políticasdeescalonamentocomprioridades
•Permite quantificar a importância relativa dos processos
•Mecanismos de prioridades são de dois tipos:
–Prioridade estática
–Prioridade dinâmica
•Prioridade estática:
–Não varia ao longo da execução do processo
–Fácil de implementar
•Prioridade dinâmica (mais inteligente)
–Varia ao longo da execução do processo
–Permite uma maior responsividade à mudanças no ambiente
–Exemplos: Técnica de aging, algoritmo HRRN
•Inversão de prioridade:
–SO aumenta a prioridade de um processo menos importante
–Diminuir sobrecarga ou liberar recursos para outro processo
Políticas de escalonamento:
critérios
Tentam implementar “justiça” na escolha dos processos
•Primeiros SO eram colaborativos: ineficientes!
–Exemplo: Windows 95 (multitarefa cooperativa)
–Processo rodava o tempo que desejava
•Regra geral:
1º: Processo que chega vai para o final da fila pronto
2º: Fila é rearranjada conforme o critério de escalonamento
•Atualmente, na prática, algoritmos usados nos SO:
–Combinam dois ou mais critérios e são adaptativos
–Variam dinamicamente conforme os estados dos processos
FIFO: First In First Out
Critério: ordem de chegada
•Não-preemptivo (processo executa enquanto quiser)
•Vantagens
–Justo: atende pela ordem de chegada
–Impede adiamento indefinido
–Fácil de implementar
•Desvantagens
–Processos longos fazem os curtos esperarem muito
–Não se mostra eficiente para processos interativos
–Não considera a importância de uma tarefa
SPF: Shortest Process First
Critério: tempo de execução restante (burst): menor primeiro
•Não-preemptivo
•Vantagens
–Favorece os processos mais curtos
–Aumenta o rendimento (throughput)
–Menor tempo médio de espera
•Desvantagens
–Baseado em estimativas de tempo
–Maior variância no tempo de espera (+ imprevisibilidade)
–Não impede o adiamento indefinido
SRT: Shortest Remaining
Time
Critério: tempo de execução restante (burst): menor primeiro
•Preemptivo (se chegar processo de menor burst)
•Versão preemptiva do SPF
•Vantagens
–Busca minimizar tempo de espera
•Desvantagens
–Baseado em estimativas de tempo
–Gera sobrecarga desnecessária nas troca de contexto
–Usado em SO antigos (para processamento em lote)
RR: Round Robin
(alternância circular)
Critério: ordem de chegada (como no FIFO)
•Preemptivo (por quantum de tempo)
•Vantagens
–Efetivo com processos interativos
–Impede adiamento indefinido
•Desvantagens
–Mais complexo que FIFO
–Adiciona sobrecarga no chaveamento de contexto
por Prioridades (Filas de
Prioridades)
Critério: maior prioridade primeiro
•Preemptivo (por tempo e/ou prioridade de execução)
•Prioridade por ser fixa ou dinâmica
•Agrupa processos em filas de prioridades decrescentes
–Filas mais altas são executadas primeiro (na totalidade)
–Em cada fila, aplica-se RR (Round Robin)
Ainda Existem:
• Filas Múltiplas (multinível com feedback)
• Fração Justa (Fair-share)
• HRRN: Highest Response Rate Next
Outras políticas de escalonamento
• •Escalonamento Garantido
• –Cumpre promessas feitas a usuários (% alocação de CPU)
• •Escalonamento por Loteria
• –SO distribui tokens (fichas) numerados entre os processos
• –Escalonador sorteia um número aleatório
• –Processos com mais tokens têm mais chance de escolha
• •Vantagens
• –Altamente responsivo (ao número de tokens distribuídos)
• –Ideal para processos cooperativos (doação de tokens)
Escalonamento de Tempo
Real
•Ocorre em SO de tempo real
•Prioriza os processos em detrimento do próprio SO
•Busca produzir resultados em tempos determinados
•Divide-se em 2 tipos
–Crítico: prazos devem ser rigorosamente cumpridos
–Não-crítico: descumprimentos de prazo são tolerados
Resumo: Políticas de Escalonamento

Contenu connexe

Tendances

Introducao redes
Introducao redesIntroducao redes
Introducao redesErikHR
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Leinylson Fontinele
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
Módulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuraçãoMódulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuraçãodiogoa21
 
Sistemas Multimídia - Aula 01 - Apresentação
Sistemas Multimídia - Aula 01 - ApresentaçãoSistemas Multimídia - Aula 01 - Apresentação
Sistemas Multimídia - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
CURSO BÁSICO DE INFORMÁTICA
CURSO BÁSICO DE INFORMÁTICACURSO BÁSICO DE INFORMÁTICA
CURSO BÁSICO DE INFORMÁTICALeonam dos Santos
 
Seguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - NovoSeguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - NovoLuiz Arthur
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisCharles Fortes
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 

Tendances (20)

Introducao redes
Introducao redesIntroducao redes
Introducao redes
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Módulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuraçãoMódulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuração
 
Sistemas Multimídia - Aula 01 - Apresentação
Sistemas Multimídia - Aula 01 - ApresentaçãoSistemas Multimídia - Aula 01 - Apresentação
Sistemas Multimídia - Aula 01 - Apresentação
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
CURSO BÁSICO DE INFORMÁTICA
CURSO BÁSICO DE INFORMÁTICACURSO BÁSICO DE INFORMÁTICA
CURSO BÁSICO DE INFORMÁTICA
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Seguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - NovoSeguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - Novo
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
 
Aula 1 - Introdução a Segurança da Informação
Aula 1 - Introdução a Segurança da InformaçãoAula 1 - Introdução a Segurança da Informação
Aula 1 - Introdução a Segurança da Informação
 
Barramentos
Barramentos Barramentos
Barramentos
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Prazer, computação em nuvem
Prazer, computação em nuvemPrazer, computação em nuvem
Prazer, computação em nuvem
 

Similaire à Sistemas operacionais modernos - Capítulo 6 sobre deadlocks

Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas DistribuídosRoberto Aragy
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaCDS
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de MemóriaCDS
 
Load shedding, backpressure, cdc, hypervisor, docker
Load shedding, backpressure, cdc, hypervisor, dockerLoad shedding, backpressure, cdc, hypervisor, docker
Load shedding, backpressure, cdc, hypervisor, dockerGabriel Passos
 
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Kelver Merlotti
 
QConSP: Do cache ao cluster, escalando com Rails
QConSP: Do cache ao cluster, escalando com RailsQConSP: Do cache ao cluster, escalando com Rails
QConSP: Do cache ao cluster, escalando com Railsadrianoalmeida7
 

Similaire à Sistemas operacionais modernos - Capítulo 6 sobre deadlocks (20)

Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
Parte1f
Parte1fParte1f
Parte1f
 
Criando Aplicações Resilientes
Criando Aplicações ResilientesCriando Aplicações Resilientes
Criando Aplicações Resilientes
 
Deadlocks (Resumo)
Deadlocks (Resumo)Deadlocks (Resumo)
Deadlocks (Resumo)
 
Aula 03-deadlock
Aula 03-deadlockAula 03-deadlock
Aula 03-deadlock
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Ad d lock
Ad d lockAd d lock
Ad d lock
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas Distribuídos
 
Aula 14 - Deadlocks
Aula 14 - DeadlocksAula 14 - Deadlocks
Aula 14 - Deadlocks
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de Memória
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
Circuit Breaker
Circuit BreakerCircuit Breaker
Circuit Breaker
 
S.o aula 1718
S.o aula 1718S.o aula 1718
S.o aula 1718
 
Net - Threads
Net - ThreadsNet - Threads
Net - Threads
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
 
Load shedding, backpressure, cdc, hypervisor, docker
Load shedding, backpressure, cdc, hypervisor, dockerLoad shedding, backpressure, cdc, hypervisor, docker
Load shedding, backpressure, cdc, hypervisor, docker
 
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
 
QConSP: Do cache ao cluster, escalando com Rails
QConSP: Do cache ao cluster, escalando com RailsQConSP: Do cache ao cluster, escalando com Rails
QConSP: Do cache ao cluster, escalando com Rails
 
Mutex and monitores
Mutex and monitoresMutex and monitores
Mutex and monitores
 

Plus de Faculdade Mater Christi

Capítulo 6 e 8 comutação e multiplexação (3º unidade)
Capítulo 6 e 8   comutação e multiplexação (3º unidade)Capítulo 6 e 8   comutação e multiplexação (3º unidade)
Capítulo 6 e 8 comutação e multiplexação (3º unidade)Faculdade Mater Christi
 
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
Capítulo 5 e 4   transmissão analógica e digital (2º unidade)Capítulo 5 e 4   transmissão analógica e digital (2º unidade)
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)Faculdade Mater Christi
 
Capítulo 3 dados e sinais (1º unidade)
Capítulo 3   dados e sinais (1º unidade)Capítulo 3   dados e sinais (1º unidade)
Capítulo 3 dados e sinais (1º unidade)Faculdade Mater Christi
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)Faculdade Mater Christi
 
Capítulo 10 detecção e correção de erros
Capítulo 10   detecção e correção de errosCapítulo 10   detecção e correção de erros
Capítulo 10 detecção e correção de errosFaculdade Mater Christi
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processosFaculdade Mater Christi
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógicoFaculdade Mater Christi
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuaisFaculdade Mater Christi
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocolFaculdade Mater Christi
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Faculdade Mater Christi
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Faculdade Mater Christi
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Faculdade Mater Christi
 

Plus de Faculdade Mater Christi (16)

Capítulo 6 e 8 comutação e multiplexação (3º unidade)
Capítulo 6 e 8   comutação e multiplexação (3º unidade)Capítulo 6 e 8   comutação e multiplexação (3º unidade)
Capítulo 6 e 8 comutação e multiplexação (3º unidade)
 
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
Capítulo 5 e 4   transmissão analógica e digital (2º unidade)Capítulo 5 e 4   transmissão analógica e digital (2º unidade)
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
 
Capítulo 3 dados e sinais (1º unidade)
Capítulo 3   dados e sinais (1º unidade)Capítulo 3   dados e sinais (1º unidade)
Capítulo 3 dados e sinais (1º unidade)
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)
 
Capítulo 10 detecção e correção de erros
Capítulo 10   detecção e correção de errosCapítulo 10   detecção e correção de erros
Capítulo 10 detecção e correção de erros
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processos
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógico
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuais
 
Capítulo 2 modelos de redes
Capítulo 2   modelos de redesCapítulo 2   modelos de redes
Capítulo 2 modelos de redes
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocol
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)
 

Sistemas operacionais modernos - Capítulo 6 sobre deadlocks

  • 1. Sistemas operacionais modernos Terceira edição ANDREW S. TANENBAUM Capítulo 6 Impasses Adaptado por: Prof. Esp. Rodrigo Ronner rodrigoronner@gmail.com http://rodrigoronner.blogspot.com
  • 2. Deadlocks • Situação onde dois ou mais processos estão esperando por um evento que só pode ser gerado por algum dos mesmos processos em espera. • Ou seja: • Cada processo de um conjunto em deadlock está esperando por um recurso que foi entregue a outro processo do mesmo conjunto.
  • 3. Deadlocks • Em alguns casos pode ocorrer a seguinte situação: um processo solicita um determinado recurso e este não está disponível no momento. • Quando isso acontece o processo entra para o estado de espera (bloqueado). • Em algumas situações é possível que estes processos nunca mais mudem de estado, pois os recursos que eles necessitam podem estar sendo mantidos por outros processos em espera. Essa situação é chamada de deadlock ou impasses. “Um conjunto de processos está em estado de deadlock quando todos os processos no conjunto estão esperando por um evento que só pode ser causado por outro processo do conjunto.”
  • 4. Por exemplo, que dois processos queiram cada um gravar em CD um documento obtido de um scanner: • O processo A solicita permissão para usar o scanner e é autorizado; • O processo B, que é programado diferentemente, solicita primeiro permissão para usar o gravador de CD e também é autorizado; • Então, o Processo A pede para usar o gravador de CD, mas a solicitação lhe é negada até que o processo B o libere; • Infelizmente, em vez de liberar o gravador de CD, o processo B pede para usar o scanner; • Nesse ponto, ambos os Processos ficam bloqueados e assim permanecerão para sempre; • Essa situação é denominada deadlock. Deadlocks
  • 5. Deadlocks • A ideia de impasse ou deadlock pode ser mais facilmente entendida se fizermos uma analogia com uma escada de um prédio utilizada para casos de incêndio. • Apesar de ter sido construída como uma opção de fuga em caso de incêndio, as pessoas que trabalham no prédio muitas vezes preferem utilizar a escada ao invés dos elevadores. • No entanto, há espaço apenas para uma pessoa em cada degrau. Logo, o tráfego pela escada vai bem até que 2 pessoas se cruzam. • Por outro lado, existe uma plataforma em cada um dos andares que suporta várias pessoas. • Os problemas acontecem no momento em que uma pessoa que está subindo a escada encontra outra que está descendo e ambas se recusam a retroceder até a plataforma. • Esta situação permanecerá gerando um impasse ou deadlock.
  • 6. Exemplo para Atravessar uma Ponte  Trafégo somente em uma direção  Cada seção da ponte pode ser vista como um recurso  Se ocorre deadlock, pode ser resolvido se um carro voltar (preempção de recursos e rollback)  Diversos carros podem ter que voltar se ocorre deadlock  Pode causar starvation (Quando um processo nunca é executado ("morre de fome"), pois processos de prioridade maior sempre o impedem de ser executado.) Deadlocks
  • 7. Deadlocks: Recursos É qualquer objeto ao qual deva ser dado acesso exclusivo para cada processo. Recursos podem ser dispositivos de hardware ou arquivo. Para a utilização de um recurso, o processo deve realizar a seguinte sequência: • Requisitar o recurso; • Utilizar o recurso ; • Liberar o recurso. Se um recurso não estiver disponível quando for requisitado, o processo que o requisitou é forçado a aguardar, sendo dois métodos utilizados: 1) O processo é bloqueado e acordado quando o recurso estiver disponível; 2) é enviado um código de erro ao processo indicando que a requisição falhou sendo, então, que o próprio processo deve decidir a ação a tomar (ex: aguardar algum tempo e pedir novamente).
  • 8. Deadlocks:Recursospreemptíveise não preemptíveis • Preemptível é aquele que pode ser retirado do processo proprietário sem nenhum prejuízo; • Recurso Não Preemptível: é aquele que não pode ser retirado do atual Processo proprietário sem que a computação apresente falha. Se um Processo começou a gravar um CD-ROM, retirar dele repentinamente o gravador de CD e dar a um outro processo resultará em um CD com erros . Gravadores de CD são recursos que não podem ser tomados a qualquer momento, isto é, não são preemptíveis.
  • 9. Deadlocks: Condições Para ocorrência de Deadlock • Condições necessárias: • Exclusão Mútua; • Posse e Espera; • Não-Preempção; • Espera Circular. Obs: Todas as condições necessárias devem estar presentes para que ocorra. Se faltar uma delas, não ocorrerá deadlock.
  • 10. • Exclusão mútua: Apenas um processo por vez pode usar o recurso. • Posse e Espera: Processos que, em determinado instante, retêm recurso concedido anteriormente podem requisitar novos recursos. • Não-preempção: Os recursos só podem ser liberados voluntariamente pelo processo que o mantém. • Espera circular: Dado um conjunto de processos {P1, P2, ..., Pn} em espera, P1 está esperando por um recurso mantido por P2; P2 está esperando um recurso mantido por P3 e assim sucessivamente, até que Pn esteja esperando por um recurso alocado por P1. Deadlocks: Condições para ocorrência de Deadlock
  • 11. Deadlocks: Prevenção de Deadlocks • Exclusão Mútua. • Solução: • Sem exclusão mútua, não existem deadlocks. Por quê? • Quando possível de ser realizada, a eliminação das condições de exclusão mútua resolve os problemas de deadlock. • Problemas: • Risco de Inconsistência no compartilhamento de recursos.
  • 12. Deadlocks: Prevenção de Deadlocks • Posse e Espera. • Solução: • Alocação de todos os recursos necessários antes do inicio dos processos. • Problemas: • Desperdício dos recursos do sistema. • Impossibilidade de alocação dinâmica de recursos. • Risco de starvation. Muitos processos só sabem quanto recursos vão precisar somente após sua execução.
  • 13. Deadlocks: Prevenção de Deadlocks • Não-Preempção. • Solução: • Retirada do recurso de um processo quando for requisitado por outro processo. • Problemas: • Pode fazer o processo perder totalmente o processamento realizado. • Risco de starvation.
  • 14. Deadlocks: Prevenção de Deadlocks • Espera Circular • Solução: • Limitação da posse de um recurso por vez. • Se um processo necessitar de outro recurso, deve liberar qualquer recurso já alocado. • Fornecer uma numeração global de todos os recursos. Processos podem requisitar recursos sempre que necessário, mas todas as solicitações devem ser feitas em ordem numérica. Ex: 1 – Impressora, 2 – Scanner, 3 – Plotter, 4 – Unidade Fita, 5 – Unidade CD-ROM. • Problemas: • Restrição no grau de compartilhamento e processamento dos processos.
  • 15. Deadlocks: Modelagem de Deadlock • Estratégias para Solução de Deadlocks: • Ignorar; • Detectar e Tratar; • Prevenir.
  • 16. Em geral, podemos utilizar 3 métodos para tratar o problema de Deadlocks: • 1. podemos usar um protocolo para garantir que o sistema nunca entre em estado de deadlock: PREVENÇÃO (O Sistema operacional deve eliminar uma das 4 condições para que o deadlock ocorra) • 2. podemos permitir que o sistema entre em deadlock e se recupere: DETECÇÃO e RECUPERAÇÃO. • 3. podemos ignorar o problema (Algoritmo do avestruz). Esta opção é utilizada pela maioria dos sistemas operacionais, incluindo o UNIX. • Para garantir que um sistema nunca entre em deadlock é possível usar um esquema de prevenção de Deadlocks ou de impedimento de Deadlocks. Esta prevenção é realizada através de um conjunto de métodos que garantem que pelo menos uma das situações necessárias para que um deadlock aconteça seja falha. Basicamente, isso é feito limitando a forma como as solicitações de recursos acontecem. Deadlocks: Modelagem de Deadlock
  • 17. Deadlocks: Prevenção de Deadlocks • Todas as soluções anteriores são limitadas. • Alternativa mais utilizada: • Algoritmo do Banqueiro (Dijkstra – 1965) • Exige que todos os processos informem o número máximo de cada tipo de recurso necessário a sua execução. • Assim é possível definir: • O estado de alocação de um recurso. • Número de recursos alocados e disponíveis. • O número máximo de processos que necessitem desses recursos. • Problemas: • Necessidade de definir o número fixo de processos ativos e recursos disponíveis.
  • 18. Deadlocks: Evitação Dinâmica de Deadlock • Procura-se evitar o deadlock sem impor restrições aos processos, isto é possível desde que alguma informação sobre a utilização de recursos pelo processo seja disponível antecipadamente ao SO. Vamos analisar maneiras de se conseguir isso: • Algoritmo do Banqueiro para um único Recurso: usado para evitar deadlocks consiste em simular as decisões de um banqueiro no empréstimo de certa quantia de dinheiro sujeita a certas condições. • No exemplo próximo slide temos 4 clientes (A B C D) cada um especificou o número máximo de crédito que precisará, mas eles não precisam de todas elas imediatamente, de forma que o banqueiro reservou 10 unidades para atender todos os pedidos (totalizando 32 unidades).
  • 19. Deadlocks: Prevenção de Deadlocks Chamamos de estado, a situação dos empréstimos e dos recursos ainda disponíveis em um dado momento. Algoritmo do Banqueiro para um único Recurso:
  • 20. O exemplo ao lado demonstra um estado seguro, pois existe uma sequência de outros estados que leva a que todos os clientes recebam seus empréstimos até seus limites de crédito. Disponível:2 Algoritmo do Banqueiro para um único Recurso: Deadlocks: Prevenção de Deadlocks
  • 21. • O banqueiro pode emprestar 2 unidades à C; pegar de volta (4) emprestar à B, pegar as 5 unidades de volta e emprestar à A, pegar as 6 unidades de volta e emprestar 3 delas à D, pegando então as 7 unidades de volta, garantindo o atendimento a todos os clientes. Questão??? Se por exemplo o cliente B fizesse um pedido de mais uma unidade (2) teríamos um estado não seguro? • Não há forma do banqueiro garantir o atendimento de todos os pedidos, podendo vir a gerar um deadlock. Ainda não haverá um deadlock, pois os valores de máximo não precisam necessariamente ser atingido. • Por exemplo, o cliente D pode decidir que não precisa mais de novos recursos e devolver os 4 que pediu, voltando novamente a uma situação segura. • Mas o banqueiro não pode contar com isso, então para cada pedido que chega, o banqueiro deve verificar se conceder o mesmo leva a uma situação segura, verificando se o disponível é suficiente para atender o cliente mais próximo de seu máximo. • Se for, finge que esse cliente já devolveu tudo que possuía, marca o mesmo como terminado e verifica se pode atender o cliente mais próximo do máximo entre os que restam. Se ele puder levar a bom termo esse processo, atendendo todos os clientes então o estado é seguro. Algoritmo do Banqueiro para um único Recurso: Deadlocks: Prevenção de Deadlocks
  • 22. Exercícios 1. O que é deadlock, quais as condições para o acontecimento desses impasses e quais as soluções possíveis? 2. Pesquise e descreva o mecanismo (ideia) de funcionamento do algoritmo do banqueiro de Dijkstra proposto para evitar deadlocks. Além disso, cite as deficiências presentes nesse algoritmo. 3. Um estado inseguro é um estado de deadlock? 4. Descreva as restrições que o algoritmo do banqueiro impõe aos processos. 5. Por que a prevenção de deadlock não é uma preocupação primária para muitos sistemas operacionais? 6. Por que a recuperação de deadlock é um problema tão difícil? 7. Explique o são Recursos preemptíveis e não preemptíveis? 8. Explique as diferenças entre impasses e condição de inanição (starvation)?
  • 24. Políticas de escalonamento (agendamento) •SO escolhe qual processo da fila de PRONTOS irá executar •Despachante designa um processador a um dado processo •Política de escalonamento (ou disciplina de escalonamento): –Critério do SO para escolher o processo que executará
  • 25. Políticas de escalonamento (agendamento) Forte influência no desempenho global do SO •Deve garantir: justiça, previsibilidade e escalabilidade •Deve considerar o comportamento de um processo –Processos CPU-Bound x I/O-Bound –Processos Em Lote x Interativo Objetivos do escalonamento (em relação aos processos) •Maximizar: throughput (total de processos terminados na unidade de tempo) •Minimizar: turnaround (tempo da criação até o término do processo) •Maximizar: taxa de utilização de CPU (tempo total de ocupação da CPU) •Minimizar: tempo de resposta (tempo da criação até o inicio da execução) •Minimizar: tempo de espera (soma dos tempos na fila de prontos) •Minimizar: tempo de resposta em processos interativos •Maximizar: utilização dos recursos (HW ou SW) •Minimizar: a sobrecarga de gerenciamento do SO •Favorecer: rotinas de maior prioridade e importância
  • 27. Poderá ser classificada como –Preemptiva –Não-preemptiva •Não-preemptiva (cooperativo) –SO não pode interromper um processo –Processo executa até concluir (ou parar voluntariamente) •Preemptiva: –SO pode interromper um processo a qualquer instante –Para executar outro processo (chaveamento de contexto) •Há vantagens e desvantagens em ambas Políticas de escalonamento (agendamento)
  • 28. Políticasdeescalonamentocomprioridades •Permite quantificar a importância relativa dos processos •Mecanismos de prioridades são de dois tipos: –Prioridade estática –Prioridade dinâmica •Prioridade estática: –Não varia ao longo da execução do processo –Fácil de implementar •Prioridade dinâmica (mais inteligente) –Varia ao longo da execução do processo –Permite uma maior responsividade à mudanças no ambiente –Exemplos: Técnica de aging, algoritmo HRRN •Inversão de prioridade: –SO aumenta a prioridade de um processo menos importante –Diminuir sobrecarga ou liberar recursos para outro processo
  • 29. Políticas de escalonamento: critérios Tentam implementar “justiça” na escolha dos processos •Primeiros SO eram colaborativos: ineficientes! –Exemplo: Windows 95 (multitarefa cooperativa) –Processo rodava o tempo que desejava •Regra geral: 1º: Processo que chega vai para o final da fila pronto 2º: Fila é rearranjada conforme o critério de escalonamento •Atualmente, na prática, algoritmos usados nos SO: –Combinam dois ou mais critérios e são adaptativos –Variam dinamicamente conforme os estados dos processos
  • 30. FIFO: First In First Out Critério: ordem de chegada •Não-preemptivo (processo executa enquanto quiser) •Vantagens –Justo: atende pela ordem de chegada –Impede adiamento indefinido –Fácil de implementar •Desvantagens –Processos longos fazem os curtos esperarem muito –Não se mostra eficiente para processos interativos –Não considera a importância de uma tarefa
  • 31. SPF: Shortest Process First Critério: tempo de execução restante (burst): menor primeiro •Não-preemptivo •Vantagens –Favorece os processos mais curtos –Aumenta o rendimento (throughput) –Menor tempo médio de espera •Desvantagens –Baseado em estimativas de tempo –Maior variância no tempo de espera (+ imprevisibilidade) –Não impede o adiamento indefinido
  • 32. SRT: Shortest Remaining Time Critério: tempo de execução restante (burst): menor primeiro •Preemptivo (se chegar processo de menor burst) •Versão preemptiva do SPF •Vantagens –Busca minimizar tempo de espera •Desvantagens –Baseado em estimativas de tempo –Gera sobrecarga desnecessária nas troca de contexto –Usado em SO antigos (para processamento em lote)
  • 33. RR: Round Robin (alternância circular) Critério: ordem de chegada (como no FIFO) •Preemptivo (por quantum de tempo) •Vantagens –Efetivo com processos interativos –Impede adiamento indefinido •Desvantagens –Mais complexo que FIFO –Adiciona sobrecarga no chaveamento de contexto
  • 34. por Prioridades (Filas de Prioridades) Critério: maior prioridade primeiro •Preemptivo (por tempo e/ou prioridade de execução) •Prioridade por ser fixa ou dinâmica •Agrupa processos em filas de prioridades decrescentes –Filas mais altas são executadas primeiro (na totalidade) –Em cada fila, aplica-se RR (Round Robin)
  • 35. Ainda Existem: • Filas Múltiplas (multinível com feedback) • Fração Justa (Fair-share) • HRRN: Highest Response Rate Next
  • 36. Outras políticas de escalonamento • •Escalonamento Garantido • –Cumpre promessas feitas a usuários (% alocação de CPU) • •Escalonamento por Loteria • –SO distribui tokens (fichas) numerados entre os processos • –Escalonador sorteia um número aleatório • –Processos com mais tokens têm mais chance de escolha • •Vantagens • –Altamente responsivo (ao número de tokens distribuídos) • –Ideal para processos cooperativos (doação de tokens)
  • 37. Escalonamento de Tempo Real •Ocorre em SO de tempo real •Prioriza os processos em detrimento do próprio SO •Busca produzir resultados em tempos determinados •Divide-se em 2 tipos –Crítico: prazos devem ser rigorosamente cumpridos –Não-crítico: descumprimentos de prazo são tolerados
  • 38. Resumo: Políticas de Escalonamento