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:

  1. Mutex: Mutex adalah variabel yang digunakan untuk menunjukkan apakah sumber daya sedang digunakan.
  2. Semaphore: Semaphore adalah variabel yang digunakan untuk membatasi jumlah proses yang dapat mengakses sumber daya.
  3. 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

Postingan populer dari blog ini

Skema Dasar Sistem Komputer

MANAJEMEN MEMORI DI SISTEM OPERASI

Pengertian, Fungsi, Jenis - Jenis dan Fungsi utama sistem operasi