Mutual Exclusion
Adalah jaminan hanya satu proses yang
mengakses sumber daya pada suatu interval waktu tertentu. Proses proses yang
lain dilarang mengerjakan hal yang sama. Mutual exclusion ini dapat ditimbulkan
akibat adanya interaksi antara proses-proses yang berjalan
Bagian program yang sedang mengakses
memori atau sumber daya yang dipakai bersama disebut Critical Section/Region. Dengan
adanya interaksi proses yang memungkinkan adanya kompetisi antar proses, konsep
bagi-pakai maupun cooperative antar proses maka kemungkinan terjadinya critical
section akan terjadi.
Untuk mengatasi hal tersebut maka
dibuatlah sebuah sistem manajemen proses mutual exclusion. Mutualexclusion
pertama kali diungkapkan oleh Edsger Djikstra pada tahun 1965. Sejak saat itu
banyak solusi yangditawarkan untuk mengatasi adanya mutual exclusion.
A.
Konsep Mutual
Exclusion
Untuk menjelaskan bagaimana konsep
mutual exclusion. Maka akan diambil sebuah contoh kejadian. Anggap sebuah
perintah didalam code merubah sebagian dari data selama beberapa penjalanan
program, ketika thread lain yang mungkin dipicu oleh event yang tidak
diperkirakan mulai dieksekusi. Jika pada saat yang bersamaan thread kedua ini
membaca dari potongan data yang sama, sedangkan data tersebut dalam proses yang
sedang akan ditulisi, maka kondisi ini adalah kondisi yang tidak konsisten dan
tidak dapat diperkirakan. Jika thread
kedua mencoba meng-overwrite data tersebut, akan mengakibatkan keadaan yang
tidak dapat ditangani (unresolveable state).
Shared data diatas yang sedang diakses oleh critical
sections bagaimanapun juga harus dilindungi, jadi proses lain yang membaca dari
atau menulis ke dalam potongan data harus dikeluarkan dari pengeksekusian.
Jadi konsep utama dari mutual exclusion
adalah bagaimana melakukan manipulasi dan membuat kebijakan tentang bagaimana
tata cara pengaksesan critical section oleh proses satu dengan yang lain yang
mengakses secara simultan. Mutual exclusion baik yang terjadi pada proses
uniprocessing, multiprocessing maupun sistemyang cooperative, solusi yang harus
dilakukan bagaimana pengontrolan akses ke sumberdaya.
B.
Ilustrasi
aplikasi tabungan
Seluruh
sistem yang melibatkan banyak proses mengakses satu sumber daya bersama selalu
menimbulkan persoalan mutual-exclusion.
Contohnya
adalah sebagai berikut.
·
Pada
aplikasi tabungan, misalnya rekening A berisi Rp 1.000.000,- yang terdaftar di
kantor cabang bandung.
·
Kemudian
pada suatu saat program aplikasi kantor cabang di Jakarta melayani penyetoran
Rp 3.000.000,- ke rekening A. lalu program aplikasi membaca saldo akhir
rekening A
Persoalan
di atas dapat tidak terjamin mutual-exclusion jika:
1.
Program
aplikasi bandung menulis ke rekening A secara cepat sehingga di hasilkan saldo
Rp 6.000.000. Setelah itu, program aplikasi kantor cabang Jakarta menimpa hasil
itu dengan saldo Rp 4.000.000,- . Dalam kasus ini saldo akhir yang diperoleh
adalah Rp 4.000.000,- bukan Rp 10.000.000,- (yang seharusnya).
2.
Program
aplikasi Jakarta dilakukan menulis ke rekening A secara cepat sehingga
dihasilkan saldo Rp 4.000.000,-. Setelah itu program aplikasi di kantor bandung
menimpa hasil itu dengan saldo Rp 6.000.000,-. Hasil yang lebih baik dibanding
skenario pertama tetapi masih di bawah yang seharusnya yaitu Rp 10.000.000,-.
Kriteria
penyelesaian Mutual Exclusion :
1.
Mutual
Exclusion harus dijamin.
2.
Hanya
satu proses pada satu saat yang diizinkan masuk Critical Section/Region.
3.
Proses
yang berada di noncritical section, dilarang memblok proses-proses yang ingin masuk
critical section.
4.
Harus
dijamin proses yang ingin masuk critical section tidak menunggu lama hingga waktu
tak terhingga, agar tidak terjadi deadlock atau starvation.
5.
Ketika
ada proses di critical section maka proses yang ingin masuk critical section
harus diijinkan segera masuk tanpa waktu tunda.
6.
Tidak
ada asumsi mengenai kecepatan relative proses atau jumlah proses yang ada.
sumber:
(pada hari Sabtu, 28 April 2013
---- 17.10 WIB
(pada hari Sabtu, 28 April 2013
---- 17.19 WIB
thanks gan sudah share
BalasHapuspemotong simcard 3in1