37
Concurrency Concurrency: Mutual Exclusion Mutual Exclusion dan dan Sinkronisasi Sinkronisasi (Pertemuan ke (Pertemuan ke-8) 8)

Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Embed Size (px)

Citation preview

Page 1: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

ConcurrencyConcurrency::Mutual Exclusion Mutual Exclusion dandan

Sinkronisasi Sinkronisasi (Pertemuan ke(Pertemuan ke--8)8)

Page 2: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

PendahuluanPendahuluanPendahuluanPendahuluan• Apa yang akan dipelajari ?

– Ruang lingkup concurrency– Contoh kasus perlunya concurrencyContoh kasus perlunya concurrency– Jenis interaksi antar proses– Mekanisme mutual exclusionMekanisme mutual exclusion– Implementasi mutual exclusion

Semaphore– Semaphore– Monitor

M i– Message passing– Beberapa contoh kasus

Sistem Operasi/20100930 #2

Page 3: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

ConcurrencyConcurrency (1)(1)yy

• Concurrency = kebersamaany• Apa yang menjadi ruang lingkup

concurrency ?concurrency ?– Komunikasi antar proses– Sharing dan kompetisi penggunaan

resourceresource– Sinkronisasi antar berbagai proses

Pengalokasian waktu prosesor untuk– Pengalokasian waktu prosesor untuk setiap proses

#3Sistem Operasi/20100930

Page 4: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

ConcurrencyConcurrency (2)(2)yy

• Di mana concurrency diperlukan ?y p– Multiprogramming

• Banyak proses satu prosesor• Banyak proses - satu prosesor– Multiprocessing

• Banyak proses - banyak prosesor (dalam satu komputer)

– Distributed processing• Banyak proses – banyak komputery p y p

#4Sistem Operasi/20100930

Page 5: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

ConcurrencyConcurrency (3)(3)yy ( )( )

• Istilah-istilah berhubungan dg concurrency:g g y– Critical section:

• Resource yang dalam satu waktu hanya boleh tdiakses oleh satu proses saja

• Contoh resource: printer, baris-baris program, file, dlldll

– Deadlock:• Keadaan dimana dua proses atau lebih tidak dapat p p

meneruskan eksekusi akibat saling menunggu aksi/data

– Livelock:– Livelock:• Keadaan dimana dua proses atau lebih saling mengubah

status sebagai respon terhadap perubahan status proses l i t j k k j b tiyang lain tanpa mengerjakan pekerjaan yang berarti

#5Sistem Operasi/20100930

Page 6: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

ConcurrencyConcurrency (4)(4)yy ( )( )

• Istilah-istilah berhubungan dg concurrency: (l j t )(lanjutan)– Mutual exclusion:

S /k di i h di hi k h• Syarat/kondisi yang harus dipenuhi untuk mencegah terjadinya pengaksesan critical section oleh lebih dari satu proses dalam satu saatp

– Race condition:• Keadaan dimana terdapat banyak thread atau proses

k d t b ( h d d t )mengakses data bersama (shared data) yang menyebabkan hasil akhir sulit dipastikan (bergantung pada lama waktu eksekusi setiap proses)

– Starvation:• Keadaan dimana suatu proses yang siap dieksekusi

terus menerus tidak diberi kesempatan untukterus menerus tidak diberi kesempatan untuk melakukan aksinya

#6Sistem Operasi/20100930

Page 7: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

ConcurrencyConcurrency (5)(5)yy ( )( )

• Interleaving dan overlappingg pp g

#7Sistem Operasi/20100930

Page 8: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

ConcurrencyConcurrency (6)(6)yy ( )( )

• Permasalahan pada multiprogramming dan multiprocessor:– Pemanfaatan resource bersama-sama (global) (g )

penuh resiko• Misal: variabel global

– Pengaturan alokasi resource sukar dilakukan• Misal: bila suatu device I/O sedang diakses oleh

suatu proses dan tiba-tiba proses tersebut ter-interrupt, maka device I/O harus tetap dapat digunakan oleh proses yang laindigunakan oleh proses yang lain

– Sulit untuk melacak kesalahan program, karena kesalahan yang terjadi sukar diprediksikarena kesalahan yang terjadi sukar diprediksi dan diulangi

#8Sistem Operasi/20100930

Page 9: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Contoh Kasus 1 Contoh Kasus 1 • Sebuah prosedur digunakan 2 buah proses dalam

uniprosesor:uniprosesor:void echo(){

chin = getchar();// dari keyboardchin = getchar();// dari keyboardchout = chin;putchar(chout); // ke monitor

}}

