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)

Konkurensi dalam sistem operasi merujuk pada kemampuan beberapa proses atau thread untuk berjalan secara bersamaan. Meskipun konkurensi meningkatkan efisiensi dan kinerja, ia juga memperkenalkan tantangan, terutama terkait dengan mutual exclusion, deadlock, dan starvation. Berikut adalah penjelasan lebih rinci tentang ketiga konsep tersebut:

1. Mutual Exclusion

Mutual Exclusion adalah prinsip dasar dalam konkurensi yang memastikan bahwa hanya satu proses yang dapat mengakses sumber daya bersama (seperti variabel global, file, atau perangkat) pada satu waktu. Tanpa mutual exclusion, proses-proses yang berjalan bersamaan dapat mengakibatkan kondisi balapan (race condition) dan data yang tidak konsisten.

Implementasi:

  • Mutex: Alat yang digunakan untuk mengontrol akses ke sumber daya. Hanya satu proses yang dapat mengunci mutex pada satu waktu.
  • Semaphore: Dapat digunakan untuk mengatur akses ke sumber daya berdasarkan nilai yang ditentukan.

2. Deadlock

Deadlock adalah kondisi di mana dua atau lebih proses saling menunggu untuk sumber daya yang dipegang oleh masing-masing, sehingga tidak ada proses yang dapat melanjutkan eksekusi. Deadlock menyebabkan sistem terjebak dalam keadaan tidak responsif.

Kondisi Deadlock:

  1. Mutual Exclusion: Sumber daya tidak dapat dibagi.
  2. Hold and Wait: Proses yang memegang sumber daya dapat meminta sumber daya lain.
  3. No Preemption: Sumber daya tidak dapat diambil dari proses yang memegangnya.
  4. Circular Wait: Ada siklus proses yang saling menunggu.

Strategi Penanganan:

  • Pencegahan: Menghindari kondisi yang dapat menyebabkan deadlock dengan desain sistem yang baik.
  • Deteksi dan Pemulihan: Memantau kondisi sistem untuk mendeteksi deadlock dan mengambil tindakan untuk memulihkan sistem.

3. Starvation

Starvation adalah kondisi di mana suatu proses tidak mendapatkan akses yang cukup ke sumber daya yang diperlukan untuk menyelesaikan eksekusinya, biasanya karena kebijakan penjadwalan yang tidak adil. Proses tersebut terus menerus ditunda karena proses lain mendominasi sumber daya.

Penyebab Starvation:

  • Penggunaan kebijakan prioritas yang tidak seimbang, di mana proses dengan prioritas tinggi terus dijadwalkan sementara proses dengan prioritas rendah terabaikan.

Pencegahan:

  • Fair Scheduling: Mengimplementasikan algoritma penjadwalan yang memastikan semua proses mendapatkan akses yang adil ke sumber daya, seperti algoritma round-robin.

Kesimpulan

  • Mutual Exclusion diperlukan untuk melindungi integritas data saat beberapa proses berjalan bersamaan.
  • Deadlock harus dihindari melalui desain sistem yang baik dan teknik pemantauan.
  • Starvation dapat diminimalkan dengan menerapkan kebijakan penjadwalan yang adil.

Memahami ketiga konsep ini adalah kunci untuk merancang sistem operasi dan aplikasi yang stabil dan efisien dalam lingkungan yang konkurensi.

Komentar

Postingan populer dari blog ini

MATERI 5: penjelasan manajemen memory, fungsi manajemen memory, contoh manajemen memory di Windows dan Linux

MATERI 9: Konsep Manajemen File