Anda di halaman 1dari 22

Kongkurensi

Proses-proses disebut kongkuren jika


proses-proses berada pada saat yang sama.
Proses dapat tak tergantung juga bisa
tergantung dengan lainnya.
Proses kongkuren yang
berinteraksi mempunyai masalah
 Mutual exclusion
 Deadlock
 Starvation
 Sinkronisasi
Prinsip-prinsip kongkurensi
 Alokasi waktu pemroses untuk proses-
proses
 Pemakaian bersama dan persaingan
untuk mendapatkan sumber daya
 Komunikasi antar proses
 Sinkronisasi aktivitas banyak proses
Kongkurensi Dapat muncul pada 4
konteks berbeda
 Untuk banyak aplikasi
 Untuk strukturisasi dari aplikasi
 Untuk strukturisasi dari satu proses
 Untuk strukturisasi sistem operasi
Untuk Banyak Aplikasi
 Multiprograming memungkinkan banyak
proses dijalankan sekaligus
 Proses-proses dapat berasal dari aplikasi
yg berbeda
 Contoh waktu kita berinternet, banyak
aplikasi yg kita pakai, mulai dari koneksi,
browser,antivirus, dll
Untuk Strukturisasi aplikasi
 Pengembangan dari 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
Untuk Strukturisasi Satu Proses
 Untuk peningkatan kinerja, maka satu proses
dapat memiliki banyak thread yang independen.
Thread-thread tersebut harus dapat
bekerjasama untuk mencapai tujuan proses
 Contoh Word Processor : menerima masukan
dari keyboard, mouse, pemisahan kata-kata,
memformat baris menjadi rata kanan, kiri, dll
Untuk Strukturisasi Sistem Operasi

 Keunggulan strukturisasi juga diterapkan ke


pemrograman sistem. Beberapa sistem
operasi aktual yang dipasarkan dan yang
sedang dalam riset telah diimplementasikan
sebagai sekumpulan proses
 Contoh : sistem operasi client server
Kesulitan-kesulitan yang
ditimbulkan Kongkurensi
 Masalah yang dihadapi proses-proses
kongkuren pada multiprograming dan
multiprocessing serupa, yaitu kecepatan
eksekusi proses-proses di sistem tidak
dapat diprediksi
Kecepatan proses sistem
bergantung
 Aktivitas-aktivitas proses-proses lain
 Cara sistem operasi menangani interupsi
 Kebijaksanaan penjadwalan yang
dilakukan sistem operasi
Kesulitan yang ditimbulkan
kongkurensi
 Pemakaian bersama sumber daya global
 Pengelolaan alokasi sumber daya agar
optimal
 Pencarian kesalahan pemrograman
Proses-proses kongkurensi
mengharuskan hal-hal berikut
 Mengetahui proses-proses yang aktif
 Alokasi dan dealokasi beragam sumber
daya untuk tiap proses aktif
 Proteksi data dan sumber daya fisik
 Hasil-hasil proses harus independen
Mutual Exclusion
 Terdapat sumber daya yang tak dapat dipakai
bersama pada saat bersamaan, seperti printer.
Sumber daya macam ini disebut sumber daya
kritis. Bagian program yang menggunakan
sumber daya kritis disebut memasuki critical
region/section.
 Hanya satu program pada satu saat yang
diijinkan masuk critical region
 Sistem operasi hanya menyediakan layanan
(system call) untuk mencegah proses masuk
critical region yang sedang dimasuki proses lain.
Pemrogram harus menspesifikasikan bagian-
bagian critical region sehingga sistem operasi
akan menjaganya dengan suatu mekanisme
untuk mencegah proses lain masuk critical
region yang sedang dipakai proses lain
 Banyak mekanisme yang diusulkan
untuk menjamin mutual exlusion.
 Pemaksaan adanya mutual exclusion
menimbulkan dua masalah, yaitu :
1. Deadlock
2. Startvation
Deadlock
 Tidak ada proses yang dapat melepaskan
sumber daya yang telah diperolehnya
karena menunggu sumber daya lain yang
tidak pernah diperolehnya
 Kondisi deadlock merupakan kondisi
terparah karena banyak proses dapat
terlibat dan semuanya tidak dapat
mengakhiri prosesnya secara benar
Startvation
 Kondisi dimana suatu proses tidak pernah
memperoleh sumber daya,karena selalu
dipakai yang lain.
Interaksi Antar Proses
 Saling tidak tergantung (independen)
 Saling tergantung secara tidak langsung
 Saling tergantung secara langsung
Saling tidak tergantung
 Proses-proses ini tidak dimaksudkan
untuk bekerja bersama untuk mencapai
tujuan tertentu. Pada multiprogramming
dengan proses-proses independen, dapat
berupa batch atau sesi interaktif atau
campuran keduanya
 Contoh antrian printer
Saling tergantung secara tidak
langsung
 Proses-proses tidak perlu saling
tergantung pada identitas proses-proses
lain tapi sama-sama mengakses objek
tertentu, seperti buffer masukan/keluaran.
Proses-proses itu perlu bekerja sama
dalam memakai bersama objek tertentu
Saling tergantung secara langsung

 Proses-proses dapat saling berkomunikasi


dan dirancang bekerja sama untuk suatu
aktivitas

Anda mungkin juga menyukai