• Masalah:– Ada 2 proses (P1 dan P2) yang masing-masing dapat memanggil prosedur

di atasdi atas– Pada saat P1 sedang menjalankan prosedur tsb pada baris getchar tiba-

tiba P1 terinterrupt oleh P2, misal chin = x– P2 menjalankan prosedur dan mengubah nilai chin = yP2 menjalankan prosedur dan mengubah nilai chin y– Saat P1 kembali nilai chin berbeda y ditampilkan 2 kali

• Solusi:P d echo di t k i hi d l t t h t– Prosedur echo diproteksi sehingga dalam satu saat hanya satu proses yang boleh menggunakannya proses lain diblok

#9Sistem Operasi/20100930

Page 10: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Contoh Kasus 2 Contoh Kasus 2 • Sebuah prosedur digunakan 2 buah proses dalam multiprosesor:

Process P1 Process P2Process P1 Process P2. .chin = getchar(); .. chin = getchar();g ();chout = chin; chout = chin;putchar(chout); .. putchar(chout);. .

• Masalah:– Ada 2 proses (P1 dan P2) yang masing-masing dapat memanggil

d dp ( ) y g g g p gg

prosedur di atas– Pada saat P1 sedang menjalankan prosedur tsb pada baris getchar tiba-

tiba P2 juga menjalankan prosedur yang sama data P1 pada chintertimpatertimpa

– Baik P1 dan P2 sama-sama menampilkan hasil dari P2• Solusi:

Prosedur echo diproteksi sehingga dalam satu saat hanya satu proses– Prosedur echo diproteksi sehingga dalam satu saat hanya satu proses yang boleh menggunakannya proses lain diblok

#10Sistem Operasi/20100930

Page 11: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Race Condition Race Condition (1)(1)( )( )

• Hasil proses bergantung pada urutan eksekusi setiap proses

• Contoh 1:Contoh 1:– Dua buah proses P1 dan P2 sama-sama

menggunakan variabel global amenggunakan variabel global a– P1 mengubah nilai a = 1, P2 mengubah nilai a

= 2 2– Nilai a ditentukan oleh proses yang “kalah”

(yang mengakses variabel a belakangan)(yang mengakses variabel a belakangan)

#11Sistem Operasi/20100930

Page 12: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Race Condition Race Condition (2)(2)( )( )

• Contoh 2:– Dua buah proses P3 dan P4 sama-sama

menggunakan variabel global b dan c yang masing-masing bernilai b=1 dan c=2

– P3 menjalankan baris program b=b+c– P4 menjalankan baris pogram c=b+c– Jika P3 yang dieksekusi lebih dahulu, maka J a 3 ya g d e se us eb da u u, a a

hasilnya: b=3 dan c=5– Jika P4 yang dieksekusi lebih dahulu, maka y g ,

hasilnya: b=4 dan c=3 Hasil akhir sangat berbeda !!!g

#12Sistem Operasi/20100930

Page 13: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Peranan OS dalam ConcurrencyPeranan OS dalam ConcurrencyPeranan OS dalam ConcurrencyPeranan OS dalam Concurrency

• Apa yang harus dilakukan OS untuk memperoleh concurrency ?– OS harus dapat menjaga track (info state, p j g ( ,

prioritas, resource, dll) setiap proses– OS harus dapat memberi dan mengambil p g

resource (waktu prosesor, memory, file, I/O device) kepada setiap proses yang aktif

– OS harus dapat memproteksi data dan resource yang sedang digunakan suatu proses

– OS harus dapat menjamin hasil suatu proses id k di hi l h ktidak dipengaruhi oleh kecepatan pemrosesan

#13Sistem Operasi/20100930

Page 14: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Jenis Interaksi Antar ProsesJenis Interaksi Antar Proses

•Misal: multiprogramming (Winamp, media player, dll)player, dll)

•Misal: penggunaan variabel global, share memory, I/O buffer, dll

#14Sistem Operasi/20100930

Page 15: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Kompetisi Antar Proses Kompetisi Antar Proses (1)(1)pp ( )( )

• Dua proses atau lebih saling berkompetisi memperebutkan sebuah resourcememperebutkan sebuah resource

• Masalah apa yang mungkin terjadi ?– Mutual Exclusion– Mutual Exclusion

• Sebuah resource diakses oleh dua buah proses atau lebih secara bersamaanMi l d b h i i k b h i• Misal: dua buah proses ingin mengakses sebuah printer

