Anda di halaman 1dari 18

PROGRAM STUDI

TEKNIK INFORMATIKA

Konkurensi
Sistem Operasi
Objectives
• Memahami tentang konsep konkurensi
• Permasalahan yang timbul pada proses-proses yang berinteraksi
• Peranan Sistem Operasi dalam menangani konkurensi
• Mutual Exclusion, Deadlock dan Starvation
Definisi Konkurensi
• Kejadian dimana banyak proses berjalan di waktu yang bersamaan.
• Bentuk dari proses yang konkuren:
• Terjadinya persaingan antar proses ketika beberapa proses akan menggunakan
sumber daya yang sama bilamana proses proses tersebut tidak bergantung
sepenuhnya terhadap satu dengan lainnya.
• Proses-proses kongkuren dapat juga saling berinteraksi/kerjasama sehingga proses-
proses yang berinteraksi tersebut memerlukan sinkronisasi/koordinasi agar terkendali
dengan baik.
Kemampuan Sistem Operasi Modern
• Multiprogramming: kemampuan untuk memanajemen banyak proses
dengan menggunakan satu prosesor,
• Multiprocessing: kemampuan untuk memanajemen banyak proses dengan
menggunakan banyak prosesor,
• Distributed Processing (pemrosesan tersebar): kemampuan untuk
memanajemen banyak proses yang dieksekusi pada banyak komputer yang
tersebar dibeberapa lokasi.
Prinsip-prinsip Konkurensi
• Hal mendasar yang perlu diperhatikan ketika menangani proses yang
konkuren:
• Alokasi waktu pemroses untuk proses-proses
• Pemakaian bersama & persaingan untuk mendapatkan sumber daya
• Komunikasi antar proses
• Sinkronisasi aktivitas banyak proses
Kesulitan yang ditimbulkan Konkurensi
• Beberapa kesulitan yang dapat muncul diantaranya :
1. Berbagi pakai sumber daya memiliki resiko tinggi.
Contohnya ketika dua buah proses mengakses variabel yang sama dan melakukan operasi
penulisan dan pembacaan maka urutan eksekusi pembacaan dan penulisan masing-masing
proses menjadi hal yang perlu diperhatikan dan bersifat kritikal.
2. Sulit bagi sistem operasi untuk memanajemen alokasi sumber daya komputer secara
optimal.
Contohnya jika sebuah proses mengakses suatu file atau I/O kemudian ditunda eksekusinya
maka proses lain yang hendak mengakses file atau I/O tersebut akan ditolak hingga proses
pertama selesai mengakses file atau I/O tersebut.
3. Sulit untuk melacak kesalahan pada program.
Hal ini dikarenakan hasil yang sama tidak determinisitik dan sulit diproduksi ulang.
Tugas Sistem Operasi menangani konkurensi
• Hal-hal yang harus ditangani sistem operasi dengan adanya proses
kongkuren :
1. Sistem operasi harus dapat melindungi data dan sumber daya fisik yang sedang
dialokasikan untuk setiap proses dari interferensi yang tidak dimaksudkan oleh proses
lain.
2. Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain
dimana eksekusi dilakukan.
1. Fungsi sebuah proses dan output yang dihasilkannya sebisa mungkin dijaga untuk tidak
terpengaruh oleh kecepatan eksekusi proses tersebut yang dalam sebuah sistem
multiproses menjadi tidak tetap bergantung proses-proses lainnya.
Tugas Sistem Operasi menangani konkurensi
3. Sistem operasi harus dapat mengetahui jejak dari berbagai proses yang berjalan.
- Hal ini dapat dilakukan melalui process control block.
4. Sistem operasi harus dapat mengalokasi dan mendealokasi sumber daya komputer
untuk setiap proses yang aktif, seperti Processor, memori, berkas-berkas (files) dan
peralatan-peralatan I/O
Kategori Interaksi
• Pada sistem dengan banyak proses (sistem kongkuren) terdapat 3 kategori
interaksi diantara proses-proses, yaitu :
Persaingan Antar Proses
• Pada kasus tertentu, jika salah satu proses telah mengakses sumber daya tersebut maka
proses lain harus menunggu hingga proses tersebut selesai menggunakan sumber daya
tersebut sebelum dapat menggunakannya.
• Hal ini menyebabkan eksekusi proses menjadi tertunda dan bahkan pada beberapa kasus
proses lain tidak pernah mendapat kesempatan untuk mengakses sumber daya tersebut
dan akhirnya tidak pernah selesai dengan sukses.
• Untuk mengendalikan proses-proses yang saling berkompetisi setidaknya ada tiga masalah
yang dihadapi, yaitu:
1. Mutual exclusion
2. Deadlock
3. Starvation
Mutual exclusion
• Mutual exclusion adalah konsep sedemikian rupa sehingga hanya satu proses yang boleh
mengakses/menggunakan sebuah sumber daya yang tidak bisa dipakai berbarengan
(contohnya: printer, kartu jaringan, dll).
• Instruksi-instruksi yang dieksekusi ketika mengakses sebuah sumber daya disebut sebagai
critical section dan sumber daya tersebut dikenal sebagai critical resource.
• Mutual exclusion mengharuskan pada suatu saat hanya ada satu proses yang berada pada
kondisi critical section.
• Kesuksesan proses-proses kongkuren memerlukan pendefinisian critical section dan
memaksakan mutual exclusion diantara proses-proses kongkuren yang sedang berjalan.
Race Condition
• Merupakan sebuah kondisi dimana 2 atau lebih proses membaca atau
menulis data/variabel yang digunakan bersama,dan hasilnya tergantung
dari proses mana yang terakhir menggunakan data tersebut.
Race Condition
• Solusi  dengan meyakinkan bahwa hanya ada 1 proses saja yang akan
mengeksekusi critical section. Eksekusi tunggal ini disebut juga atomic
action
Permasalahan akibat Mutual Exclusion
• Pemaksaan mutual exclusion merupakan landasan pemrosesan kongkuren,
namun pemaksaan mutual exclusion dapat menimbulkan 2 masalah yaitu :
• Deadlock Adalah banyak proses yang saling menunggu hasil dari proses yang lain
untuk dapat melanjutkan atau menyelesaikan tugasnya.
• Startvation Adalah suatu proses akan menunggu suatu kejadian atau hasil suatu
proses lain supaya dapat menyelesaikan tugasnya, tetapi kejadian yang ditunggu tidak
pernah terjadi karena selalu diambil lebih dulu oleh proses yang lain.
Kriteria Mutual Exclusion
• Mutual exclusion dapat terjadi jika memenuhi syarat / kriteria sebagai
berikut :
a. Mutual exclusion harus dapat dipaksakan
b. Proses yang berhenti sementara pada bagian non critical harus dapat berhenti tanpa
mengganggu proses yang lain
c. Tidak boleh terjadi sebuah proses tertahan dari memasuki critical section dalam
waktu yang tidak pasti: tidak boleh ada deadlock dan starvation
d. Ketika tidak ada proses yang memasuki critical section pada suatu critical resource
maka proses lain yang hendak memasuki cirtical sectionnya harus diizinkan
mengakses critical resource tersebut tanpa waktu tunda
e. Tidak ada asumsi yang dibuat mengenai kecepatan proses dan jumlah prosesor.
Metode penjamin Mutual Exclusion
• Metode yang diusulkan untuk menjamin mutual exclusion antara lain :
1. Metode variabel lock
• Ketika proses hendak masuk critical section, lebih dulu memeriksa variabel lock.
• Jika variabel lock berisi 0 (nol), proses menset variabel lock menjadi 1 (satu) dan kemudian masuk critical
section.
• Tetapi jika variabel lock berisi 1 berarti terdapat proses lain pada critical section sehingga proses
menunggu sampai nilai variabel lock menjadi nol.
2. Metode bergantian secara ketat
• Metode ini mengamsumsikan dapat menggilir masuk critical section secara bergantian terus menerus.
• Metode ini melakukan inspeksi terhadap variabel yang berfungsi untuk memasuki critical section.
Metode penjamin Mutual Exclusion
3. Metode dengan Busy Waiting
• Busy waiting adalah adanya proses yang sibuk menunggu dan tidak mengerjakan apapun sampai
mendapatkan ijin untuk masuk ke critical section.
• Sibuk menunggu disini berarti bahwa proses tersebut sedang menunggu dan terus menerus sibuk
memeriksa status ijinnya sehingga memakan waktu prosesor.
4. Metode dengan Semaphore
• Prinsip dasar semaphore adalah dua atau lebih proses bekerja sama dengan signal yang sederhana,misal
proses dipaksa untuk berhenti di tempat yang ditunjuk sampai menerima suatu signal khusus.
THANKS
ANY QUESTIONS?

Anda mungkin juga menyukai