Anda di halaman 1dari 23

Konkurensi &

Mutual Exclusion

Prinsip Konkurensi
Interaksi antar Proses
Mutual Exclusion

Muhammad Riza Hilmi, S.T.,M.T.,


riza@stikom-bali.ac.id
Prinsip
Konkurensi
Definisi

Merupakan sebuah kondisi dimana terdapat lebih


dari satu proses yang dieksekusi pada waktu yang
sama.
Proses-proses yang konkuren memiliki beberapa
masalah:
Mutual Exclusion
Starvation
Deadlock
Prinsip Konkurensi

Konkurensi merupakan kegiatan yang berhubungan


dengan :
Mengalokasikan waktu pemroses untuk proses-proses
yang sedang aktif.
Pemakaian bersama (shared) sumber daya.
Komunikasi antar proses.
Sinkronisasi aktivitas antar proses.
Konteks Konkurensi

Konkurensi dapat muncul pada konteks yang


berbeda, diantaranya:
Banyak aplikasi
Struktur dari aplikasi
Struktur dari satu proses
Struktur sistem operasi
Konteks Konkurensi Cont.

Banyak Aplikasi
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 satu
sistem komputer.
Konteks Konkurensi Cont.

Struktur dari aplikasi


Perluasan prinsip perancangan modular dan
pemrograman terstruktur adalah suatu aplikasi
dapat secara efektif diimplementasikan sebagai
sekumpulan proses.
tiap proses menyediakan satu layanan tertentu.
Pada satu aplikasi memungkinkan untuk
menjalankan lebih dari satu modular.
Konteks Konkurensi Cont.

Struktur dari satu proses


Saat ini untuk peningkatan kinerja maka satu
proses dapat memiliki banyak thread yang
independen (anak proses).
Thread-thread tersebut harus dapat bekerjasama untuk
mencapai tujuan proses.
Sehingga dalam satu proses dapat memungkinkan
terjadi thread-thread yang berjalan secara
bersamaan.
Konteks Konkurensi Cont.

Struktur sistem operasi


Beberapa sistem operasi aktual yang dipasarkan
dan yang sedang dalam riset, telah
diimplementasikan sebagai sekumpulan proses.
Masalah Yang Timbul

Kecepatan eksekusi proses-proses di sistem tidak


dapat diprediksi.
Kecepatan proses pada sistem dipengaruhi oleh :
Aktivitas-aktivitas proses-proses lain.
Cara sistem operasi menangani interupsi.
Kebijaksanaan penjadwalan yang dilakukan oleh sistem
operasi.
Masalah Yang Timbul Cont.
Beberapa kesulitan yang muncul:
Permasalahan pemakaian bersama sumber daya yang bersifat global.
Bila terdapat 2 proses menggunakan variabel global yang sama serta
keduanya membaca dan menulis ke variable tersebut,maka pembacaan
dan penulisan terhadap variabel tersebut menjadi kritis.
Permasalahan pengelolaan alokasi sumber daya yang tidak optimal.
Apabila proses A meminta suatu kanal (saluran) masukan/keluaran
tertentu, akan tetapi sistem operasi mengunci kanal (tidak
memperbolehkan atau mencegah proses lain untuk menggunakannya),
maka tindakan tersebut menghasilkan inefisiensi.
Permasalahan pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemograman konkuren lebih sulit dibanding
pencarian kesalahan pada program-program sekuen (berjalan
bergantian).
Masalah lain Konkurensi

Mutual Exclusion
Sumber daya yang tidak dapat dipakai bersama pada saat
bersamaan.
Starvation
Startvation adalah keadaan dimana pemberian akses
bergiliran terus-menerus, tapi ada suatu proses yang tidak
mendapatkan gilirannya.
Deadlock
Deadlock merupakan kondisi terparah karena banyak
proses terlibat dan semuanya tidak dapat mengakhiri
prosesnya secara benar.
Penanganan

Mengetahui proses-proses yang sedang aktif.


Mengalokasikan dan mende-alokasikan sumber daya
untuk tiap proses yang sedang aktif.
Proteksi data dan sumber daya masing-masing proses
dari gangguan (intervensi) proses-proses lain.
Interaksi
Antar Proses
Kategori Interaksi Antar Proses

Proses-proses saling tidak peduli


(independen)
Proses-proses saling mempedulikan secara
tidak langsung
Proses-proses saling peduli secara
langsung
Interaksi Antar Proses Cont.

Proses-proses saling tidak peduli (independen)


Proses-proses ini tidak dimaksudkan bekerja untuk
mencapai tujuan tertentu.
Pada multiprogramming terdapat proses-proses yang
berjalan secara independen.
Interaksi Antar Proses Cont.

Proses-proses saling mempedulikan secara tidak


langsung
Proses-proses tidak perlu saling mempedulikan identitas
proses-proses lain, tapi sama-sama mengakses objek tertentu,
seperti buffer perangkat I/O.
Proses-proses itu perlu kerja sama (cooperation) dalam
memakai bersama objek tertentu.
Interaksi Antar Proses Cont.

Proses-proses saling peduli secara langsung


Proses-proses dapat saling berkomunikasi dan dirancang
bekerja sama untuk suatu aktivitas.
Mutual
Exclusion
Definisi Mutual Exclusion

Kondisi dimana terdapat sumber daya yang tidak


dapat dipakai bersama pada waktu yang bersamaan
(misalnya : printer, CDROM).
Kondisi demikian disebut sumber daya kritis, dan
bagian program yang menggunakan sumber daya
kritis disebut critical region / section.
Hanya satu program pada satu saat yang diijinkan
masuk ke critical region.
Mutual Exclusion

Sistem operasi menyediakan layanan (system call)


yang bertujuan untuk mencegah proses lain masuk
ke critical section yang sedang digunakan proses
tertentu.
Pemograman harus menspesifikasikan bagian-
bagian critical section, sehingga sistem operasi akan
menjaganya.
Pemaksaan atau pelanggaran mutual exclusion
menimbulkan :
Deadlock
Starvation
Contoh Mutual Exclusion

Misalnya ada sebuah jaringan komputer sebuah Bank,


dimana server untuk penyimpanan data terpusat.
Seorang nasabah dapat melakukan penyimpanan maupun
penarikan dari cabang mana saja dan kapan saja termasuk
pengambilan lewat ATM.
Sehingga (jika ingin data tepat) jika ada salah satu nasabah
melakukan transaksi, record nasabah bersangkutan harus
dikunci supaya record tersebut tidak dapat dipakai oleh
orang lain.
Setelah transaksi selesai, record data nasabah tersebut
disimpan, record baru dibuka kembali.
Ini adalah salah satu contoh penjaminan bahwa satu sumber
daya hanya bisa dipakai oleh satu proses.
Ada Pertanyaan ?

Anda mungkin juga menyukai