Marcadores

Recent Posts

Recent Posts

Marcadores

Postagens populares

Postagens populares

Jumat, 12 Oktober 2012

Masalah - Masalah Yang Terjadi Ketika Terjadi Konkurensi

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.
Contoh Mutual Exclusion : Apabila kita sedang duduk di sebuah kursi orang lain tidak bisa menduduki kursi tersebut hingga kita pergi dari kursi itu.

b) 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.
Contoh Deadlock : “Dalam persimpangan jalan” Dalam kasus ini setiap mobil bergerak sesuai dengan nomor yang ditentukan, tetapi tanpa pengaturan yang benar, maka setiap mobil akan bertemu pada satu titik yang permanen atau dapat dikatakan bahwa setiap mobil tidak dapat melanjutkan perjalanan lagi atau dapat disebut juga terjadi deadlock.

c) Starvation
adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang kekurangan resource (karena tidak 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.
Contoh Starvation : Sambil menunggu selesainya layanan (misalnya transferdata oleh modem) pemakai dapat berinteraksi denganaplikasi lain seperti aplikasi permainan game ataumengetikkan perintah pada text editorProses tersebut harus berjalan konkuren dan tidakterjadi deadlock (hang)

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.
Contoh Sinkronisasi :
masalah Bounded Buffer di atas sebenarnya sudah menggambarkan terjadinya Race Condition. P1 dan P2 saling berlomba meng-update nilai counter sehingga pada suatu waktu, nilai counter-nya bisa salah.

0 komentar:

Posting Komentar