SóProvas


ID
2066458
Banca
Aeronáutica
Órgão
CIAAR
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

A ocorrência de travamento ou impasse são situações indesejadas em um Banco de Dados. O deadlock (impasse) ocorre quando cada transação T em um conjunto de duas ou mais transações está esperando por algum item que está bloqueado por alguma outra transação T' no conjunto. Sobre protocolos de prevenção e detecção de deadlock analise as alternativas abaixo e assinale a alternativa correta.

Alternativas
Comentários
  • O gabarito é a letra C.

     

    Um deadlock acontece quando duas ou mais tarefas bloqueiam uma à outra permanentemente, sendo que cada uma tem o bloqueio de um recurso, que a outra tarefa está tentando bloquear. Por exemplo:

     

    A transação A adquire um bloqueio compartilhado da linha 1.

    A transação B adquire um bloqueio compartilhado da linha 2.

    A transação A agora solicita um bloqueio exclusivo na linha 2 e é bloqueado até que a transação B termine e libere o bloqueio compartilhado que tem na linha 2.

    A transação B agora solicita um bloqueio exclusivo na linha 1 e é bloqueado até que a transação A termine e libere o bloqueio compartilhado que tem na linha 1.

    A transação A não pode terminar até que a transação B termine, mas a transação B está bloqueada pela transação A. Essa condição é também chamada de dependência cíclica: a transação A tem uma dependência da transação B, e a transação B fecha o círculo tendo uma dependência da transação A.

     

    Ambas as transações em um deadlock esperarão indefinidamente, a menos que o deadlock seja quebrado por um processo externo. O monitor de deadlock verifica periodicamente as tarefas que estão em um deadlock. Se o monitor detectar uma dependência cíclica, ele escolhe uma das tarefas como vítima e termina sua transação com um erro (SELEÇÃO DA VÍTIMA). Isso permite que a outra tarefa complete sua transação. O aplicativo com a transação que terminou com um erro pode repetir a transação, a qual normalmente é concluída depois que a outra transação em deadlock é encerrada.

  • Lacrou! Ótima observação.

  • mas direito de propriedade é um direito de 1º geração

  • B = Wait-die (esperar-morer) - se a transação que solicitou o bloqueio é a mais antiga, pode aguardar. Se for a mais nova, sofre rollback e recomeça mais tarde com mesmo timestamping.

    Wound-wait (ferir-esperar) – se uma transação mais nova solicitar o bloqueio e o item estiver bloqueado por uma transação mais antiga, a transação mais nova pode aguardar. Se for a mais antiga que estiver solicitando, então ela interrompe a mais nova, a qual sofre rollback e recomeça mais tarde com mesmo timestamping.

    Inverteram

    C = Se o sistema estiver em um estado de deadlock, algumas das transações que causam o deadlock precisam ser abortadas. A escolha de quais transações abortar é conhecida como seleção de vítima. O algoritmo para a seleção de vítima geralmente deve evitar a seleção de transações que estiveram em execução por muito tempo e que realizaram muitas atualizações, e deve tentar, em vez disso, selecionar transações que não fizeram muitas mudanças (transações mais novas).

    Navathe.