Você está na página 1de 41

Sistemas de Exploração

Capítulo 5
Concorrência - Deadlock

Paulo Neves Sistemas de Exploração


Concorrência – Deadlock
 Princípios do deadlock
 Prevenção de deadlock
 Evitar o deadlock
 Detecção de deadlock
 Uma estratégia integrada
 Mecanismos de concorrência do UNIX
 Mecanismos de concorrência do W2K
Paulo Neves Sistemas de Exploração 2
Princípios do Deadlock
 Definição geral de deadlock
 Exemplos
 Ocorrência de deadlock
 Não ocorrência de deadlock

Paulo Neves Sistemas de Exploração 3


Processos P e Q

Paulo Neves Sistemas de Exploração 4


Cenários

Paulo Neves Sistemas de Exploração 5


Modificação do Processo P

Paulo Neves Sistemas de Exploração 6


Tipos de Recursos
 Recursos reutilizáveis
 Não é “gasto” com o uso
 Utilizável por um processo de cada vez
 Processador, canais de E/S, memória
 Recursos consumíveis
 Pode ser criado e consumido
 Sinais, interrupções, informações

Paulo Neves Sistemas de Exploração 7


Condições para Ocorrência de
Deadlock
 Necessárias mas não suficientes
 Exclusão mútua
 Guardar e esperar
 Sem preempção (recurso)
 Consequência potencial
 Espera circular
 As 4 constituem condições necessárias
e suficientes
Paulo Neves Sistemas de Exploração 8
Abordagens

Paulo Neves Sistemas de Exploração 9


Prevenção de Deadlock
 Exclusão da possibilidade de deadlock
 Método indirecto
 Não deixar ocorrer uma das primeiras 3
condições
 Método directo
 Não deixar ocorrer a quarta

Paulo Neves Sistemas de Exploração 10


Exclusão Mútua
 Não pode ser evitada
 Deve ser suportado pelo SO
 Recursos geridos por este

Paulo Neves Sistemas de Exploração 11


Guardar e Esperar
 Obrigar o processo a requisitar os
recursos todos de uma vez só
 Ineficiente
 Processo pode ser atrasado durante muito
tempo
 Processo pode não ter conhecimento em
avanço

Paulo Neves Sistemas de Exploração 12


Não Preempção
 Libertação de todos os recursos
alojados quando lhe é negado o
próximo
 Obrigar um processo a libertar um
recurso
 Ambos os processos devem ter a mesma
prioridade
 Recursos com estado fácil de guardar e
repor
Paulo Neves Sistemas de Exploração 13
Espera Circular
 Definição de ordenação linear para os
recursos
 Processo só pode solicitar recursos do
nível seguinte
 Exemplo
 Ri precede Rj, se i < j
 A tem Ri e quer Rj, B tem Rj e quer Ri
 Impossível: i < j e j < i
Paulo Neves Sistemas de Exploração 14
Espera Circular - Exemplo

Paulo Neves Sistemas de Exploração 15


Evitar o Deadlock
 Permite a ocorrência das 3 primeiras
condições
 Decisão dinâmica
 prever se o recurso, uma vez atribuído,
pode levar a deadlock
 Duas formas básicas de evitar deadlock
 Não iniciar o processo
 Não fornecer o recurso

Paulo Neves Sistemas de Exploração 16


Detecção de Deadlock
 Muito liberal: dá os recursos se eles
estiverem libertos
 Periodicamente o SO executa um
algoritmo para verificar se existe
deadlock

Paulo Neves Sistemas de Exploração 17


Acabar com o Deadlock I
 Abortar todos os processos que estão
em deadlock
 Obrigar os processos a regressar ao
estado pré-deadlock e reiniciar todos
 Precisa de informação para roll-back
 Abortar de forma selectiva os processos
até que não haja deadlock

Paulo Neves Sistemas de Exploração 18


Acabar com o Deadlock II
 Efectuar preempção sobre os recursos
alojados
 Deve seguir um critério baseado no mínimo
custo, tal como na solução anterior

Paulo Neves Sistemas de Exploração 19


Uma Estratégia Integrada
 Agrupar recursos num número de
diferentes classes
 Utilizar uma estratégia de ordenação
linear  evitar espera circular
 Dentro de cada classe, utilizar o
algoritmo mais conveniente

Paulo Neves Sistemas de Exploração 20


Exemplo
 Espaço de swap
 Blocos de memória secundária
 Recursos dos processos
 Dispositivos, p. ex., drives ou ficheiros
 Memória principal
 Recursos internos
 Por exemplo canais de E/S

Paulo Neves Sistemas de Exploração 21


Estratégias para cada Classe I
 Espaço de swap
 Alojamento de todo o espaço de uma só
vez
 Também se pode evitar o deadlock
 Recursos dos processos
 Evitar o deadlock
 Prevenção através de ordenação dentro da
classe
Paulo Neves Sistemas de Exploração 22
Estratégias para cada Classe II
 Memória principal
 Prevenção através de preempção
 Processo normalmente colocado em memória
