T0542 / INTERPROCESS COMMUNICATION (LANJUTAN) SEMAPHORES Integer variable untuk menghitung jumlah wakeup Bernilai negatif bila ada permintaan yang tidak bisa dipenuhi, bernilai positif bila ada wakeup (resource available) Dua macam operasi terhadap semaphore: 1. DOWN (S) S = S – 1 IF (S < 0) THEN SLEEP(S) 2. UP (S) S = S + 1 IF (S <= 0) THEN WAKEUP(S) Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action)
T0542 / The producer- consumer problem using semaphores
T0542 / MUTEXES Variable yang bernilai salah satu dari dua keadaan: unlocked atau locked Implementation of mutex_lock and mutex_unlock
T0542 / MONITORS Higher level synchronization primitives Kumpulan prosedur, variable dan data struktur yang dikelompokkan menjadi suatu modul Contoh suatu monitor
T0542 / Hanya satu prosedur monitor yang aktif dalam suatu waktu Buffer memiliki N slots Producer-consumer problem menggunakan monitors
T0542 /
T0542 / MESSAGE PASSING Menggunakan dua primitives: Send (destination, &message) Receive (source, &message) Beberapa isu pada sistem message passing Message lost Acknowledgement Domains Authentication Performance Pereapan producer-consumer problem menggunakan message passing
T0542 /
T0542 / Beberapa variant dari message passing: Mailbox Rendezvous Pipe