23
Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Embed Size (px)

Citation preview

Page 1: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Sincronização de Processos

Gerenciamento deImpasses (deadlock)

Gerenciamento deAbandonos

Page 2: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosEstados de Programas e Processos

Na medida que o programa se movimenta pelo sistema, ele se encontra em um dos cinco estados possíveis: NOVO, PRONTO, EM EXECUÇÃO,

EM ESPERA e TERMINADO.

NOVO PRONTO TERMEXEC

ESPERA

Escalonador de Programas(equilibrando a utilização

dos recursos: MEM, E/S...)

Escalonador de Processos

(algoritmo)

Escalonador de ProgramasEscalonador de Processos

(liberam recursos)

Escalonador de Processos(requisição de E/S ...)

Escalonador de Processos(sinal do gerenciadorde dispositivos ou de

interrupção de páginas)

Interrupçãode Tempo

Page 3: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de Processos

Problema típico na falta da Sincronização de Processos:* IMPASSE (Deadlock)* ABANDONO

IMPASSEÉ uma situação de congestionamento de processos por requisições de recursos. É uma situação onde dois ou mais processos travam seus recursos e buscam por outros que também estão travados por outros processos, gerando uma situação de congestionamento.

ABANDONOQuando uma situação por espera indefinida por recursos do sistema por alguns processos, há uma situação de abandono pelo sistema para os processos envolvidos nesta situação.

Page 4: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosIMPASSE

O Impasse é uma situação mais grave que o Abandono, ele trava o sistema e pode inviabilizar a execução de toda a máquina.

Nos sistemas mais antigos, os processos eram mais “previsíveis” em termos de necessidades de recursos, com isto os Impasses não eram freqüentes.

Já nos sistemas recentes, os Impasses são administrados e otimizados de acordo com vários critérios que iremos ver na seqüência.

??

??

Page 5: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosSete Casos de Impasse

Caso 1: Requisições de ArquivosUma vez que um processo requisita e bloqueia um arquivo, um Impasse poderá ocorrer.

F1

F2

P1 P2

Alocado a

Alocado a

Requisitada

Requisitada

Page 6: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosSete Casos de Impasse

Caso 2: Impasses nas Bases de DadosUm impasse pode ocorrer quando dois processos acessam e bloqueiam um registro em uma base de dados.

Bloqueio: é uma técnica que visa garantir a integridade dos dados.

Se não houver Bloqueio, não ocorre Impasse, porém há uma corrida entre processos para atualização dos dados, o que torna a base de dados não confiável. Ou seja, os processos vão atualizando o registro e o último processo é que prevalece em sua atualização.

Page 7: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosSete Casos de Impasse

Caso 3: Impasses na Alocação de Dispositivos DedicadosSemelhante ao caso anterior, há dispositivos no sistema que são de uso dedicado a um único processo em tempo de execução. Neste caso, o Impasse poderá ocorrer por necessidade de recurso.

Exemplo:Dois processos independentes que utilizam unidade de fita, porém eles bloqueiam a sua unidade de fita e solicitam a outra para continuar sua atualização, porém esta unidade esta bloqueada por outro processo. É uma situação de Impasse.

Page 8: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosSete Casos de Impasse

Caso 4: Impasses na Alocação de Múltiplos DispositivosHá situação de Impasse que pode ocorrer na alocação de diversos dispositivos.

P1

P3 P2

Plotadora

ImpressoraUnidade de Fita

Alocado a

Requisitado

RequisitadoAlocado a

Requisitado

Alocado a

Page 9: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosSete Casos de Impasse

Caso 5: Impasses no SpoolingO Spooling é um recurso compartilhado no disco para aceitar operações de saída para melhorar performance de impressão.

Há uma situação crítica quando vários processos imprimem no spooling porém não completam sua impressão devido a DISK FULL, isto gera um Impasse e nada mais acontece na impressão: não se imprime por não ter completo os processos no spooling e não se termina os processos por não haver espaço em disco.

Este tipo de Impasse também pode ocorrer em outras situações como: transferência de arquivos em rede, entre outros.

Page 10: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosSete Casos de Impasse

Caso 6: Impasses no Compartilhamento de DiscoSemelhante a casos anteriores, porém referenciando o disco, este tipo de Impasse pode ocorrer quando dois processos necessitam de informações que estão em determinadas regiões do disco (trilhas e setores), porém um processo necessita gravar uma informação em um cilindro e outro ler em determinada posição. Para gravar, o cilindro de destino esta ocupado por outro processo, neste tempo, o outro processo desloca o braço para outra região, neste tempo, o cilindro de gravação é liberado, o processo de gravação desloca o braço para este cilindro que é travado novamente por outro processo. Este é um tipo de Impasse.

Page 11: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosSete Casos de Impasse

Caso 7: Impasses em uma RedeO Impasse típico que pode ocorrer em uma rede é quando os buffers de E/S estiverem ocupados (normalmente congestionamento). Isto pode levar a processos que desejam enviar pacotes a outro nó da rede, porém sem possibilidade por situação de congestionamento de buffers. É uma situação de Impasse.

