O Impedimento de Deadlock ou Evitar Deadlock
Por: Keyci Amado • 11/12/2019 • Ensaio • 2.425 Palavras (10 Páginas) • 242 Visualizações
DEADLOCK refere-se a uma situação em que ocorre um impasse, e dois ou mais processos ficam impedidos de continuar suas execuções - ou seja, ficam bloqueados, esperando uns pelos outros. //Um conjunto de processos está em Deadlock quando todos os processos no conjunto estão esperando por um evento ou recurso de outro processo do mesmo conjunto.
[pic 1][pic 2][pic 3]
[pic 4]
Impedimento de Deadlock ou Evitar Deadlock
Utiliza o grafo de alocação de recursos para representar também a demarcação ou pretensão de utilização de recursos, usando uma Aresta [pic 5]
segmentada Se há um ciclo no grafo, o sistema está em estado inseguro. Arestas de 3 tipos Pedido Atribuição Demarcação ou pretensão
Antes do processo Pi iniciar a execução, precisa informar ao sistema sua demanda por recursos (demarcar os recursos). Para demarcar um
recurso Ri, será observado se todas as arestas associadas a Pi são de demarcação, ou seja, não possui recursos. Isso garante o conhecimento
prévio de recursos Antes de Pi executar, todas as arestas de demarcação devem ter aparecido no grafo.
Algoritmo do banqueiro: O algoritmo do grafo de alocação de recursos não se aplica a um sistema com múltiplas instâncias de um recurso.
O algoritmo do banqueiro pode ser aplicado a um sistema com múltiplas instâncias de um recurso, porém é menos eficiente que o algoritmo anterior. É assim chamado pois poderia ser usado em um sistema bancário para garantir que o banco nunca aloque seus caixas disponíveis de modo que não consiga satisfazer as necessidades de todos seus clientes.
Quando um processo chega no sistema, precisa declarar o número máximo de instâncias de cada recurso que irá utilizar; Esse número não pode ultrapassar a quantidade total de recursos
no sistema. ◘ Quando um processo requisita um conjunto de recursos, o sistema precisa determinar se a alocação desses recursos deixará o sistema em estado seguro. Se sim, os recursos são alocados; Caso contrário, o processo irá esperar até outro processo liberar os recursos.
Seja n o número de processos e r o número de tipos de recursos Estruturas de dados: Disponível: vetor de tamanho r; indica o número de recursos disponíveis de cada tipo.
Disponível[i] = k; //Existem k instancias do recurso i. ◘ Máximo: matriz n x r que define a demanda máxima de cada processo. Máximo[i][j] = x; //O processo i pode solicitar no máximo x
instâncias do recurso j.
Alocação: matriz n x r mostra o número de recursos alocados por processo. Alocação[i][j] = x; //O processo i possui x instâncias do recurso j alocadas.
Necessário: matriz n x r mostra a necessidade de recursos restantes do processo. Necessário[i][j] = x; //O processo i ainda necessita x instâncias do recurso j alocadas.
[pic 6][pic 7][pic 8][pic 9]
[pic 10]
[pic 11][pic 12]
Gerência de Memória: Todo endereço de memória gerado pela CPU deve ser verificado em termos de legalidade e possivelmente ser mapeado
em um endereço físico. A verificação não pode ser implementada de forma eficiente no software limitada pelo hardware.
MAPEAMENTO DE ENDEREÇOS: Fila de Entrada = coleção de processos no disco esperando[pic 13]
para serem carregados na memória Procedimento normal Selecionar um dos [pic 14]
processos na Fila de Entrada e carregá-lo na memória. Função do escalonador de Longo
Prazo A medida em um processo é executado, ele acessa instruções e dados da memória.
Ao terminar, seu espaço de memória é disponibilizado. O espaço de endereços no
computador começa em 00000, mas o primeiro endereço de um processo de usuário não
precisa ser 00000 Isto afeta os endereços que o programa do usuário vai usar
Um programa de usuário passa por várias etapas antes de ser executado:[pic 15]
[pic 16]
◘ Os endereços podem ser representados de diferentes formas durante[pic 17]
essas etapas e mapeados também em momentos diferentes.
◘ Cada associação é um mapeamento de um espaço de endereço para
outro e feita em etapas diferentes.
Espaço de Endereçamento Lógico x Físico
Memória Lógica de um processo: é aquela que o processo enxerga
os endereços manipulados pelo processo são Endereços Lógicos
Por exemplo, as variáveis de um processo contêm endereços lógicos. Cada processo possui sua memória lógica, independente da memória lógica de outros processos Espaço de Endereçamento Lógico (ou Virtual) de um processo é o conjunto de endereços lógicos que esse processo pode endereçar (enxergar). Há um espaço de endereçamento lógico por processo.
Memória Física de um processo: é aquela implementada pelos circuitos integrados de memória o Endereço Físico é usado para endereçar os circuitos integrados Espaço de Endereçamento Físico é formado por todos os endereços aceitos pelos circuitos integrados de memória.
PROTEÇÃO DE MEMÓRIA: Realizada pelo MMU (Unidade de Gerência de Memória), ◘ Exemplo com Registrador Limite e Registrador Base Considera que os endereços lógicos e físicos são diferentes O espaço de endereçamento lógico do processo vai de zero até o Registrador Limite A área de memória física do processo inicia no valor do Registrador Base e tem o tamanho da memória lógica do processo (Limite)
...