Rabu, 02 Oktober 2013

TESTING FOR SERIALIZABILITY

Pada saat mendesain skema kontrol konkurensi, kita harus tunjukan bahwa jadwal yang dibuat oleh skema tersebut adalah serializable. Terdapat metode simpel dan efisien untuk menentukan conflict serializability dari suatu jadwal.
Misalkan sebuah jadwal S. Kita dapat membuat suatu grafik langsung yang diberi nama grafik preseden (presedence graph). Grafik preseden terdiri dari sepasang G = (V,E), dimana V adalah serangkaian simpul dan E adalah serangkaian tepian / busur. Serangkaian simpul terdiri dari semua transaksi yang berperan serta di dalam penjadwalan. Serangkaian tepian / busur terdiri dari semua bentuk Ti -> Tj untuk masing – masing dari ketiga kondisi berikut :
§  Ti eksekusi write(Q) sebelum Tj eksekusi read(Q)
§  Ti eksekusi read(Q) sebelum Tj eksekusi write(Q)
§  Ti eksekusi write(Q) sebelum Tj eksekusi write(Q)
Jika bentuk Ti -> Tj ada di dalam grafik
preseden, maka di setiap jadwal S’ serial yang ekivalen ke jadwal S, Ti harus muncul sebelum Tj





                          
Sebagai contoh, grafik preseden untuk penjadwalan 1 digambarkan di (a), terdiri dari bentuk dasar T1 -> T2 , dimana semua instruksi T1 dieksekusi sebelum instruksi pertama pada T2 dieksekusi. Begitu juga sebaliknya untuk contoh yang digambarkan di (b).




Grafik preseden untuk jadwal 4, terdiri dari bentuk T1 -> T2 , karena T1 mengeksekusi
read(A) sebelum T2 mengeksekusi write(A). Grafik ini jg terdiri dari bentuk T2 -> T1 , karena T2 mengeksekusi read(B) sebelum T1 eksekusi write(B). Jika grafik preseden untuk S membentuk suatu lingkaran, maka jadwal S tidak conflict serializable. Jika sebaliknya, maka jadwal S conflict serializable


Tidak ada komentar :

Posting Komentar