secundária  liberta memória para outros
 Recursos internos
 Prevenção através de ordenamento

Paulo Neves Sistemas de Exploração 23


Mecanismos de Concorrência
do UNIX
 Pipes
 Mensagens
 Memória partilhada
 Semáforos
 Sinais

Paulo Neves Sistemas de Exploração 24


Pipes I
 Buffer circular
 Permite a 2 processos comunicar
 FIFO: um coloca, o outro retira
 Criação - número fixo de bytes
 Processo tenta escrever no pipe
 Bloqueado se não existe espaço suficiente
 Processo tenta ler do pipe
 Bloqueado se não existirem dados suficientes
Paulo Neves Sistemas de Exploração 25
Pipes II
 SO reforça exclusão mútua
 Apenas um processo pode aceder ao pipe a
cada instante
 Tipos de pipe
 Named
 Partilhado por processos não relacionados
 Unnamed
 Partilhado por processos relacionados

Paulo Neves Sistemas de Exploração 26


Mensagens I
 Bloco de texto com um determinado
tipo
 Chamadas de sistema msgrcv e msgsnd
 Mailbox
 Emissor especifica tipo de mensagem
 Receptor retira
 Segundo o tipo ou FIFO

Paulo Neves Sistemas de Exploração 27


Mensagens II
 Processo tenta receber
 Mailbox vazia  suspensão
 Processo tenta enviar
 Mailbox cheia  suspensão
 Processo tenta receber um dado tipo
 Não existem mensagens desse tipo
 Processo pode prosseguir

Paulo Neves Sistemas de Exploração 28


Memória Partilhada I
 Forma mais rápida de comunicação em
UNIX
 Bloco de memória virtual
 Acesso através de instruções-máquina
 As mesmas que para memória virtual
 Níveis de permissão
 Leitura
 Leitura/ escrita
Paulo Neves Sistemas de Exploração 29
Memória Partilhada II
 Exclusão mútua
 Mecanismo não suporta directamente este
conceito
 Processos devem observar esta restrição

Paulo Neves Sistemas de Exploração 30


Semáforos
 Apresentam-se em conjuntos
 Número de semáforos >= 1
 Generalização das primitivas signal e wait
 Operações de incremento/decremento
 Valor em módulo igual ou superior a 1
 Realização de diversas operações
simultâneamente
 Kernel efectua as operações de forma
atómica
Paulo Neves Sistemas de Exploração 31
Semáforos – Constituição
 Valor actual do semáforo – inteiro
 ID do último processo que o manipulou
 Número de processos à espera que o
valor do semáforo seja > que o actual
 Número de processos à espera que o
valor do semáforo seja = 0

Paulo Neves Sistemas de Exploração 32


Semáforos – Chamadas de
Sistema
 Cada semáforo tem uma fila associada
 semctl
 Programação de um conjunto de semáforos
 semop
 Operador sobre semáforos
 Realização das operações uma de cada vez
pelo kernel

Paulo Neves Sistemas de Exploração 33


semop – Parâmetro sem_op I
 >0
 Semáforo incrementado
 Processos à espera que o valor aumente
são despertados
 =0
 Se valor =0 o processo prossegue
execução
 Se valor !=0, o processo é colocado na fila
dos que estão à espera que o valor seja 0
Paulo Neves Sistemas de Exploração 34
semop – Parâmetro sem_op II
 <0 e ≤ valor actual
 Kernel adiciona o valor de sem_op ao
semáforo
 Se resultado =0 os processos à espera
deste evento são despertados
 <0 e ≥ valor actual
 Kernel suspende o processo no evento que
o semáforo aumenta
Paulo Neves Sistemas de Exploração 35
Sinais
 Mecanismo de software
 Ocorrência de eventos assíncronos
 Não possui prioridade, bit único
 Sinal enviado
 Através da tabela do processo a que este se
destina
 Processo pode responder a um sinal
 Realizar uma dada acção
 Executar uma função de manipulação

 Ignorar o sinal
Paulo Neves Sistemas de Exploração 36
Mecanismos de Concorrência
no Windows 2000
 Objectos de sincronização
 Processo
 Tarefa
 Ficheiro
 Console input
 File change notification
 Mutex
 Semáforo
 Evento
 Temporizador
Paulo Neves Sistemas de Exploração 37
Instâncias dos Objectos
 Com sinal
 Tarefa é retomada
 Sem sinal
 Tarefa é suspensa
 Tarefa invoca um pedido de espera ao
Executive
 Através do handle do objecto
 Executive liberta as tarefas quando o
objecto passa a ter sinal
Paulo Neves Sistemas de Exploração 38
Tabela de objectos

Paulo Neves Sistemas de Exploração 39


MT
 Explique o que entende por semáforo e
os cenários típicos de utilização
 Apresente uma solução para exclusão
mútua com semáforos, devidamente
fundamentada.

Paulo Neves Sistemas de Exploração 40


Questões

Paulo Neves
?
Sistemas de Exploração 41