iSIOMAS
Vina's daddy

Soal 3.17

Misal dua buah task T1 dan T2 menggunakan dua buah critical sectionS1 dan S2. Kedua task tersebut memerlukan critical section pada urutan berikut:

T1: Lock S1 . Lock S2 . Unlock S2 . Unlock S1 .
T2: Lock S2 . Lock S1 . Unlock S1 . Unlock S2 .

Anggap T1 T2 dan T2 memulai eksekusi pada t0. Pada waktu t1, T2mengunci S2. Pada waktu t2, T1 muncul dan menyala T2 karena prioritasnya lebih tinggi. Pada waktu t3, T1 mengunci S1. Pada waktu t3, T, mengunci S,. Pada waktu t4, T1 mencoba mengunci S2, tetapi terblokir karena T2 belum selesai. T2 sekarang mendapat turunan prioritas dari T1 dan mulai mengeksekusi. Akan tetapi ketika pada waktu t5 dia mencoba mengunci S1, akan tetapi tidak bisa selama T1menguncinya. Sekarang kedua T1 dan T2 dalam keadaan deadlock.

Solusi:

Hal ini dapat diatasi dengan metoda priority ceiling, diagramnya menjadi:

Disitu terlihat bahwa T2 diberikan prioritas yang tinggi dulu agar dapat menyelesaikan task yang membutuhkan S1, baru kemudian selanjutnya S1 dapat digunakan oleh T1.

Written by iQ on Thursday March 23, 2006
Permalink -

« Soal 3.20 - Program Statistik Karakter »