menu search
brightness_auto
more_vert
Meu professor falou isso,mas não lembro oque e, só sei que tem haver com SISTEMA OPERACIONAL.
thumb_up_off_alt 2 votos positivos thumb_down_off_alt 0 votos negativos

Sua resposta

Seu nome (opcional):
Privacidade: Seu email será usado apenas para enviar estas notificações.

2 Respostas

more_vert
 
done_all
Melhor resposta
DeadLock é considerado como uma falha e não um erro,ela ocorre quando mais de um usuário alteram o mesmo registro ao mesmo tempo.
Um exemplo que posso dar é; dois usuários fazem no mesmo instante a liquidação de um boleto do mesmo condomínio,um dos dois vai recer a mensagem de DEADLOCK.

Para se evitar que esse erro ocorra ative o AUTOSALVAR e sempre logue-se com usuários diferentes na rede.

Caso permaneça o erro, anote em quais pontos do software isso ocorre, o software possui alguns pontos de autosalvamento e
pode ser necessário a ativação de outros.
thumb_up_off_alt 2 votos positivos thumb_down_off_alt 0 votos negativos
more_vert
Deadlock (interbloqueio, -blocagem, impasse), no contexto do sistemas operacionais (SO), caracteriza uma situação em que ocorre um impasse e dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados. Trata-se de um problema bastante estudado no contexto dos Sistemas Operacionais, assim como em outras disciplinas, como banco de dados, pois é inerente à própria natureza desses sistemas.

O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis, onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo que, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo.

A definição textual de deadlock normalmente, por ser muito abstrata, é mais difícil de se compreender do que a representação por grafos, que será resumida mais adiante. No entanto, algumas observações são pertinentes:
O deadlock pode ocorrer mesmo que haja somente um processo no SO, considerando que este processo utilize múltiplos threads e que tais threads requisitem os recursos alocados a outros threads no mesmo processo;
O deadlock independe da quantidade de recursos disponíveis no sistema;
Normalmente o deadlock ocorre com recursos como dispositivos, arquivos, memória, etc. Apesar da CPU também ser um recurso para o SO, em geral é um recurso facilmente preemptível, pois existem os escalonadores para compartilhar o processador entre os diversos processos, quando trata-se de um ambiente multitarefa.

Um exemplo onde erros de deadlock ocorrem é no banco de dados. Suponha que uma empresa tenha vários vendedores e vários pontos de venda/caixas. O vendedor A vendeu 1 martelo e 1 furadeira. O sistema então solicita o travamento do registro da tabela ESTOQUE que contém o total de martelos em estoque e em seguida solicita o travamento do registro que contém o total de furadeiras em estoque. De posse da exclusividade de acesso aos dois registros, ele lê a quantidade de martelos, subtrai 1 e escreve de novo no registro, o mesmo com o registro de furadeiras. Observe, no entanto que existem diversos caixas operando simultaneamente de forma que se algum outro caixa naquele exato instante estiver vendendo um furadeira, ele ficará de aguardando a liberação do registro das furadeiras para depois alterá-lo. Note que ele só altera os registro depois que for dada exclusividade para ele de TODOS os recursos que ele precisa, ou seja, de todos os registro. Suponha agora que em outro caixa a venda foram vendidos 1 furadeira e 1 martelo e que o outro caixa solicitou o travamento do registro com a quantidade de furadeiras e agora quer o acesso ao de martelos, no entanto o de martelos está travado para o primeiro caixa. Nenhum deles devolve o recurso (registro) sobre o qual tem exclusividade e também não consegue acesso ao outro registro que falta para terminar a operação. Isto é um deadlock.
thumb_up_off_alt 1 voto positivo thumb_down_off_alt 0 votos negativos
...