Race Condition adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai. Untuk mencegah race condition, proses-proses yang berjalan besamaan harus di disinkronisasi.
Dalam beberapa sistem
operasi, proses-proses yang berjalan bersamaan mungkin untuk membagi beberapa
penyimpanan umum, masing-masing dapat melakukan proses baca (read) dan proses tulis (write). Penyimpanan bersama (shared storage) mungkin berada di memori
utama atau berupa sebuah berkas bersama, lokasi dari memori bersama tidak
merubah kealamian dari komunikasi atau masalah yang muncul. Untuk mengetahui
bagaimana komunikasi antar proses bekerja, mari kita simak sebuah contoh
sederhana, sebuah print spooler. Ketika sebuah proses ingin mencetak sebuah
berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler
direktori yang khusus. Proses yang lain, printer daemon, secara periodik
memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika
ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori.
Kunci
untuk mencegah masalah ini dan di situasi yang lain yang melibatkan shared
memori, shared berkas, and shared sumber daya yang lain adalah menemukan
beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses
writing dan reading kepada shared data pada saat yang sama. Dengan kata lain
kita memutuhkan mutual exclusion,
sebuah jalan yang menjamin jika sebuah proses sedang menggunakan shared berkas,
proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena
proses 2 mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan
tugasnya.
Selanjutnya akan dibahas oleh Dino Damara dengan link
Selanjutnya akan dibahas oleh Dino Damara dengan link
No comments:
Post a Comment