Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos.
-
Upload
tania-garrido-bergler -
Category
Documents
-
view
221 -
download
0
Transcript of Sincronização de Processos Gerenciamento de Impasses (deadlock) Gerenciamento de Abandonos.
Sincronização de Processos
Gerenciamento deImpasses (deadlock)
Gerenciamento deAbandonos
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
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.
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.
??
??
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
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.
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.
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
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.
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.
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.
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.
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
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
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.
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.
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).
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.
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
Gerenciamento de ProcessosABANDONO
F1
F2
F3F4
F5
G1
G2
G3
G4
G5
F1 começa a comer. Aloca G1 e G5.
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.
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 ...
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.