MATERI 6: Sinkronisasi Proses, Konkurensi (Mutual Exclusion, Deadlock Startvation)
SINKRONISASI PROSES
Sinkronisasi proses adalah teknik dalam sistem operasi yang digunakan untuk mengatur interaksi antara proses-proses yang berjalan secara bersamaan. Tujuannya adalah untuk menghindari kondisi balapan (race conditions), memastikan data tetap konsisten, dan mengelola akses ke sumber daya bersama. Berikut adalah beberapa konsep dan teknik penting dalam sinkronisasi proses:
1. Masalah Sinkronisasi
- Race Condition: Terjadi ketika dua atau lebih proses berusaha mengakses dan mengubah data yang sama secara bersamaan, menghasilkan hasil yang tidak dapat diprediksi.
- Critical Section: Bagian dari kode di mana proses mengakses sumber daya bersama. Hanya satu proses yang diizinkan untuk berada dalam critical section pada satu waktu.
2. Teknik Sinkronisasi
Mutex (Mutual Exclusion): Alat yang digunakan untuk memastikan hanya satu proses yang dapat mengakses critical section pada satu waktu. Jika satu proses mengunci mutex, proses lain harus menunggu hingga mutex dibebaskan.
Semaphores: Struktur data yang digunakan untuk mengelola akses ke sumber daya. Terdiri dari dua operasi dasar:
wait()
(atau P): Menurunkan nilai semaphore, jika nilainya negatif, proses akan diblokir.signal()
(atau V): Meningkatkan nilai semaphore dan membangunkan proses yang sedang menunggu.
Monitors: Abstraksi yang lebih tinggi daripada semaphores dan mutex. Monitor memungkinkan akses terkoordinasi ke sumber daya dengan menyediakan mekanisme untuk mengeksekusi hanya satu proses dalam monitor pada satu waktu.
Condition Variables: Digunakan dalam conjunction dengan monitors untuk memungkinkan proses menunggu hingga suatu kondisi tertentu terpenuhi sebelum melanjutkan eksekusi.
3. Contoh Situasi Sinkronisasi
Produsen-Konsumen: Dalam masalah ini, satu proses (produsen) menghasilkan data dan menambahkannya ke buffer, sementara proses lain (konsumen) mengambil data dari buffer. Sinkronisasi diperlukan untuk memastikan bahwa produsen tidak menulis ke buffer ketika penuh dan konsumen tidak membaca dari buffer ketika kosong.
Pembaca-Penulis: Situasi di mana beberapa proses membaca data sementara hanya satu proses yang dapat menulis pada satu waktu. Proses pembaca dapat berjalan bersamaan, tetapi penulis harus memiliki akses eksklusif.
4. Alat dan Fungsi dalam Sistem Operasi
- Sistem operasi seperti Linux dan Windows menyediakan berbagai API dan fungsi untuk mendukung sinkronisasi, termasuk penggunaan pthreads di Linux dan Windows Threads.
Kesimpulan
Sinkronisasi proses adalah elemen penting dalam pengembangan sistem operasi dan aplikasi multi-proses. Dengan menggunakan teknik-teknik seperti mutex, semaphores, dan monitors, sistem dapat menjaga konsistensi data dan mencegah konflik dalam akses sumber daya bersama.
Konkurensi (Mutual Exclusion, Deadlock Startvation)
Komentar
Posting Komentar