Jangan Berpikir Begitu, Tapi Berpikirlah Memang Begitu

Photobucket Photobucket

Statistik Pengunjung

07.17 | Posted in


Masalah pembaca dan penulis (readers and writers problem) memodelkan pengaksesan lebih dari satu proses ke basis data yang sama. Masalahnya dapat dideskripsikan sebagai berikut, diasumsikan terdapat basis data besar seperti sistem reservasi penerbangan dengan proses-proses yang berkompetisi untuk membaca dan menulis pada basis data tersebut. Diasumsikan bahwa sistem tersebut memiliki prosedur sebagai berikut:
1. Mengijinkan banyak proses membaca basis data pada saat yang sama.
2. Jika terdapat satu proses menulis (mengubah) basis data, proses lain tidak boleh mengakses basis data baik membaca atau menulis.
Pada masalah ini, writers memiliki prioritas yang lebih tinggi dari pada readers. Jika ada writer yang sedang menunggu, maka tidak boleh ada reader lain yang bekerja. Writer akan memblok semua proses reading oleh readers dan melakukan proses writing. Ketika proses writing selesai, maka proses reading dapat dilanjutkan kembali oleh readers.

wait(wrt);
...
menulis
...
signal(wrt);

====================================================================

wait(mutex);
readcount:= readcount + 1;
if readcount = 1 then wait(wrt);
signal(mutex);
...
membaca
...
wait(mutex);
readcount:= readcount – 1;
if readcount = 0 then signal(wrt);
signal(mutex);


Algoritma diatas menunjukkan masalah reader dan writer. Jika ada writer dalam critical section dan ada n reader yang menunggu, maka satu reader akan antri di wrt, dan n – 1 reader akan antri. Jika writer mengeksekusi signal (wrt), maka dapat disimpulkan bahwa eksekusi adalah menunggu reader atau menunggu satu writer.
Permasalahan readers and writers problem ini hampir sama dengan manajemen penggunaan basis data (Microsoft Access, SQL Server, dan database engine lainnya) dalam kehidupan sehari-hari, dimana record tidak akan dapat diakses oleh pengguna ketika record sedang dieksekusi oleh pengguna lain untuk proses insert, delete atau update. Ketika mengerjakan proses insert, delete atau update, database engine mengunci (lock) basisdata, sehingga semua aksi membaca dan aksi menulis lainnya pada tabel yang sama dan pada basis data yang sama diblok hingga proses selesai dikerjakan.


Category:
��

Comments

0 responses to "Readers and Writers Problem"

Buku Tamu