– DeadlockD t l bih saling d t t• Dua proses atau lebih saling menunggu data atau resource lain yang sedang digunakan oleh proses yang lain

• Misal:– Dua buah proses P1 dan P2 sama-sama membutuhkan resource R1

dan R2– OS telah memberikan R2 kepada P1 dan R1 kepada P2

P1 d P2 tid k l k d

#15

– P1 dan P2 sama-sama tidak mau melepaskan resource yang sedang digunakan karena kebutuhannya belum terpenuhi deadlock

Sistem Operasi/20100930

Page 16: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Kompetisi Antar Proses Kompetisi Antar Proses (2)(2)pp ( )( )

– Starvation• Terdapat satu proses atau lebih yang tidak

pernah mendapat giliran dieksekusi (memperoleh resource)

• Misal:d d– Ada 3 proses P1, P2, dan P3

– Mula-mula P1 dieksekusi, P2 dan P3 menunggu gilirangiliran

– Setelah P1 selesai, P3 mendapat giliran– Sebelum P3 selesai, P1 telah melakukan interrupt

i k di k k i P2 d l iminta untuk dieksekusi P2 tertunda lagi– Bila kodisi seperti di atas terjadi terus menerus

P2 tidak pernah mendapatkan giliran starvationP2 tidak pernah mendapatkan giliran starvation (kelaparan)

#16Sistem Operasi/20100930

Page 17: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Kerjasama Antar Proses melalui Kerjasama Antar Proses melalui SharingSharingjj gg

• Beberapa proses berbagi data yang sama tanpa t h i id tit l i t t imengetahui identitas proses yang lain, tetapi

sama-sama sepakat menjaga integritas dataM b t hk k i t k j• Membutuhkan mekanisme untuk menjaga koherensi/konsistensi/integritas dataA di h ?• Apa yang di-share ?– Variabel, file, atau database

M d l k• Model akses:– Read (baca): semua proses boleh membaca secara

bersama samabersama-sama– Write (tulis): dalam satu saat hanya satu proses yang

boleh menulisboleh menulis

#17Sistem Operasi/20100930

Page 18: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Kerjasama Antar Proses melalui KomunikasiKerjasama Antar Proses melalui KomunikasiKerjasama Antar Proses melalui KomunikasiKerjasama Antar Proses melalui Komunikasi

• Beberapa proses saling berkomunikasi untuk l h i k i i t b k di i d lmemperoleh sinkronisasi atau berkoordinasi dalam

melakukan aktifitas• Komunikasi diwujudkan dalam bentuk kirim dan• Komunikasi diwujudkan dalam bentuk kirim dan

terima pesan primitif yang biasanya telah disediakan oleh bahasa pemrograman atau kernel OSp g

• Masalah yang mungkin terjadi:– Deadlock: saling menunggu pesang gg p– Starvation:

• Misal:– P1 terus menerus mencoba berkomunikasi dengan P2 dan P3

demikian pula sebaliknya– Bila P1 berhasil komunikasi dengan P2 dalam waktu yang lama,

maka P3 mengalami starvationmaka P3 mengalami starvation

#18Sistem Operasi/20100930

Page 19: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Syarat Syarat Mutual Exclusion Mutual Exclusion (1)(1)yy ( )( )

• Dalam satu waktu hanya satu proses saja yang boleh mengakses critical section

• Proses yang berada di luar critical sectionProses yang berada di luar critical section harus dapat melakukan aktifitas laindengan tidak mengganggu proses yangdengan tidak mengganggu proses yang lain

• Tidak boleh terjadi deadlock atau• Tidak boleh terjadi deadlock atau starvation

#19Sistem Operasi/20100930

Page 20: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Syarat Mutual Exclusion Syarat Mutual Exclusion (2)(2)yy

• Dalam pengaksesan critical section tidak boleh ada tunda waktu (delay) bila sedang tidak ada yang mengakses critical section y g gtersebut

• Kecepatan relatif proses dan jumlah prosesKecepatan relatif proses dan jumlah proses tidak boleh mempengaruhi mutual exclusion (race condition)exclusion (race condition)

• Sebuah proses berada pada critical section dalam waktu terbatasdalam waktu terbatas

#20Sistem Operasi/20100930

Page 21: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Mekanisme Mutual Exclusion (Mutex)Mekanisme Mutual Exclusion (Mutex)Mekanisme Mutual Exclusion (Mutex) Mekanisme Mutual Exclusion (Mutex)

