SóProvas


ID
770383
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Ocorre deadlock quando uma transação de um conjunto com duas ou mais transações concorrentes aguarda por algum item de dado que foi bloqueado por outra transação do mesmo conjunto.

Alternativas
Comentários
  • Questão do CESPE no estilo da FCC, fala só a metade do conceito e considera como correto o item, não ocorre deadlock apenas porque uma transação es tá aguardando o item de dado da outra, tem que ser no mínimo duas transações, uma esperando o recurso da outra, por isso que se chama impasse, vejam o que falam os dois autores conceituados sobre o assunto:
    Navathe - O deadlock 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. 
    Date - O impasse é uma situação na qual duas ou mais transações estão em estado de espera simultaneamente, cada uma esperando que uma das outras libere um bloqueio antes de poder prosseguir.
    Portando consedere o item INCORRETO.
  • Ximenes concordo com a sua citação, porém a qustão esta dizendo "quando uma transação de um conjunto com duas ou mais transações", ou seja essa "uma" transação esta dentro de um conjunto de n transações.

    Questão correta.
  • Concordo com o Ximenes em sua totalidade. A questão afirma que uma transação de um conjunto de n transações estão aguardando um item bloqueado, ou seja, uma única trnasação qualquer. Isso não caracteriza um deadlock. É necessário que cada transação desse conjunto esteja a espera de um item bloqueado por outra transação desse mesmo conjunto.
    Um exemplo rápido, transações A e B, A espera um recurso bloqueado por B. Não há deadlock, pois B pode continuar sua execução normal e, em seguida, liberar o recurso que será utilizado por A.
    Vale lembrar que são necessárias 4 condições para um deadlock: exclusão mútua (2 não podem usar o mesmo recurso); espera carregada (não liberar o recurso); não preempção (não pode tirar o recurso); espera circular (há um ciclo de espera). Sem qualquer dessas condições, não há deadlock.
  • Gustavo, a questao ta afirmando o seguinte: Ocorre deadlock quando uma transação de um conjunto com duas ou mais transações concorrentes aguarda por algum item de dado que foi bloqueado por outra transação do mesmo conjunto.
    Ou seja, considere Ct = {T1, T2, T3..Tn}
    Pelo enunciado da questao, bastaria q qqr uma das transacoes T do conjunto de transacoes(Ct) aguardasse por algum item bloqueado por outra transacao de Ct para ocorrer deadlock.
    Ou seja, se T1 aguarda pelo fim do bloqueio de T2 ja taria ocorrendo deadlock(segundo a questao).
    E isso nao  configura deadlock, pq T2 pderia desbloquear imediatamente seu recurso e nao haveria deadlock.
    O deadlock ocorre quando nao apenas uma, mas, pelo menos, 2 transacoes tao aguardando o recurso q a outra detem, e uma nao libera pq a outra tbm nao libera a sua.
    Isso me faz lembrar jovens em busca de emprego: o mercado nao lhes oferece emprego pq nao tem experiencia e o jovem nao tem experiencia pq nao consegue arrumar emprego.,
    E um fica um esperando pelo outro.
  • Deadlock ocorre se a Transação (A) aguarda um item que está na posse de uma transação (B)  bloqueada à espera por um item que ela a transação (A)  detém. Caracterizando a espera circular. Que merda de questão é essa?

  • se uma só está esperando, não há impasse. É preciso haver ciclos de necessidade e bloqueios.

    precisa haver pelo menos 2 transações e cada uma precisa estar bloqueando algo que a outra precisa.