4 (FUNDATEC - 2023 - PROCERGS - ANC - Analista em Computação - Ênfase em Suporte de Banco de Dados) Assinale a alternativa correta sobre os conceitos de deadlocks e starvation (inanição).
a) Starvation e deadlock têm o mesmo significado, ocorrendo quando uma transação espera que a outra libere um lock para acessar um determinado recurso.
b) Starvation e deadlock ocorrem ambos quando uma transação mantém um lock adquirido por muito tempo, impedindo que outras transações acessem o recurso protegido por esse lock.
- Starvation ocorre quando uma transação necessita adquirir um lock que está sendo usado por outra transação e espera indefinidamente pela sua liberação, o que a impede de progredir, enquanto deadlock ocorre quando duas transações esperam uma pela liberação de um lock que está sendo usado pela outra.
d) Deadlock ocorre quando duas transações esperam uma pela liberação de um lock que está sendo usado pela outra, enquanto starvation é um tipo de deadlock, que ocorre quando uma transação requisita um lock que está sendo usado por outra transação.
e) Nenhuma das alternativas anteriores está correta.
a) Starvation e deadlock têm o mesmo significado, ocorrendo quando uma transação espera que a outra libere um lock para acessar um determinado recurso.
b) Starvation e deadlock ocorrem ambos quando uma transação mantém um lock adquirido por muito tempo, impedindo que outras transações acessem o recurso protegido por esse lock.
d) Deadlock ocorre quando duas transações esperam uma pela liberação de um lock que está sendo usado pela outra, enquanto starvation é um tipo de deadlock, que ocorre quando uma transação requisita um lock que está sendo usado por outra transação.
e) Nenhuma das alternativas anteriores está correta.
Passo 1
O enunciado apresenta uma questão de Sistemas de Banco de Dados sobre controle de concorrência, mais especificamente a diferença entre deadlock e starvation, pedindo para identificar a alternativa que descreve corretamente esses dois fenômenos.
Passo 2
Vamos entender primeiro o que é deadlock. Deadlock é uma situação de impasse circular em que duas ou mais transações ficam cada uma esperando que a outra libere um lock sobre um recurso, e nenhuma delas consegue progredir.
Passo 3
Agora, starvation (inanição) é quando uma transação fica esperando indefinidamente por um lock que está sempre ocupado por outras transações (por exemplo, devido a prioridade ou adiantamento contínuo dos outros), de modo que ela nunca consegue acesso ao recurso, embora não haja necessariamente um ciclo de espera.
Passo 4
Analisando as alternativas:
- A alternativa que define starvation como espera indefinida por um lock usado por outra transação e deadlock como espera circular entre duas transações (cada uma esperando a outra) é a que está correta.
Resposta
c) Starvation ocorre quando uma transação necessita adquirir um lock que está sendo usado por outra transação e espera indefinidamente pela sua liberação, o que a impede de progredir, enquanto deadlock ocorre quando duas transações esperam uma pela liberação de um lock que está sendo usado pela outra.