1 INTERPROCESS COMMUNICATION SEMAPHORES –Integer variable untuk menghitung jumlah wakeup –Bernilai negatif untuk menghitung jumlah permintaan yang tidak bisa dipenuhi, bernilai positif bila ada wakeup 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)
2 The producer-consumer problem using semaphores
3 MUTEXES Variable yang bernilai salah satu dari dua keadaan: unlocked atau locked Implementation of mutex_lock and mutex_unlock
4 MONITORS Higher level synchronization primitives Kumpulan prosedur, variable dan data struktur yang dikelompokkan menjadi suatu modul
5 Hanya satu prosedur monitor yang aktif dalam suatu waktu Buffer memiliki N slots Producer-consumer problem menggunakan monitors
6
7 MESSAGE PASSING Menggunakan dua primitives: –Send (destination, &message) –Receive (source, &message) Beberapa isu pada sistem message passing –Message lost –Acknowledgement –Domains –Authentication –Performance Penerapan producer-consumer problem menggunakan message passing sbb:
8
9 Beberapa variant dari message passing –Mailbox –Rendezvous –Pipe