KONKURENSI
PENGERTIAN
Sistem yang memiliki sejumlah aktifitas yang sedang berjalan secara bersamaan.
Pada proses-proses konkuren yang berinteraks mempunyai beberapa masalah yang harus diselesaikan:
Prinsip-prinsip Konkurensi
Konkurensi dapat muncul pada konteks berbeda, antara lain:�
Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu:
B. Kesulitan-kesulitan yang ditimbulkan konkurensi
Konsep: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi.
Beragam kemungkinan yang terjadi tidak dapat diprediksi, seperti:
1. Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:
2. Beberapa kesulitan yang dapat muncul, di antaranya adalah:
Proses-proses konkuren mengharuskan beberapa hal yang harus ditangani, antara lain:
Pokok Penyelesaian Masalah Kongkurensi�
Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu:
1. sinkronisasi
Memungkinkan proses-proses melakukan aktifitas-aktifitas secara konkuren ke suatu sumber daya yang dibagi pakai bersama.
Hal ini menimbulkan Race Condition,
Race condition
Race condition
Kunci untuk mencegah masalah ini adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama.
4 kondisi agar menghasilkan solusi yang baik:
2. Mutual Exclusion
proses-proses lain dalam antrian, maka akan terjadi startvation dan deadlock
mutual exclusion harus memenuhi kriteria sbb :
Beberapa metode yang diusulkan untuk menjamin Mutual Exclusion, antara lain:
- Metode Naif
Tidak menyelesaikan masalah mutual exclusion.
- Metode Variable Lock
Metode ini sederhana ketika proses masuk critical section lebih dahulu memeriksa variable lock.
1. Jika variable lock bernilai 0, proses men-set variable locknya menjadi 1 kemudian masuk ke dalam critical section.
2. Jika variable lock bernilai 1, maka proses menunggu sampai nilai variable lock nya menjadi 0.
Metode ini tidak menjamin proses tidak masuk critical section yang telah dimasuki proses lain.
- Metode bergantian secara ketat
Metode ini mengasumsikan dapat mengalir masuk critical section secara
bergantian terus-menerus. Metode ini melakukan refleksi terhadap variabel yang berfungsi untuk memenuhi critical section.
- Metode penyelesaian Dekker
1. tidak memerlukan instruksi-instruksi dari perangkat keras
2. proses yang beroperasi diluar critical section tidak dapat mencegah proses lain memasuki critical section itu.
3. proses yang ingin masuk critical section akan segera masuk jika dimungkinkan.
- Metode Peterson
Mekanisme :
Sebelum masuk critical section, proses memanggil enter_critical_section. Sebelum memanggil enter_critical_section, proses memeriksa sampai kondisi aman untuk enter_critical_section. Terjadi busy waiting. Setelah selesai di critical section proses menandai pekerjaan telah selesai dan mengizinkan proses lain masuk.
3. Deadlock�
Model deadlock
urutan kejadian :
Karakteristik Deadlock
Kondisi yang dapat menimbulkan terjadinya deadlock:
1. Mutual exclusion. Apabila proses telah menggunakan suatu resource, maka tidak
boleh ada proses lain yang menggunakan resource tsb.
2. Hold & Wait. Pada suatu proses sedang mengakses suatu resource, proses tsb dapat meminta ijin untuk mengakses resource lain yang dipakai oleh proses lain.
3. No Preemption.
Jika suatu proses meminta ijin untuk mengakses resource,
sementara resource tersebut tidak tersedia, maka permintaan ijin tidak dapat dibatalkan.
4. Circular Wait Condition.
Jika proses P0 sedang mengakses Resource R1 dan minta ijin untuk mengakses resource R1 dan minta ijin untuk mengakses resource R2, dan pada saat yang bersamaan P1 sedang mengakses resource R2 dan mint ijin untuk mengakses R1.
Metode Mengendalikan Deadlock
1. Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak akan pernah mengalami deadlock.
2. Mengijinkan sistem mengalami deadlock, namun kemudian harus segera dapat memperbaikinya.
3. Mengabaikan semua masalah dan menganggap deadlock tidak akan pernah terjadi lagi di dalam sistem.
Pencegahan Deadlock
4. STARTVATION