instituto superior de transportes e comunicaÇÕes...6. aplicação do algoritmo do banqueiro 1....

9
INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos SISTEMAS OPERATIVOS DEADLOCK. ESTADOS SEGUROS E INSEGUROS 1. Deadlock. Caracterização 2. Modelo do sistema 3. Grafos de alocação de recursos 4. Como tratar um deadlock? 5. Estados seguros e inseguros 6. Aplicação do algoritmo do banqueiro 1. DEADLOCK Conjunto de processos bloqueados em que cada um detém um certo número de recursos e fica a espera de um recurso que outro processo no conjunto pode disponibilizar. Exemplo 1. Tomando o seguinte exemplo, um processo P1 detém o recurso R1 está á espera do recurso R2 que já foi alocado ao processo P2. Exemplo 2 Se ocorrer deadlock, pode ser resolvido se um dos carros der uma marcha atrás (fazer preempção ou fazer o rollback). Isso pode levar a situação de starvation.

Upload: others

Post on 28-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

    Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

    SISTEMAS OPERATIVOS

    DEADLOCK. ESTADOS SEGUROS E INSEGUROS

    1. Deadlock. Caracterização 2. Modelo do sistema 3. Grafos de alocação de recursos 4. Como tratar um deadlock? 5. Estados seguros e inseguros 6. Aplicação do algoritmo do banqueiro

    1. DEADLOCK Conjunto de processos bloqueados em que cada um detém um certo número de recursos e fica a espera de um recurso que outro processo no conjunto pode disponibilizar. Exemplo 1. Tomando o seguinte exemplo, um processo P1 detém o recurso R1 está á espera do recurso R2 que já foi alocado ao processo P2. Exemplo 2 Se ocorrer deadlock, pode ser resolvido se um dos carros der uma marcha atrás (fazer preempção ou fazer o rollback). Isso pode levar a situação de starvation.

  • INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

    Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

    Caracterização do deadlock Deadlock ocorre quando são cumpridas acumulativamente as seguintes 4 condições:

    • Exclusão mútua • Posse e espera • Não-preempção • Espera circular

    2. MODELO DO SISTEMA

    • Tipo de recursos R1, R2, R3...Rn (pode ser disco duro, impressora , leitor de CD, etc) o Ciclos de cpu, espaço de memória, dispositivos de E/S

    • Cada tipo de recursos Ri tem Wi instâncias • Cada processo utiliza o recurso da seguinte forma:

    o Requisição; o Utilização; e o Libertação do recurso.

    • Os recursos podem ser Preemptíveis (sem prejuízo quendo for retirado ao processo) e Não-preemptível (Compromete o sistema no caso de ser retirado enquanto estiver em uso)

    Recursos Preemptíveis: CPU; RAM, etc Recursos Não-preemptíveis: Leitor de CD; Disco duro, etc.

    3. GRAFOS DE ALOCAÇÃO DE RECURSOS Simbologia

  • INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

    Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

    NOTAS: [1] Se o grafo não apresenta um laço ou ciclo, não há deadlock [2] Se o grafo tem um ciclo: teremos deadlock se tivermos uma instância de cada tipo de recursos; se tivermos várias instâncias de vários tipos de recursos, há possibilidade de deadlock 4. COMO TRATAR UM DEADLOCK?

    • Assegurar que o sistema nunca entre em deadlock, através da alocação cuidadosa de recursos.

    o Alocação individual de recursos; o Escalonamento cuidadoso; o Trabalhar com Estados Seguros e Inseguros; o Evitar o deadlock recorrendo aos algoritmos do Banqueiro.

    • Detectar e recuperar o problema

    o Recuperação por meio de preempção; o Recuperação por meio de rollback (de volta ao passado); o Recuperação por meio de eliminação de processos.

    • Ignorar o problema, fingindo que o deadlock nunca tem lugar no sistema

    o “Enterre sua cabeça na areia e finja que nada está acontecendo” (ALGORITMO DO AVESTRUZ);

    o "Matemáticos consideram inaceitável e devem ser evitados / Engenheiros não aceitam perder desempenho para eliminar deadlock".

    ALOCAÇÃO DE RECURSOS COM DEADLOCK

    ALOCAÇÃO DE RECURSOS SEM DEADLOCK

  • INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

    Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

    o A maioria dos S.O. sofre potencialmente de deadlocks que normalmente não são detectados e muito menos anulados.

    • Não satisfação de uma das condições de deadlock (Prevenção de deadlock)

    o Exclusão mútua: pode-se dispensar este princípio para recursos compartilháveis, mas não aplicável para determinado tipo de recursos.

    o Posse e espera: deve-se assegurar que quando um dos processos estiver a requisitar recursos, deve estar numa condição de não ter nenhum recurso. Isto é, o processo não deve monopolizar recursos enquanto espera por outro. Porque não esperar até que todos os recursos que precisa estejam livres?

    o Não - preempção: se um processo está á espera de um recurso que não pode ser

    imediatamente disponibilizado, todos os recursos deve ser libertos, e estes recursos devem ser alocados aos processos requisitantes. O processo que lhe foi retirado os recursos, só pode voltar se tiver recuperado os recursos anteriores e os novos.

    • Espera circular: ordenar as requisições numericamente, e realizar as solicitações em ordem numérica; Permitir que um recurso utilize um recurso de cada vez se quiser um segundo, deve libertar o primeiro)

    5. ESTADOS SEGUROS E INSEGUROS

    Estados seguros: não provocam deadlocks e há uma maneira de atender a todas as requisições pendentes finalizando normalmente todos os processos. Existe alguma ordem de escalonamento na qual todo o processo possa ser executado até a sua conclusão. Estados inseguros: podem provocar deadlocks, mas não necessariamente provocam. [1] Se o sistema está num estado seguro, não há deadlock. [2] Se o sistema está num estado inseguro, há possibilidade de ocorrência de deadlock.

  • INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

    Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

    6. ALGORITMO DO BANQUEIRO

    • Quando um processo requisita um recurso deve esperar por este recurso. • Quando um processo detém todos os recursos, deve devolver dentro de um tempo finito.

    o O Banqueiro pode ser implementado com um tipo de recurso com várias instâncias ou vários recursos com várias instâncias.

    • Considera cada requisição no momento em que ela ocorre verificando se essa requisição leva a um estado seguro; Se sim, a requisição é atendida.

    • Senão, o atendimento é adiado para um outro momento.

    Banqueiro com um único recurso Estado seguro

    Todos os processos foram atendidos Estado inseguro

  • INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

    Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

    Não há garantia de que todos vão terminar. Neste caso foi inicialmente alocada uma instância ao processo A. Banqueiro com vários tipos de recursos Exercício 1. Considere este estado seguro, atendendo inicialmente o processo P3? E se a alocação priorizasse o processo P2?

    • Matriz E: Existência; • Matriz D: Disponibilidade; • Matriz A: Alocação actual • Matriz E: Requisições

    R1 R2 R3 R4

    E = 4 2 3 1

    D= 2 1 0 0

    0 0 1 0 P1

    A= 2 0 0 1 P2

    0 1 2 0 P3

    2 0 0 1 P1

    R= 1 0 1 0 P2

    2 1 0 0 P3

  • INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

    Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

    EXERCÍCIOS DE APLICAÇÃO

    1. Quando existem várias cópias de vários recursos em um sistema computacional, é necessária a adoção de uma abordagem que utiliza vetores e matrizes para a detecção de deadlocks. Considerando E o vetor de recursos existentes, D o vetor de recursos disponíveis, A a matriz de alocação corrente dos processos e R a matriz de requisições, responda:

    a) Se existir cinco processos sendo executados, quantas linhas terão as matrizes C e R?

    b) Em que situação o vetor E é igual ao vetor D?

    c) O que estará acontecendo se a primeira linha da matriz A e a primeira linha da matriz R estiverem zeradas?

    d) Respondendo em função dos valores das matrizes e dos vetores, em que situação o sistema detectaria um deadlock?

    2. Qual deverá ser a ordem de execução dos seguintes processos para que o estado se torne seguro? a)

    R1 R2 R3

    E = 7 2 6

    D=

    0 1 0 P1

    A= 2 0 0 P2

    3 0 3 P3

    2 1 1 P4

    0 0 2 P5

    0 1 0 P1

    A= 2 0 0 P2

    3 0 3 P3

    2 1 1 P4

    0 0 2 P5

  • INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

    Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

    b)

    R1 R2 R3

    E = 10 5 7

    7 5 3 P1

    Máx= 3 2 2 P2

    9 0 2 P3

    2 2 2 P4

    4 3 3 P5

    0 1 0 P1

    A= 2 0 0 P2

    3 0 2 P3

    2 1 1 P4

    0 0 2 P5

    7 4 3 P1

    1 2 2 P2

    R= 6 0 0 P3

    0 1 0 P4

    4 3 1 P5

  • INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

    Ficha de Apoio- Parte II Cap2 -2014 Sistemas Operativos

    c)

    R1 R2 R3 R4

    E = 5 3 4 2

    D=

    0 0 1 0 P1

    A= 2 0 0 1 P2

    0 1 2 0 P3

    2 0 0 1 P1

    R= 1 0 1 0 P2

    2 1 0 0 P3

    3. Um sistema apresenta 4 processos e 5 recursos. A alocação actual dos recursos é conforme as matrizes que se seguem:

    R1 R2 R3 R4 R5

    E =

    D= 0 0 X 1 1

    1 1 2 1 3

    Máx= 2 2 2 0 0

    2 1 3 1 0

    2 1 2 1 1

    1 0 2 1 1

    A= 2 0 1 1 0

    1 1 0 1 0

    1 1 1 1 0

    Qual deverá ser o valor de X para que o sistema se torne seguro?