Proses-Proses yang disebut kongruen apabila proses-proses (lebih dari satu proses) berada pada saat yang sama. Karena proses tersebut bisa saja tidak saling bergantung tetapi saling berinteraksi.
Masalah-masalah Kongkuren diantaranya :
1. MUTUAL EXCLUSION
Mutual Exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval tertentu. Terdapat sumber daya yang tak dapat dipakai bersama pada saat bersamaan (mis. printer). Sumber daya ini disebut dengan sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/station. Hanya satu program pada satu saat yang diijinkan masuk critical region. Programmer tidak dapat bergantung pada system operasi untuk memehami dan memaksa batasan ini karena maksud program tidak dapat diketahui.
Sistem hanya menyediakan layanan (system call) untuk mencegah proses
masuk critical regionyang sedang dimasuki proses lain. Programmer harus
menspesifikasi bagianbagian
critical region sehingga system operasi akan
menjaganya dengan suatu mekanisme untuk mencegah proses lain masuk
critical region yang sedang dipakai proses lain.
Pemaksaaan adanya mutual exclusion menimbulkan deadlock dan startvation
Kriteria penyelesaian mutual exclusion:
1. Mutual exclusion harus dijamin, hanya satu proses pada saat yang
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.
4. Ketika tidak ada proses pada critical section maka proses yang ingin
masuk critical section harus diijinkan masuk tanpa tertunda.
5. Tidak ada asumsi mengenai kecepatan relative proses atau jumlah
proses yang ada.
2. DEADLOCK

Proses disebut deadlock jika prose menunggu suatu kejadian yang tak
pernah terjadi. Sekumpulan proses berkondisi deadlock bila setiap proses
yang ada menunggu suatu kejadian yang hanya dapat dilakukan proses
lain yang juga berada di kumpulan tersebut.
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
· 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.
· Circulair Wait Condition
Harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing
menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
Metode Mengatasi deadlock :
· Pencegahan terjadinya deadlock
· Pengindaran terjadinya deadlock
· Deteksi dan pemulihan deadlock
3. STARVATION
Proses dikatakan mengalami starvation jika proses-proses itu menunggu
alokasi sumber daya sampai tak berhingga, sementara proses-proses lain dapat memperoleh alokasi sumber daya.
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.
4. SINKRONISASI
Latar Belakang :
– Akses-akses yang dilakukan secara bersama-sama ke data yang sama, dapat menyebabkan data menjadi tidak konsisten.
– Untuk menjaga agar data tetap konsisten, dibutuhkan mekanisme-mekanisme untuk memastikan pemintaan ekseskusi dari proses yang bekerja.
– Race Condition: Situasi dimana beberapa proses mengakses dan memanipulasi data secara bersamaan. Nilai terakhir dari data bergantung dari proses mana yang selesai terakhir.
-Untuk menghindari Race Condition, proses-proses secara bersamaan harus disinkronisasikan.
D. Pokok Penyelesaian Masalah Kongkurensi
Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu:
– Mengasumsikan adanya memori yang digunakan bersama
– 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.
Tidak ada komentar:
Posting Komentar