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
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