/* Process 1 */ /* Process 2 */ /* Process n *// Process 1 /void P1{

while (true)

/ Process 2 /void P2{

while (true)

/ Process n /void Pn{

while (true)while (true){

/*preceding code*/;entercritical (Ra);

while (true){

/*preceding code*/;entercritical (Ra);

while (true){

/*preceding code*/;entercritical (Ra);entercritical (Ra);

/*critical section*/;exitcritical (Ra);/*following code*/;

entercritical (Ra);/*critical section*/;

exitcritical (Ra);/*following code*/;

…entercritical (Ra);/*critical section*/;

exitcritical (Ra);/*following code*/;/ following code /;

}}

/ following code /;}

}

/ following code /;}

}

#21Sistem Operasi/20100930

Page 22: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Implementasi Mutual ExclusionImplementasi Mutual Exclusion (1)(1)Implementasi Mutual Exclusion Implementasi Mutual Exclusion (1)(1)

• Mutex dengan Enable-disable interruptP i t h i iti di di k l h i t k l– Perintah primitive yang disediakan oleh sistem kernel

– Bertujuan untuk melindungi critical section agar proses yang sedang mengakses critical section tidakproses yang sedang mengakses critical section tidak dapat diinterrupt

– Mekanisme:hil ( )while (true)

{/* disable interrupts *//* i i l i *//* critical section *//* enable interrupts *//* remainder */

}}– Hanya dapat diterapkan pada sistem uniprocessor, why ?

#22Sistem Operasi/20100930

Page 23: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Implementasi Mutual ExclusionImplementasi Mutual Exclusion (2)(2)Implementasi Mutual Exclusion Implementasi Mutual Exclusion (2)(2)

• Mutex dengan Instruksi khusus yang atomik:– Dua buah instruksi dibungkus menjadi sebuah g j

instruksi yang atomik (tidak dapat disela/diinterrupt)

– Misal:• Instruksi Test and Set• Instruksi Exchange

#23Sistem Operasi/20100930

Page 24: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Instruksi Test and Set Instruksi Test and Set (1)(1)( )( )

• Fungsi testset:– Memeriksa nilai suatu variabel dan mengubah

nilainyaboolean testset (int i) {boolean testset (int i) {

if (i == 0) {i = 1;return true;

}else {

return false;}

}}• Cek apakah nilai i = 0

– 0 1, true1 1 false– 1 1, false

#24Sistem Operasi/20100930

Page 25: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Instruksi Test and Set Instruksi Test and Set (2)(2)( )( )

• Pemanfaat-an fungsian fungsi testsetdalam mutex

• bolt = 0 dapat akses criticalcritical section

• bolt = 1 loopinglooping

#25Sistem Operasi/20100930

Page 26: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Instruksi Test and SetInstruksi Test and Set (3)(3)Instruksi Test and Set Instruksi Test and Set (3)(3)

• Apa arti parbegin:– Tunda eksekusi main program– Lakukan eksekusi concurrent terhadapLakukan eksekusi concurrent terhadap

prosedur P1, P2, …, Pn– Hanya proses yang kebetulan mendapatkanHanya proses yang kebetulan mendapatkan

nilai bolt=0 saja yang dapat mengakses critical section

– Proses yang lain masuk dalam mode busy waiting atau spin waiting (terus menerus looping melakukan pemeriksaan nilai bolt)

– Bila eksekusi concurrent semua prosedur telah selesai lanjutkan eksekusi main program

#26Sistem Operasi/20100930

Page 27: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Instruksi ExchangeInstruksi Exchange (1)(1)Instruksi Exchange Instruksi Exchange (1)(1)

• Prosedur exchange:osedu e c a ge– Untuk mempertukarkan data dari

variabel memory ke variabel registervariabel memory ke variabel registeratau sebaliknya

void exchange (int register, int memory)

