Mutual Exclusion
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.
Bagian program yang sedang mengakses memori atau
sumber daya yang dipakai bersama disebut Critical Section/Region. Mutual
Exclusion merupakan jaminan untuk mengatasi kondisi pacu agar tidak boleh 2
proses atau lebih memasuki Critical Section secara bersamaan
Kesuksesan proses - proses kongkuren memerlukan pendefinisian Critical Section
dan memaksakan Mutual Exclusion di antara proses-proses kongkuren yang sedang
berjalan. Pemaksaan Mutual Exclusion merupakan landasan pemrosesan kongkuren.
Masalah-Masalah Konkuren
A. 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.
Bagian program yang sedang mengakses memori atau sumber
daya yang dipakai bersama disebut Critical Section/Region. Mutual Exclusion
merupakan jaminan untuk mengatasi kondisi pacu agar tidak boleh 2 proses atau
lebih memasuki Critical Section secara bersamaan.
Kesuksesan proses- proses kongkuren memerlukan
pendefinisian Critical Section dan memaksakan Mutual Exclusion di antara
proses-proses kongkuren yang sedang berjalan. Pemaksaan Mutual Exclusion
merupakan landasan pemrosesan kongkuren.
Pemaksaan adanya mutual eclusion menimbulkan dua
maslah, yaitu:
- Deadlock.
- Startvation.
B. Deadlock. Deadlock adalah suatu kondisi dimana
dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource
yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak
terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock
adalah masalah yang biasa terjadi ketika banyak proses yang membagi
sebuah resource yang hanya boleh dirubah oleh satu proses saja
dalam satu waktu.
Di kehidupan nyata, deadlock dapat
digambarkan dalam gambar berikut.Pada gambar diatas, deadlock
dianalogikan sebagai dua antrian mobil yang akan menyeberangi jembatan. Dalam
kasus diatas, antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan
jembatan (resource), begitu juga dengan antrian kanan. Akhirnya tidak
terjadi kemajuan dalam kerja dua antrian tersebut.Misal ada proses A
mempunyai resource X, proses B mempunyai resource Y.
Kemudian kedua proses ini dijalankan bersama, proses A
memerlukan resource Y dan proses B memerlukan resource X, tetapi kedua proses tidak akan
memberikan resource yang dimiliki sebelum proses dirinya sendiri
selesai dilakukan. Sehingga akan terjadi tunggu-menunggu.
C. Starvation.
Starvation adalah kondisi yang
biasanya terjadi setelah deadlock. Proses yang kekurangan resource
(karena terjadi deadlock) tidak akan pernah mendapat resource
yang dibutuhkan sehingga mengalami starvation (kelaparan).
Namun, starvation juga bisa terjadi
tanpa deadlock. Hal ini ketika terdapat kesalahan dalam sistem
sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses
selalu mendapat resource, sedangkan proses yang lain tidak pernah
mendapatkannya. Ilustrasi starvation tanpa deadlock di
dunia nyata dapat dilihat di bawah ini.Pada gambar diatas, pada antrian kanan
terjadi starvationkarena resource (jembatan) selalu
dipakai oleh antrian kiri, dan antrian kanan tidak mendapatkan giliran.
D. Sinkronisasi.
Adalah proses pengaturan jalannya
beberapa proses pada saat yang bersamaan. Tujuan utama sinkronisasi adalah
menghindari terjadinya inkonsistensi data karena pengaksesan oleh beberapa
proses yang berbeda (mutual exclusion) serta untuk mengatur urutan
jalannya proses-proses sehingga dapat berjalan dengan lancar dan terhindar
dari deadlock atau starvation.
(pada
hari Sabtu, 28
April 2013 ---- 20.10 WIB)
(pada
hari Sabtu, 28
April 2013 ---- 20.10 WIB)
(pada
hari Sabtu, 28
April 2013 ---- 20.10 WIB)
(pada
hari Sabtu, 28
April 2013 ---- 20.10 WIB)
0 komentar:
Posting Komentar
Terima Kasih Komentarnya.....