Page 12: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosCondições para Ocorrência de Impasse

Para a ocorrência de Impasse, há algumas condições que podem ser previamente conhecidas pela SO:

Exclusão Mútua: um recurso pode ser alocado apenas a um processo.

Monopolização de Recursos: quando um processo necessita de um recurso e é determinante para continuidade de sua execução.

Inexistência de Preempção: quando um recurso é alocado a um processo e fica pelo tempo que for preciso, até seu término, não havendo compartilhamento temporário para outro processo.

Espera Circular: quando um processo espera que o outro libere voluntariamente o recurso alocado para que ele continue sua execução.

Page 13: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosModelando Impasses

Os Sistemas Operacionais utilizam-se da técnica de Grafos Direcionados para modelar os possíveis casos de Impasses.

De uma maneira mais simples, o Grafo Direcionado possibilita ao SO identificar casos de Impasses para tentar evitá-los, onde das condições possíveis de ocorrer Impasse, a ESPERA CIRCULAR é a situação insolúvel de Impasse.

R1

P1

Recurso

Processo

R1 P1P1 Monopoliza R1

R1 P1P1 Espera por R1

Page 14: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosModelando Impasses

R1

P1

R2

P2

R3

P3

R1

P1

R2

P2

R3

P3

Não há ImpasseNão há Espera Circular

Há ImpasseEspera Circular

Page 15: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosEstratégias no Gerenciamento Impasses

PREVINIR-SENa prevenção de Impasse, o SO deverá eliminar uma ou mais das quatro condições necessárias para que eles ocorram. Evidentemente, não seria possível eliminar todas elas porque os sistemas de computação necessitam de algumas delas, porém uma vez identificado, pelo menos uma poderá ser eliminada.

EVITARO Impasse poderá ser evitado se o SO souber a seqüência das requisições que os processos irão fazer ao longo de sua execução. Evidentemente, nos sistemas em lotes isto torna-se mais fácil, mas nos sistemas interativos isto é mais complicado, porém há algumas regras que poderão ser implementadas para tentar evitar o Impasse.

Page 16: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosEstratégias no Gerenciamento Impasses

DETECTARCom o uso dos Grafos Direcionados, é possível ao SO identificar a ESPERA CIRCULAR e tomar alguma atitude antecipada para evitar o Impasse. Por exemplo: um processo que requisita um recurso poderá sofrer um atraso em sua execução até que o recurso seja liberado em tempo certo para sua continuidade.

RECUPERARUma vez identificado um Impasse, o SO deverá tomar uma atitude para voltar o ambiente a normalidade o mais rapidamente possível.Há vários algoritmos de recuperação, porém todos eles necessitam de uma VÍTIMA, ou seja, há necessidade de se penalizar pelo menos um processo para resolver o problema.

Page 17: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosEstratégias no Gerenciamento Impasses

RECUPERARPrimeiro Método: terminar todos os programas ativos e reiniciá-los. Este método é o mais radical.Segundo Método: terminar apenas os programas que estão envolvidos no Impasse e avisar aos usuários para recomeçá-los. Terceiro Método: identificar os programas envolvidos no Impasse e terminá-los um a um verificando se o Impasse é resolvido.Quarto Método: os processos deverão ter um histórico de execução de maneira que o SO possa interromper um dos processos que se encontra na situação de Impassar e voltá-lo um passo em sua execução verificando se o Impasse se resolve (rollback).

Page 18: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosABANDONO

O Abandono é uma situação conflitante de alocação de recursos mais conservadora, ou seja, um programa em particular não consegue terminar porque fica a espera de recursos que jamais serão liberados.

O caso dos Filósofos a Mesa de Refeições ilustra o cenário de Abandono.

Page 19: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosABANDONO

F1

F2

F3F4

F5

G1

G2

G3

G4

G5

Há 5 Filósofos para comer Há 5 Garfos disponíveis Cada Filósofo deve comer usando 2 Garfos

Page 20: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosABANDONO

F1

F2

F3F4

F5

G1

G2

G3

G4

G5

F1 começa a comer. Aloca G1 e G5.

Page 21: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosABANDONO

F1

F2

F3F4

F5

G1

G2

G3

G4

G5

F1 começa a comer. Aloca G1 e G5. F3 começa a comer também. Aloca G2 e G3.

Page 22: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosABANDONO

F1

F2

F3F4

F5

G1

G2

G3

G4

G5

Se F1 parar de comer, F5 poderácomer, porém F2 e F4 não. Depois que F5 comer e parar, F1poderá voltar a comer, F4 e F2 nãocomem ...

Page 23: Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos

Gerenciamento de ProcessosConclusão

Os Sistemas Operacionais devem alocar dinamicamente um número limitado de recursos e ao mesmo tempo evitar o Impasse e Abandono, considerando, contudo, o caso extremo de eleger uma vítima para dar continuidade a execução dos processos e programas do ambiente computacional.