Mutual Exclusion

Roni, ST, M.TI

Beberapa proses terkadang membutuhkan
sumber daya yang sama pada saat
bersamaan. Sumber daya seperti ini

disebut sumber daya kritis. Bagian
program yang menggunakan sumber daya
kritis disebut memasuki critical
region/section.
2

Hanya satu program pada saat yang
diijinkan masuk critical region. Kondisi
yang tidak dapat diprediksi hasilnya,
bergantung pada proses-proses berjalan
yang sedang bersaing disebut Kondisi Pacu

(Race Condition).

3


Sistem operasi hanya menyediakan
layanan (berupa system call) untuk
mencegah proses masuk critical section
yang sedang dimasuki proses lain.

4

Pemrogram harus menspesifikasikan bagianbagian critical region sehingga sistem operasi
akan menjaganya dengan suatu mekanisme
untuk mencegah proses lain masuk critical

region yang sedang dipakai proses lain.
Inilah yang dimaksud dengan mutual
exclusion.
5

Mutual Exclusion adalah suatu cara yang
menjamin jika ada sebuah proses yang
menggunakan variabel atau berkas yang

sama (digunakan juga oleh proses lain),

maka proses lain akan dikeluarkan dari
pekerjaan yang sama.

6

 Mutual
 Hanya

Exclusion harus dijamin.

satu proses pada satu saat yang

diizinkan masuk Critical Section/Region.
 Proses

yang berada di noncritical section,

dilarang memblok proses-proses yang

ingin masuk critical section.

7

 Harus

dijamin proses yang ingin masuk

critical section tidak menunggu lama
hingga waktu tak terhingga, agar tidak
terjadi deadlock atau starvation.

8

 Ketika

ada proses di critical section maka

proses yang ingin masuk critical section
harus diijinkan segera masuk tanpa waktu

tunda.
 Tidak

ada asumsi mengenai kecepatan

relative proses atau jumlah proses yang
ada.
9

1. Metode Naif
 Sebenarnya

metode ini tidak

menyelesaikan mutual exclusion, karena
masih terdapat scenario proses yang

membuat situasi kacau. Metode ini sering
disebut metode variable lock sederhana.


10

 Ketika

proses hendak masuk critical section,

proses lebih dulu memeriksa variable lock
dengan ketentuan :
 Jika

variable lock bernilai 0, proses mengeset

variable lock menjadi 1 dan segera masuk
critical section.
 Jika

variable lock bernilai 1, proses menunggu

sampai nilai variabel lock menjadi 0.
11


2. Metode untuk situasi tertentu
 Metode

ini sering disebut metode

bergantian secara ketat yang
mengasumsikan proses-proses yang

hendak masuk critical section secara
bergantian terus menerus.

12

 Proses

memeriksa terus menerus sehingga

kondisi siap untuk diproses.
 Kondisi


ini tidak dapat ditentukan lamanya

waktu sehingga menyia-nyiakan waktu
pemroses.
 Suatu

saat kondisi akan crash ketika ada

proses yang harus segera masuk sementara
ada proses lain yang masih berjalan.
13

Metode Busy Waiting
 Algoritma Dekker mempunyai propertyproperty berikut :
 Tidak memerlukan instruksi-instruksi perangkat
keras khusus.
 Proses yang beroperasi di luar critical section
tidak dapat mencegah proses lain memasuki
critical section.

 Proses yang ingin masuk critical section akan
segera masuk bila dimungkinkan
3.

14