2. Komunikasi Antar Process
Contoh dua process
Mengakses area memory yang sama
Race condition
Situasi akhir di memory tergantung kepada
bagaimana CPU mengalokasikan waktu
2
3. Critical Region
Bagian dari process
Mengakses area memory yang sama
Potensi menimbulkan Race Condition
Dijalankan secara ekslusif antar process
Mutual Exclusion
4. Kondisi Mutual Exclusion
Tidak boleh ada dua proses (atau lebih) berada dalam Critical
Region secara simultan
Tidak ada asumsi tentang kecepatan dan jumlah CPU
Process yang berada di luar Critical Region tidak boleh
menghalangi process lainnya
Tidak boleh ada process yang menunggu terlalu lama (atau
selamanya) untuk masuk Critical Region
5. Komunikasi Antar Process:
Ilustrasi
Jalur kereta api Single-track
Hanya boleh ada satu rangkaian kereta pada
saat tertentu
6. Komunikasi Antar Process
Men-disable interrupt
Sebelum masuk Critical Region
Harus kembali di-enable setelah selesai
Interrupt seharusnya dikelola oleh Sistem
Operasi
7. Komunikasi Antar Process
Skema Lock Variable
Jika nilainya 1
Ada process yang berada dalam Critical Region
Periksa nilai, apakah 0, sebelum masuk Critical
Region
Masalah yang sama dengan Spooler Directory
8. Skema Busy Waiting
Model sederhana 2 process
Kriteria ke-3 Mutual Exclusion tidak terpenuhi
9. Peterson's Solution
Model sederhana 2
process
Kriteria ke-3 dipenuhi
dengan berlaku
'sopan' pada process
yang lain
11. Semaphore
E. W. Dijkstra
Model jalur kereta api
Special kind of integer
Probeer te verlagen, Down, Wait
Jika nilai semaphore == 0, sleep
Decrement semaphore by 1
Verhogen, Up, Signal
Increment semaphore by 1
Jika ada process yang sleep pada semaphore
tersebut, wake him up