TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O Impedimento de Deadlock ou Evitar Deadlock 

Por:   •  11/12/2019  •  Ensaio  •  2.425 Palavras (10 Páginas)  •  196 Visualizações

Página 1 de 10

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)

...

Baixar como (para membros premium)  txt (12.6 Kb)   pdf (876.7 Kb)   docx (1.5 Mb)  
Continuar por mais 9 páginas »
Disponível apenas no TrabalhosGratuitos.com