Masalah - masalah Konkuren (tugas sistem operasi)
Kamis, 27 Juni 2013
0
komentar
Masalah-Masalah Konkuren
1. 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.
- Deadlock.
- Startvation.
Kriteria penyelesaian
mutual exclusion:
1.
Mutual exclusion harus dijamin, hanya
satu proses pada saat yang
diijinkan masuk ke critical section.
diijinkan masuk ke critical section.
2.
Prosesyang berada di noncritical
section, dilarang memblocked proses lain yang ingin masuk critical
section.
3.
Harus dijamin proses yang ingin masuk
critical section tidak menunggu
selama waktu yang tak berhingga.
selama waktu yang tak berhingga.
4.
Ketika tidak ada proses pada critical
section maka proses yang ingin
masuk critical section harus diijinkan masuk tanpa tertunda.
masuk critical section harus diijinkan masuk tanpa tertunda.
5.
Tidak ada asumsi mengenai kecepatan
relative proses atau jumlah
proses yang ada.
proses yang ada.
2.
Deadlock.
Gambar
1. Dead Lock
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.
Gambar
2. Dead lock
Ilustrasi:
-
Terdapat dua proses P1 dan P2
-
Dua sumber kritis R1 dan R2
-
Proses P1 dan P2 harus mengakses kedua
sumber daya itu (R1 dan R2).
-
R1 diberikan pada P1 sedang R2 diberikan
pada P2.
-
Karena untuk melanjutkan eksekusi
memerlukan dua sumber daya sekaligus maka proses akan saling menunggu sumber
daya lain selamanya.
Syarat terjadinya
deadlock:
-
Mutual exclusion
Tiap
sumber daya saat diberikan pada satu proses.
-
Hold and wait Condition
Proses-proses
yang sedang menggenggam sumber daya, menunggu
sumberdaya-sumberdaya baru
sumberdaya-sumberdaya baru
-
Non Preemption Condition
Sumberdaya
- sumberdaya yang sebelumnya duberikan tidak dapat
diambil paksa dari proses itu. Sumberdaya – sumberdaya
harus secara eksplisit dilepaskan dari proses yang menggenggamnya.
diambil paksa dari proses itu. Sumberdaya – sumberdaya
harus secara eksplisit dilepaskan dari proses yang menggenggamnya.
-
Circulair Wait Condition
Harus
terdapat rantai sirkuler dari dua proses atau lebih, masing-masing
menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
Metode Mengatasi
deadlock :
1.
Pencegahan terjadinya deadlock
2.
Pengindaran terjadinya deadlock
3.
Deteksi dan pemulihan deadlock
3.
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 starvation
karena resource (jembatan) selalu dipakai oleh antrian kiri, dan antrian
kanan tidak mendapatkan giliran
.
Gambar
2. Starvation
Ilustrasi:
Misal terdapat 3 (tiga) proses P1,P2 dan P3. P1,P2 dan P3.memerlukan akses sumber daya R secara periodik. Selanjutnya : P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber sumber daya R. Ketika P1 keluar dari critical region, P2 dan P3 diijinkan mengakses R. Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu membutuhkan sumber daya R. Jika pemberian hak akses bergantian terusmenerus antara P1 dan P3 , maka P2 tidak pernah memperoleh akses sumber daya R, meski tidak ada deadlock. Pada situasi ini P2 disebut mengalami startvation.
Misal terdapat 3 (tiga) proses P1,P2 dan P3. P1,P2 dan P3.memerlukan akses sumber daya R secara periodik. Selanjutnya : P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber sumber daya R. Ketika P1 keluar dari critical region, P2 dan P3 diijinkan mengakses R. Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu membutuhkan sumber daya R. Jika pemberian hak akses bergantian terusmenerus antara P1 dan P3 , maka P2 tidak pernah memperoleh akses sumber daya R, meski tidak ada deadlock. Pada situasi ini P2 disebut mengalami startvation.
4.
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.
Latar Belakang :
1.
Akses-akses yang dilakukan secara
bersama-sama ke data yang sama, dapat menyebabkan data menjadi tidak konsisten.
2.
Untuk menjaga agar data tetap konsisten,
dibutuhkan mekanisme-mekanisme untuk memastikan pemintaan ekseskusi dari proses
yang bekerja.
3.
Race Condition: Situasi dimana beberapa
proses mengakses dan memanipulasi data secara bersamaan. Nilai terakhir dari
data bergantung dari proses mana yang selesai terakhir.
4.
Untuk menghindari Race Condition,
proses-proses secara bersamaan harus disinkronisasikan.
Pokok Penyelesaian
Masalah Kongkurensi
Pada dasarnya
penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu:
1.
Mengasumsikan adanya memori yang
digunakan bersama
2.
Tidak mengasumsikan adanya memori yang
digunakan bersama.
Adanya memori bersama
lebih memudahkan penyelesaian masalah kongkurensi.
Metode memori bersama
dapat dipakai untuk singleprocessor ataupun multiprocessor yang mempunyai
memori bersama.
Penyelesaian ini tidak
dapat digunakan untuk multiprocessor tanpa memori bersama atau untuk sistem
tersebar.
0 komentar:
Posting Komentar