{{

int temp;temp = memory;temp memory;memory = register;register = temp;register temp;

}#27Sistem Operasi/20100930

Page 28: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Instruksi Exchange Instruksi Exchange (2)(2)gg ( )( )

• Pemanfaat-an prosedur exchangeexchangedalam mutex

• bolt = 0 d t kdapat akses critical section

• bolt = 1 looping

#28Sistem Operasi/20100930

Page 29: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Instruksi Instruksi ExchangeExchange (3)(3)gg ( )( )

• Keterangan:– Hanya proses yang kebetulan mendapatkan bolt=0 saja yang dapat mengakses critical j y g p gsection

– Proses yang telah selesai mengakses criticalProses yang telah selesai mengakses critical section akan menjalankan instruksi exchange lagi untuk me-reset nilai boltmenjadi 0 lagi

– Pada saat bolt=0 tidak ada proses yang p y gmengakses critical section, bolt=1 hanya ada satu proses yang sedang mengakses

iti l ti#29

critical sectionSistem Operasi/20100930

Page 30: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Kelebihan Instruksi AtomikKelebihan Instruksi Atomik

• Dapat diterapkan pada sistem dengan p p p gjumlah proses berbeda-beda

• Dapat diterapkan pada prosesor tunggalDapat diterapkan pada prosesor tunggal maupun multiprosesor yang mengakses share memory y

• Sederhana mudah ditelusuri• Dapat menangani beberapa critical• Dapat menangani beberapa critical

section berbeda-beda tiap critical section menggunakan variabel berbeda-section menggunakan variabel berbedabeda

#30Sistem Operasi/20100930

Page 31: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Kekurangan Instruksi AtomikKekurangan Instruksi AtomikKekurangan Instruksi AtomikKekurangan Instruksi Atomik• Dapat terjadi busy-waiting masih tetap

k kmenggunakan waktu prosesor• Dapat terjadi starvation bila terdapat banyak

t i iti l tiproses yang mengantri critical section• Dapat terjadi deadlock

– Jika proses dengan prioritas rendah sedang mengakses critical section tiba-tiba di-interrupt oleh proses dengan prioritas lebihinterrupt oleh proses dengan prioritas lebih tinggi• waktu prosesor diberikan kepada proses waktu prosesor diberikan kepada proses

dengan prioritas lebih tinggi, tetapi• critical section masih dikuasai oleh proses

#31

pdengan prioritas lebih rendah

Sistem Operasi/20100930

Page 32: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

SemaphoreSemaphoreSemaphoreSemaphore• Diperkenalkan oleh Dijkstra pada tahun 1965• Merupakan mekanisme concurrency yang

disediakan oleh OS dan bahasa pemrograman• Digunakan variabel khusus yang disebut

semaphore yang digunakan sebagai tanda ( i li )(signaling)

• Proses yang sedang menunggu signal akan b d d t t d hi i lberada pada status suspend hingga signal diterima, apakah masih menggunakan waktu prosesor ???prosesor ???

#32Sistem Operasi/20100930

Page 33: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Semaphore Primitif Semaphore Primitif (1)(1)pp ( )( )

• Prosedur yang digunakan:– semSignal (s)

• Untuk mengirimkan signal semaphore sg g p• semSignal = V = verhogen = increment

– semWait (s)( )• Untuk menerima signal semaphore s• semWait = P = proberen = test

• Semaphore primitif= general semaphore general semaphore= counting semaphore

#33Sistem Operasi/20100930

Page 34: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Semaphore PrimitifSemaphore Primitif (2)(2)Semaphore Primitif Semaphore Primitif (2)(2)

• Ketentuan:– Inisialisasi variabel semaphore tidak boleh

negatif– Prosedur semWait:

• Akan mengurangi nilai variabel semaphoreg g p• Jika nilai variabel menjadi negatif proses yang

mengeksekusi semWait akan di-blokik id k b k dil i• Jika tidak proses tersebut akan dilayani

– Prosedur semSignal:• Akan menambah nilai variabel semaphore• Jika nilai variabel menjadi ≤ 0 sebuah proses

yang di blok oleh semWait akan dibebaskanyang di-blok oleh semWait akan dibebaskan

#34Sistem Operasi/20100930

Page 35: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Semaphore Primitif Semaphore Primitif (3)(3)pp ( )( )

• DefinisiDefinisi semaphore primitif

#35Sistem Operasi/20100930

Page 36: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Semaphore Primitif Semaphore Primitif (4)(4)pp ( )( )

• Apa pengaruh variabel s.count tsb ?p p g– Jika s.count ≥ 0:

•s count merupakan jumlah proses yang•s.count merupakan jumlah proses yang dapat mengeksekusi semWait(s) tanpa penundaanpenundaan

– Jika s.count < 0:t merupakan jumlah proses yang•s.count merupakan jumlah proses yang

di-blok dan berada di dalam antrian

#36Sistem Operasi/20100930

Page 37: Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi fileSistem Operasi/20100930 #2. Concurrency (1) • Concurrency= kebersamaan • Apa yang menjadi ruang lingkup concurrency?

Referensi:Referensi:

[STA09] Stallings, William. 2009. Operating [ ] g , p gSystem: Internal and Design Principles. 6th edition. Prentice Hall

Sistem Operasi/20100930