BD-2st-1.2-w09.tresc-1.1-Slajd21
Procedura wykrywania zakleszczenia (2)
Dla ilustracji działania procedury wykrywania zakleszczenia rozważmy przykład przedstawiony na slajdzie. Mamy dwie dane oraz dwie kolejki transakcji, które uzyskały dostęp do tych danych. Pierwsza z danych jest blokowana przez transakcję T2 do zapisu (W), natomiast druga jest blokowana przez transakcje T1 i T4 do odczytu (R). Transakcja T1 oczekuje na transakcję T2 na uwolnienie pierwszego z zasobów, natomiast transakcje T2 i T3 oczekują na uwolnienie drugiego z zasobów.
Graf WFG składa się z 4 wierzchołków reprezentujących transakcje T1, T2, T3, T4. Łuk (T1,T2) reprezentuje oczekiwanie transakcji T1 na T2 w odniesieniu do pierwszego zasobu. Łuk (T2,T1) reprezentuje oczekiwanie transakcji T2 na T1 w odniesieniu do drugiego zasobu. Łuk (T2,T4) reprezentuje oczekiwanie transakcji T2 na T4 w odniesieniu do drugiego zasobu. Podobnie, łuki T3T4 i T3T1. Łuk T3T2 reprezentuje sytuację, gdy obie transakcje T3 i T2 znajdują się kolejce transakcji oczekujących na uwolnienie zasobu, ale ich blokady są niekompatybilne. Zauważmy, że w przykładowym grafie występuje cykl obejmujący wierzchołki T1 i T2.