download

T0542 / 04 - 01
INTERPROCESS COMMUNICATION
Permasalahan:
• Penyampaian informasi antar proses
• Pengaturan proses agar tidak saling menghalangi
• Proper sequencing bila terjadi dependencies
RACE CONDITION
• Dua proses mengakses shared memory pada saat
yang bersamaan
T0542 / 04 - 02
• Contoh: spooler directory pada printer
T0542 / 04 - 03
CRITICAL REGION
• Bagian program dimana shared memory diakses
Mutual Exclusion:
• Mekanisme untuk mencegah suatu proses
mengakses resouce yang sedang dipakai oleh
preses lain
Empat kondisi agar terjadi mutual exclusion:
1. Tidak ada dua proses yang berada di critical region pada
saat yang bersamaan
2. Tidak ada asumsi mengenai kecepatan dan jumlah CPU
3. Tidak ada proses yang berada di luar critical region
menghalangi (blocking) proses yang lain
4. Tidak ada proses yang menunggu selamanya untuk
masuk critical region
T0542 / 04 - 04
Mutual exclusion using critical regions
T0542 / 04 - 05
MUTUAL EXCLUSION DENGAN BUSY WAITING
• Disabling Interrupt
• Proses mematikan (disable) semua interrupt setelah
memasuki critical region dan menghidupkan kembali (reenable) interrupt tersebut sebelum meninggalkannya
• disabling interrupt tidak sebaiknya dilakukan oleh user
process
• Lock Variables
• Shared (lock) variables, awalnya diset 0
• Jika lock = 0, set lock = 1, kemudian masuk critial region
• Jika lock = 1, tunggu sampai lock = 0
 problem: race condition
T0542 / 04 - 06
• Lock Variables
• Shared (lock) variables, awalnya diset 0
• Jika lock = 0, set lock = 1, kemudian masuk critial region
• Jika lock = 1, tunggu sampai lock = 0
 problem: race condition
• Strict Alternation
(a) Process 0.
(b) Process 1.
T0542 / 04 - 07
• Peterson’s Solution
T0542 / 04 - 08
• TSL Instruction
• Sleep and Wakeup
Sleep: system call yang menyebabkan proses yang
memanggil diblock, atau ditunda (suspended)
Wakup: system call yang menyebabkan proses
dibangunkan, atau menjadi ready
T0542 / 04 - 09
• Producer-Consumer Problem (Bounded-Buffer Problem)
Producer-consumer problem with fatal race condition