Konkurensi di Sistem Operasi
1. Sinkronisasi Proses
Sinkronisasi proses adalah mekanisme untuk memastikan bahwa beberapa proses yang berjalan secara bersamaan tidak saling mengganggu satu sama lain. Proses-proses yang berjalan secara bersamaan disebut proses konkuren.
Sinkronisasi proses diperlukan untuk mencegah terjadinya masalah-masalah berikut:
Interleaving: Proses-proses konkuren dapat mengakses data
atau sumber daya yang sama secara
bersamaan, yang dapat menyebabkan data rusak atau sumber daya tidak tersedia.
Deadlock: Dua atau lebih proses dapat saling menunggu satu
sama lain untuk melepaskan sumber daya yang mereka butuhkan, sehingga tidak ada
proses yang dapat melanjutkan eksekusi.
Starvation: Satu atau lebih proses dapat terus-menerus
ditunda oleh proses lain, sehingga proses tersebut tidak dapat menyelesaikan
tugasnya.
Ada beberapa teknik sinkronisasi proses yang umum digunakan, antara lain:
Semaphore: Semaphore adalah mekanisme yang digunakan untuk
menjaga agar jumlah proses yang mengakses sumber daya tertentu tidak melebihi
batas tertentu.
Mutex: Mutex adalah mekanisme yang digunakan untuk
memastikan bahwa hanya satu proses yang dapat mengakses sumber daya tertentu
pada satu waktu.
Event: Event adalah mekanisme yang digunakan untuk mengkoordinasikan
eksekusi proses-proses.
2. Konkurensi (Mutual Exclusion, Deadlock,Startvation)
Konkurensi adalah kondisi di mana dua atau lebih proses berjalan secara bersamaan. Proses-proses tersebut dapat berbagi sumber daya, seperti memori, CPU, atau perangkat I/O.
Mutual exclusion adalah kondisi di mana hanya satu proses yang dapat mengakses sumber daya tertentu pada satu waktu. Kondisi ini diperlukan untuk mencegah terjadinya konflik antar proses.
Deadlock adalah kondisi di mana dua atau lebih proses saling menunggu satu sama lain untuk melepaskan sumber daya yang mereka butuhkan. Deadlock dapat menyebabkan sistem menjadi tidak responsif.
Starvation adalah kondisi di mana satu atau lebih proses terus-menerus ditunda oleh proses lain, sehingga proses tersebut tidak dapat menyelesaikan tugasnya.
Berikut adalah penjelasan lebih lanjut mengenai ketiga konsep tersebut:
Konkurensi
Konkurensi dapat terjadi di berbagai sistem, termasuk sistem operasi, sistem database, dan sistem jaringan. Dalam sistem operasi, persaingan sering terjadi pada sumber daya seperti memori, CPU, dan perangkat I/O.
Ada dua jenis persaingan, yaitu:
- Interleaving: Proses-proses konkuren dapat mengakses data atau sumber daya yang sama secara bersamaan.
- Concurrency: Proses-proses konkuren dapat mengakses data atau sumber daya yang berbeda secara bersamaan.
Mutual exclusion
Mutual exclusion adalah kondisi yang diperlukan untuk mencegah terjadinya konflik antar proses. Konflik dapat terjadi jika dua atau lebih proses mencoba mengakses sumber daya yang sama pada saat yang bersamaan.
Ada beberapa teknik untuk menerapkan mutual exclusion, antara lain:
- Mutex: Mutex adalah variabel yang digunakan untuk menunjukkan apakah sumber daya sedang digunakan.
- Semaphore: Semaphore adalah variabel yang digunakan untuk membatasi jumlah proses yang dapat mengakses sumber daya.
- Critical section: Critical section adalah bagian dari kode yang hanya boleh dieksekusi oleh satu proses pada satu waktu.
Deadlock
Deadlock adalah kondisi di mana dua atau lebih proses saling menunggu satu sama lain untuk melepaskan sumber daya yang mereka butuhkan. Deadlock dapat menyebabkan sistem menjadi tidak responsif.
Ada lima kondisi yang diperlukan untuk terjadinya deadlock, yaitu:
- Mutual exclusion: Hanya satu proses yang dapat mengakses sumber daya tertentu pada satu waktu.
- Hold and wait: Proses dapat memegang sumber daya dan menunggu sumber daya lain yang dibutuhkan.
- No preemption: Sumber daya tidak dapat diambil dari proses secara paksa.
- Circular wait: Ada serangkaian proses yang masing-masing memegang sumber daya yang dibutuhkan proses berikutnya.
Starvation
Starvation adalah kondisi di mana satu atau lebih proses terus-menerus ditunda oleh proses lain, sehingga proses tersebut tidak dapat menyelesaikan tugasnya.
Starvation dapat terjadi jika proses-proses dijadwalkan secara tidak adil. Misalnya, jika proses yang memiliki prioritas lebih tinggi selalu diprioritaskan, maka proses dengan prioritas lebih rendah dapat mengalami starvation.
Berikut adalah beberapa cara untuk mencegah starvation, antara lain:
- Round-robin scheduling: Proses-proses dijadwalkan secara bergantian, terlepas dari prioritasnya.
- Priority inheritance: Jika proses dengan prioritas rendah membutuhkan sumber daya yang dimiliki oleh proses dengan prioritas tinggi, maka prioritas proses dengan prioritas rendah akan dinaikkan menjadi prioritas proses dengan prioritas tinggi.

Komentar
Posting Komentar