1. Jelaskan kapan terjadinya konkurensi!
2. Jelaskan beserta contoh, masalah- masalah yang terjadi ketika terjadi konkurensi!
2. Jelaskan beserta contoh, masalah- masalah yang terjadi ketika terjadi konkurensi!
Jawab :
Konkurensi
adalah proses-proses (lebih dari satu proses) yang terjadi pada saat bersamaan.
Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses
disebut konkuren jika proses-proses berada pada saat yang sama.
Konkurensi dapat
terjadi pada, antara lain:
a) Banyak aplikasi (multiple application).
Multiprogramming
memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal
dari aplikasi-aplikasi berbeda. Pada sistem multiprogramming bisa terdapat
banyak aplikasi sekaligus yang dijalankan di sistem komputer.
b) Aplikasi terstruktur.
Perluasan
prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi
dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan
sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
c) Struktur sistem operasi.
Keunggulan
strukturisasi dapat juga diterapkan ke pemrograman sistem. Beberapa sistem
operasi aktual yang dipasarkan dan yang sedang dalam riset telah
diimplementasikan sebagai sekumpulan proses. Sistem operasi bermodelkan
client/server menggunakan pendekatan ini.
d) Untuk Strukturisasi Satu Proses.
Saat
ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread
yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai
tujuan proses.
2. Jelaskan beserta contoh, masalah- masalah
yang terjadi ketika terjadi konkurensi!
Jawab :
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.
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.
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)
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.
5 komentar:
walahhh Cah CiLik nduwe Blog tho
matur Nuwun IKi membantu tugas saya wkwkww hahahaha
ngopy bayaarrr!!!!!! :D
jebuleeee duee blog cah cilik
wkwkwkwkwkwk
koyok e le daftar blogger sikik aq e plong, delok wae neng profile. kw 2011, aq 2010
q yo copy ah....
Posting Komentar