Concorrencia
Augusto C. A. Ribas
December 11, 2014
1
Considere as trˆ es transa¸c˜ oes T1, T2 e T3 e as schedules S1 e S2 dadas a seguir, aplique o algoritmo de ordena¸c˜ ao por r´ otulos de tempo para as schedules acima e determine se o algoritmo terminar´ a a execu¸c˜ ao das mesmas.
2
O que ´ e o protocolo de bloqueio em duas fases?
Como ele garante a serializa¸c˜ ao? O protocolo de bloqueio em duas fases (2PL) ´e um m´etodo de controle de concorrˆencia que garante a serializa¸c˜ao. Ele utiliza bloqueios (locks) aplicados a transa¸c˜ oes, que podem bloquear outras transa¸c˜oes de acessar partes de dados durante a vida de uma transa¸ca˜o. Basicamente o protocolo de bloqueio em duas fases ´e aplicado e removido em duas fases.
• Fase de expan¸c˜ ao(Expanding phase): bloqueios (locks) s˜ao adquiridos e nenhum dado bloqueado ´e liberado.
1
• Fase de encolhimento(Shrinking phase):bloqueios (locks) s˜ao liberados e nenhum novo bloqueio ´e feito.
3
Discuta os problemas de deadlock e starvation
(inani¸
c˜ ao) e as diferentes t´ ecnicas para lidar com esses problemas.
Deadlocks ocorrem quando um transa¸c˜ao T1 , em um grupo T de duas ou mais transa¸c˜ oes, esta esperando por outra transa¸c˜ao, T2 e esta por sua vez est´a esperando a transa¸c˜ ao T1 . Sendo que o deadlock pode ocorrer em qualquer n´ umero de transa¸c˜ oes, quando ´e gerado uma dependˆencia circular entre estas.
Uma maneira de prevenir deadlock ´e usar algum protocolo de preven¸c˜ao, como o bloqueio de duas fases conservador (conservative two-phase locking) que requer que todo bloqueio de transa¸c˜ao tamb´em bloquei todos os itens que vai precisar antes durante a aplica¸c˜ao do bloqueio, se algum dos itens n˜ao puder ser bloqueado, nenhum item ´e bloqueado, prevenindo deadlocks, mas fazendo com que a transa¸c˜ ao inteira espere por uma nova oportunidade de bloquear todos os itens, mas essa solu¸c˜ ao n˜ ao ´e muito eficiente, ja que limita a concorrˆencia de
transa¸c˜