SlideShare une entreprise Scribd logo
1  sur  36
KumpulanMateriKuliah
hendroagungs.blogspot.co.id
Sinkronisasi
Sistem Operasi
Kongkurensi (Concurrency)
• Proses-proses disebut mengalami kongkurensi jika proses-proses (lebih
dari satu proses) berada pada saat yang sama
• Kongkurensi dapat terjadi pada single processor (melalui
multiprogramming) maupun multiple processor (melalui multiprocessing
atau distributed processing)
Kongkurensi dapat timbul pada tiga kasus berikut
• Multiple application : Terjadi pergantian sejumlah job atau aplikasi secara
dinamik
• Structured application : sebagai penerapan disain modular, beberapa
aplikasi dapat diterapkan sebagai kumpulan dari proses-proses kongkuren
• Operating-system structure: sistem operasi diterapkan sebagai kumpulan
dari proses-proses kongkuren
4
Proses Kongkurensi
• Pada single processor proses-
proses dieksekusi secara
interleaved untuk
mewujudkan eksekusi yang
simultan
• Sedangkan pada multiple
processor proses-proses dapat
dieksekusi selain secara
interleaved juga dapat secara
overlap
Prinsip-prinsip Kongkurensi
Kongkurensi meliputi
• Alokasi waktu prosesor untuk proses-proses
• Pemakaian bersama (sharing) dan persaingan (competition) untuk mendapatkan
sumber daya
• Komunikasi antar proses
• Sinkronisasi aktivitas banyak proses
Masalah akibat kongkurensi : karena kecepatan eksekusi tidak dapat
diprediksi
Masalah kongkurensi pada single processor
• Pemakaian bersama sumber daya global
• Sistem operasi sulit mengoptimalkan alokasi sumber daya
• Sulitnya mencari kesalahan program
Contoh pemakaian bersama sumber daya global
• Jika dua proses menggunakan variabel global yang sama, serta
keduanya membaca dan menulis variabel itu maka urutan terjadinya
pembacaan dan penulisan terhadap variabel itu menjadi kritis (race
condition)
Contoh sistem operasi sulit mengoptimalkan alokasi sumber
daya
• Jika proses A meminta suatu chanel I/O tertentu dan kemudian
disuspend sebelum menggunakan channel tersebut. Jika sistem operasi
mengunci channel tersebut dan mencegahnya digunakan oleh proses
lain maka tindakan ini merupakan ketidakefisienan
Kepedulian Sistem Operasi
Disain dan bentuk manajemen sistem operasi yang bagaimana yang timbul
akibat kongkurensi?
1. Sistem operasi harus mampu menyimpan jejak dari proses-proses yang aktif
(menggunakan PCB)
2. Sistem operasi harus mengalokasi dan mengdealokasi beragam sumber daya untuk
setiap proses yang aktif.
Sumber daya meliputi :
- Processor time
- Memory
- Files
- I/O devices
3. Sistem operasi harus mampu memproteksi data dan sumber daya fisik dari suatu
proses agar tidak diganggu oleh proses yang lain
4. Hasil dari proses harus independen terhadap kecepatan, kecepatan eksekusi
tergantung dari proses kongkuren yang lain
Beberapa istilah pada kongkurensi
• Mutual Exclusion
• Deadlock
• Starvation
Mutual Exclusion
• Terdapat sumber daya yang tidak dapat dipakai bersama pada saat
bersamaan, misalnya printer.
• Sumber daya yang tidak dapat dipakai bersama ini disebut sumber
daya kritis. Bagian program yang menggunakan sumber kritis ini
disebut memasuki critical section.
• Hanya satu program yang diijinkan masuk critical region. Sistem
operasi menyediakan system call untuk hal ini
9
Deadlock
Ilustrasi Deadlock
Misalnya
– Dua proses, P1 dan P2
– Dua sumber daya kritis, R1 dan R2
– Proses P1 dan P2 harus mengakses kedua sumber daya
– Kondisi yang terjadi R1 diberikan ke P1, sedang R2 diberikan ke P2.
Karena untuk melanjutkan eksekusi memerlukan sumber daya
sekaligus maka kedua proses akan saling menunggu sumber daya
lain selamanya. Tak ada proses yang dapat melepaskan sumber
daya yang telah dipegangnya karena menunggu sumber daya lain
yang tak pernah diperolehnya.
Kedua proses dalam keadaan deadlock, tidak dapat membuat
kemajuan apapun
10
Starvation
Misalnya
• Terdapat tiga proses P1, P2 dan P3
• P1, P2, P3 memerlukan pengaksesan sumber daya R secara periodik
Skenario berikut terjadi :
• P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber daya
R
• Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengkakses R
• Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali
diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R
Jika pemberian hak akses pergantian terus menerus antara P1 dan P3, maka P2
tidak pernah memperoleh pengaksesan sumber daya R, meski tidak ada
deadlock. Pada situasi ini P2 disebut mengalami starvation
Masalah critical section
• Critical section adalah suatu bagian yang berisi sejumlah variabel yang akan
dipakai bersama (sharing)
• Secara umum, penyelesaian critical section harus memenuhi 3 syarat
1. Mutual exclusion. Jika suatu proses sedang mengerjakan critical section,
maka tidak boleh ada proses lain yang masuk critical section tersebut
2. Progress. Jika tidak ada suatu proses yang mengerjakan critical section dan
ada beberapa proses yang akan masuk ke critical section, maka hanya proses
yang sedang berada pada entry-section saja yang boleh berkompetisi untuk
mengerjakan critical section
3. Busy waiting. Besarnya waktu tunggu dari suatu proses yang akan
memasuki critical section sejak proses itu meminta ijin untuk mengerjakan
critical section, hingga permintaan itu dipenuhi
Interaksi proses
• Telah ditunjukkan bahwa kongkurensi terjadi karena hasil aplikasi
independen dari multiprogramming, dari aplikasi multiple-process dan dari
penggunaan stuktur multiple-process pada sistem operasinya. Maka interaksi
antar proses akan dikelompokkan berdasarkan derajat kepedulian (degree of
awareness) suatu proses terhadap proses lain. Terdapat 3 derajat kepedulian
yaitu
1. Process unaware of each other :
Proses-proses independen yang tidak berniat untuk bekerja sama. Contohnya
multiprogramming dari beberapa proses independen bisa berupa batch job
atau bagian interaktif atau campurannya.
Meski proses-proses ini tidak bekerja sama tapi sistem operasi tetap
memperhatikan kompetisi sumber daya. Misal dua aplikasi ingin
mengakases file atau printer
yang sama maka sistem operasi harus mengaturnya
2. Processes indirectly aware of each other :
Proses-proses yang sebenarnya tidak perlu peduli dengan proses
lain tapi berbagi (sharing) akses untuk beberap obyek tertentu
seperti I/O buffer
3. Processes directly aware of each other
Proses-proses yang dapat berkomunikasi dengan proses yang lain.
Proses ini menampilkan kerja sama bukan kompetisi
Kompetisi dan kerjasama dapat berupa :
• Kompetisi antar proses untuk sumber daya
• Kerja sama antar proses dengan sharing
• Kerja sama antar proses dengan komunikasi
Kompetisi antar proses untuk sumber daya
• Dua atau lebih proses perlu untuk mengakses sebuah
sumber daya yang sama.
• Masing-masing proses tidak peduli dengan keberadaan
proses yang lain dan masing-masing proses tidak saling
mempengaruhi
• Jika dua proses ingin mengakses satu sumber daya
tunggal maka sistem operasi mengalokasikan untuk
salah satu proses dan mengharuskan proses lain
menunggu. Proses yang ditolak pengaksesannya jadi
Kerja sama antar proses dengan sharing
• Banyak proses mengakses variabel atau berkas yang dipakai bersama.
Proses-proses dapat menggunakan dan memperbarui data yang
dipakai bersama tanpa peduli proses yang lain
• Proses mengetahui bahwa proses-proses lain dapat juga mengakses
data yang sama. Proses-proses harus bekerja sama untuk menjamin
integritas data yang dipakai bersama tersebut
• Karena data disimpan pada sumber daya (devices, memory), maka
timbul masalah pengendalian mutual exclusion, deadlock dan
starvation.
• Data diakses dengan dua mode yaitu :Proses pembacaan dan
penulisan. Tapi hanya penulisan yang mutual exclusion
Kerja sama antar proses dengan komunikasi
• Pada saat proses bekerja sama, masing-masing proses peduli
dengan proses yang lain
• Komunikasi menyediakan sinkronisasi atau koordinasi beragam
aktivitas
• Komunikasi dapat dicirikan sebagai keberadaan pesan-pesan dalam
suatu urutan. Cara sederhana (primitive) untuk mengirim dan
menerima pesan disediakan oleh bahasa pemrograman atau oleh
kernel sistem operasi
• Karena tidak ada yang disharing maka tidak diperlukan
pengendalian mutual exclusion tapi masalah deadlock dan
starvation tetap ada.
Perlunya Mutual Exclusion
• Kesuksesan pemanfaatan kongkurensi antar proses terjadi karena
kemampuan mendefinisikan critical section dan menjamin mutual exclusion.
Setiap fasilitas yang mendukung kedua hal ini harus memenuhi persyaratan
– Penjaminan mutual exclusion : hanya satu proses pada suatu saat yang
diperbolehkan masuk ke critical section
– Proses yang halt di noncritical section harus tetap halt tanpa menganggu proses
yang lain
– Tidak boleh ada proses yang berniat mengakses critical section menunggu dalam
waktu yang tidak tentu. Tidak boleh ada deadlock atau starvation
– Saat tidak ada proses di critical section, proses yang ingin masuk ke critical
section tidak boleh menunggu
– Tidak ada asumsi mengenai kecepatan relatif proses dan jumlah proses
– Proses berada di critical section hanya untuk waktu yang
berhingga
Penjaminan Mutual Exclusion –
Software approaches
• Pendekatan perangkat lunak dapat digunakan untuk proses
kongkuren yang dilakukan pada single-processor maupun multi-
processor dengan main memory sharing
• Pada pendekatan ini diasumsikan mutual exclusion berupa
pengaksesan memory secara bersamaan (reading/writing) pada
alamat memory yang sama tanpa dukungan perangkat keras lain
• Algoritma dengan pendekatan ini :
- Algoritma Dekker (Dekker’s Algorithm)
- Algoritma Peterson (Peterson’s Algorithm)
Algoritma Dekker
• Dekker (Ahli matematik dari Belanda) membuat algoritma untuk mutual
exclusion pada dua proses. Algoritma ini akan memperlihatkan bug yang
sering terjadi pada program kongkuren
Cara pertama
• Setiap cara pada mutual exclusion didasari pada keeksklusifan penggunaan
hardware yaitu hanya satu akses terhadap alamat memory yang dapat terjadi
pada saat tertentu
• Terdapat dua proses P0 dan P1 yang akan mengakses critical section.
• Protokolnya adalah : setiap proses akan mengecek apakah sudah waktunya
masuk atau belum yaitu dengan melihat variabel turn apakah sudah sama
dengan nomor dirinya atau belum. Jika sudah berarti boleh ke critical region
jika belum tetap menunggu (busy waiting)
• Proses yang telah selesai di critical section akan mengubah variabel turn
ini untuk proses yang lain. Variabel turn sebagai shared global variable
• Shared global variable : var turn:0..1
Program dari kedua proses ini :
PROCESS 0 (P0) PROCESS 1 (P1)
. .
. .
while turn ≠0 do {nothing}; while turn ≠0 do {nothing};
<critical section>; <critical section>;
turn:=1 turn:=0
. .
• Proses yang satu tergantung proses yang lain bila salah satu proses
gagalmaka proses yang lain tidak dapat dikerjakan (blocked)
Cara Kedua
• Masing-masing proses mempunyai variabel sendiri
(flag). Suatu proses akan mengecek variabel global
(flag) milik proses yang lain. Bila tertulis false berarti
critical section tidak ada yang gunakan. Maka proses ini
akan menulis variabel globalnya menjadi true dan pergi
ke critical section. Setelah selesai proses ini kembali
dan mengubah variabel globalnya menjadi false
• Shared global variable :
var flag:array [0 .. 1] of boolean
yang diinisialisasi false
• Program dari kedua proses
Process 0 (P0) Process 1 (P1)
. .
. .
while flag[1] do {nothing}; while flag[0] do {nothing};
flag[0] := true; flag[1] := true;
<critical section>; <critical section>;
flag[0] := false; flag[1] := false;
. .
• Jika suatu proses diluar critical section gagal makan proses lain tidak
akan blocked bahkan proses ini dapat terus mengakses critical section
karena flag dari proses yang lain selalu false
• Tetapi jika suatu proses gagal di dalam critical section atau setelah
mengeset flagnya true dan gagal sebelum masuk critical section maka
proses yang lain akan blocked
• Jika suatu proses belum sempat mengubah flagnya menjadi true dan proses yang
lain terlanjur melihat bahwa flagnya adalah false maka akan ada dua program di
critical section.
P0 executes the while statement and finds flag[1] set to false
P1 executes the while statement and finds flag[0] set to false
P0 sets flag[0] to true and enters its critical section
P1 sets flag[1] to true and enters its critical section
Cara ketiga
Untuk memperbaiki cara kedua dilakukan pertukaran 2 baris
Process 0 (P0) Process 1 (P1)
flag[0] := true; flag[1] := true;
while flag[1] do {nothing}; while flag[0] do {nothing};
<critical section>; <critical section>;
flag[0] := false; flag[1] :=false
. .
• Jika kedua proses mengubah flagnya menjadi true sebelum salah satu proses
mengeksekusi pernyataan while maka setiap proses akan mengira ada proses
yang telah masuk critical section sehingga terjadi deadlock
Solusi yang tepat (Dekker’s Algorithm)
• Pada cara ini ditambahkan kembali variabel turn yang menentukan proses
mana yang berhak masuk ke critical section.
• Saat proses P0 ingin masuk ke critical sectionnya, P0 mengubah flagnya
menjadi true dan kemudian mengecek flag di P1. Jika false maka P0 segera
ke critical section. Jika tidak P0 akan konsultasi ke juri. Jika P0 menemukan
turn=0 maka ia tahu bahwa sudah waktunya untuk bersikeras dan mengecek
secara periodik ke P1.
• P1 mencatat bahwa sudah waktunya untuk menulis false pada flagnya dan
membiarkan P0 masuk ke critical section. Setelah P0 masuk critical section
dia akan kembali dan mengubah flagnya menjadi false dan mengubah turn
Dekker’s Algorithm
Var flag: array [0..1] of boolean;
turn: 0..1;
Procedure P0;
begin
repeat
flag[0] := true;
while flag[1] do if turn = 1 then
begin
flag[0] :=false;
while turn=1 do {nothing}
flag[0] :=true
end;
<critical section>;
turn := 1;
Procedure P1;
Begin
repeat
flag[1] := true;
while flag[0] do if turn = 0 then
begin
flag[1] := false;
while turn =0 do {nothing}
flag[1] := true
end;
<critical section>;
turn := 0;
flag[1] := false;
<remainder>
forever
end;
begin
Algoritma Peterson
• Algoritma ini dapat digunakan untuk 2 atau lebih proses
kongkuren
• Misal proses P0 mengubah flag[0] menjadi true, P1 tidak dapat
masuk ke critical section. Jika P1 telah berada di dalam critical
section maka flag[1] = true dan P0 terblock dan tidak masuk
ke critical section.
• Deadlock dicegah. Jika P0 terblock pada looping whilenya.
Yaitu saat flag[1]=true dan turn=1. P0 dapat masuk critical
section saat flag[1] = false atau turn = 0.
Hal yang tidak mungkin terjadi pada Algoritma
Peterson
• P1 tidak berminat pada critical section.
• P1 menunggu terus untuk masuk critical section.
Karena jika turn=1 P1 dapat masuk critical section
• P1 memonopoli critical section. Jika P1
diwajibkan memberi P0 kesempatan dengan
mengubah turn = 0 sebelum masuk critical section.
Algoritma Peterson untuk 2 proses
var flag : array [0..1] of boolean;
turn: 0..1;
procedure P0;
begin
repeat
flag[0] := true;
turn := 1;
while flag[1] and turn = 1 do {nothing}
<critical section>;
flag[0] := false;
<remainder>
forever
end;
procedure P1;
begin
repeat
flag[1]:= true;
turn := 0;
while flag[0] and turn = 0 do {nothing};
<critical section>;
flag[1] := false;
<remainder>
forever
end;
begin
flag[0] := false;
flage[1] := false;
turn :=1;
parbegin
Penjaminan Mutual Exclusion –
Hardware approaches
• Pada single processor, proses-proses yang kongkuren tidak dapat overlap
hanya terjadi interleave. Sebuah proses akan terus berjalan sampai
diinterrupt. Sehingga dengan mengatur interrupt mutual exclusion dapat
terjadi. Sedangkan pada multiprosesor interrupt tidak menjamin mutual
exclusion karena beberapa proses dapat dieksekusi bersamaan waktunya
• Pada sistem multiprocessor yang memakai memori bersama, pengaksesan
suatu memori yang sama pada saat yang sama dijaga pada tingkat
perangkat keras.
• Perangkat keras menyediakan instruksi mesin khusus yang tidak dapat
diinterrupt (atomic instruction). Karena hanya berada pada satu siklus
instruksi saat di fetch
Instruksi mesin khusus
Akan dibahas dua instruksi khusus
yaitu :
• Test and Set Instruction
• Exchange Instruction
Test and Set Instruction
Didefinisikan sebagai :
function testset (var i: integer):
boolean;
begin
if i = 0 then
begin
i := 1;
testset := true;
• Instruksi akan menguji (test) nilai
dari argumen I. Jika nilainya 0
maka akan diganti dengan 1 dan
menghasilkan true. Sedangkan
jika tidak nilainya tidak akan
diubah dan menghasilkan false.
• Fungsi testset berjalan otomatis
dan tidak dapat diinterrupt
Exchange Instruction
• Didefinisikan sebagai:
procedure exchange (var
r:register; var m:memory)
var temp;
begin
temp:=m;
m:= r;
r:= temp;
End.
• Instruksi menukar isi dari
sebuah register dengan
yang terdapat pada suatu
memori.
• Selama eksekusi instruksi,
akses ke lokasi memori
diblocked terhadap segala
instruksi lain yang
mengarah ke lokasi
tersebut.
33
(A) TEST AND SET INSTRUCTION
Procedure mutual exclusion
const n = …; (*number of processees*)
var bolt: integer;
procedure P (i: integer);
begin
repeat
repeat {nothing} until testset (bolt)
<critical section>
bolt:= 0;
<remainder>
forever
end;
begin (* main program *)
bolt := 0;
parbegin
P(1);
(B) EXCHANGE INSTRUCTION
Procedure mutual exclusion
const n = …; (*number of processees*)
var bolt: integer;
procedure P (i: integer);
var keyi : integer;
begin
repeat
keyi := 1;
repeat exchange (keyi , bolt) until keyi =0;
<critical section>
exchange (keyi , bolt)
<remainder>
forever
end;
begin (* main program *)
bolt := 0;
Keuntungan Pendekatan Instruksi Mesin
• Dapat diterapkan pada beberapa proses baik pada single
processor maupun multiple processor dengan pemakaian
bersama (sharing) main memory)
• Mudah diverifikasi
• Mendukung multiple critical section, setiap critical section dapat
mendefinisikan variabelnya sendiri
Kelemahan Pendekatan Instruksi Mesin
• Terjadi Busy waiting, saat proses menunggu critical section
proses terus mengkonsumsi waktu prosesor
• Mungkin terjadi starvation
• Mungkin terjadi deadlock
Semaphore
• Semaphore adalah pendekatan yang dikemukakan Dijkstra. Semaphore
merupakan pendekatan dari Sistem Operasi dan mekanisme bahasa
pemrograman. Prinsip semaphore sebagai berikut :
Dua proses atau lebih dapat bekerja sama dengan menggunakan sinyal
sederhana. Proses dapat dipaksa berhenti pada suatu tempat tertentu
sampai menerima sinyal khusus ini. Variabel khusus untuk pensinyalan
ini disebut semaphore
• Untuk mengirim sinyal dengan semaphore, sebuah proses mengeksekusi
primitive signal
Untuk menerima sinyal dengan semaphore, sebuah proses mengeksekusi
primitive wait
Jika sinyal yang bersangkutan belum ditransmisikan, proses ter-suspend
sampai transmisi terjadi
Untuk memperoleh efek yang diinginkan, kita dapat memandang sempahore
sebagai variabel yang memiliki nilai integer (S) dengan tiga kondisi berikut :
1. Sebuah semaphore diinisialisasi dengan nilai tidak negatif
2. Wait operation menurunkan nilai semaphore. Jika nilainya negatif maka
proses yang mengeksekusi wait akan terblock.
While S≤ 0 do nothing;
S:= S-1;
if S < 0 then block(P)
3. Signal operation menaikkan nilai semaphore. Jika nilainya tidak positif
maka proses yang terblock karena wait operation akan ter-unblock
S:= S+1
if S ≤ 0 then wakeup(P)

Contenu connexe

Tendances

Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan Normalisasi
Derina Ellya R
 
Synchronization
SynchronizationSynchronization
Synchronization
Mohd Arif
 
Sistem operasi terdistribusi
Sistem operasi terdistribusiSistem operasi terdistribusi
Sistem operasi terdistribusi
hofidatur
 

Tendances (20)

Deadlock
DeadlockDeadlock
Deadlock
 
Implementasi Virtual Memory Kelompok 3
Implementasi Virtual Memory Kelompok 3Implementasi Virtual Memory Kelompok 3
Implementasi Virtual Memory Kelompok 3
 
Bab 3 resolusi logika ta 2019
Bab 3 resolusi logika ta 2019Bab 3 resolusi logika ta 2019
Bab 3 resolusi logika ta 2019
 
Deadlock pada sistem operasi
Deadlock pada sistem operasiDeadlock pada sistem operasi
Deadlock pada sistem operasi
 
Keamanan pada Sistem Terdistribusi
Keamanan pada Sistem TerdistribusiKeamanan pada Sistem Terdistribusi
Keamanan pada Sistem Terdistribusi
 
 Manajemen memory dan Swapping
 Manajemen memory dan Swapping Manajemen memory dan Swapping
 Manajemen memory dan Swapping
 
Paralel prosesor
Paralel prosesorParalel prosesor
Paralel prosesor
 
Operating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksOperating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and Deadlocks
 
Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan Normalisasi
 
Synchronization
SynchronizationSynchronization
Synchronization
 
09 sinkronisasi proses
09 sinkronisasi proses09 sinkronisasi proses
09 sinkronisasi proses
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasi
 
Proses di Sistem Operasi
Proses di Sistem OperasiProses di Sistem Operasi
Proses di Sistem Operasi
 
Deadlock
DeadlockDeadlock
Deadlock
 
Ppt sinkronisasi dalam Sistem Operasi
Ppt sinkronisasi dalam Sistem OperasiPpt sinkronisasi dalam Sistem Operasi
Ppt sinkronisasi dalam Sistem Operasi
 
Dining Philosopher's Problem
Dining Philosopher's ProblemDining Philosopher's Problem
Dining Philosopher's Problem
 
Sistem operasi terdistribusi
Sistem operasi terdistribusiSistem operasi terdistribusi
Sistem operasi terdistribusi
 
Jenis dan proses interupsi
Jenis dan proses interupsiJenis dan proses interupsi
Jenis dan proses interupsi
 
Manajemen Memory
Manajemen MemoryManajemen Memory
Manajemen Memory
 

Similaire à 8.sinkronisasi

02. proses pada so
02. proses pada so02. proses pada so
02. proses pada so
kimerfan
 
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdfMakalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
Elmitiodatacp
 
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdfDeadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
ARYAPUTRAABSHARI
 
Sister 02 - model dan permasalahan sister
Sister   02 - model dan permasalahan sisterSister   02 - model dan permasalahan sister
Sister 02 - model dan permasalahan sister
Febriyani Syafri
 
Slide3 manajemen proses
Slide3 manajemen prosesSlide3 manajemen proses
Slide3 manajemen proses
Hz Tena
 

Similaire à 8.sinkronisasi (20)

VI.Sinkronisasi.ppt
VI.Sinkronisasi.pptVI.Sinkronisasi.ppt
VI.Sinkronisasi.ppt
 
Bernis Sagita - Konkurensi
Bernis Sagita - KonkurensiBernis Sagita - Konkurensi
Bernis Sagita - Konkurensi
 
Helen Alida Abilio - Konkurensi
Helen Alida Abilio - KonkurensiHelen Alida Abilio - Konkurensi
Helen Alida Abilio - Konkurensi
 
Nurrohmah - Sinkronisasi Proses
Nurrohmah - Sinkronisasi ProsesNurrohmah - Sinkronisasi Proses
Nurrohmah - Sinkronisasi Proses
 
Os ppt.6
Os ppt.6Os ppt.6
Os ppt.6
 
Pert.5 sinkronisasi dan deadlock
Pert.5 sinkronisasi dan deadlockPert.5 sinkronisasi dan deadlock
Pert.5 sinkronisasi dan deadlock
 
Pertemuan ke 6
Pertemuan ke 6Pertemuan ke 6
Pertemuan ke 6
 
02. proses pada so
02. proses pada so02. proses pada so
02. proses pada so
 
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdfMakalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
 
Pertemuan3 1 so
Pertemuan3 1 soPertemuan3 1 so
Pertemuan3 1 so
 
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdfDeadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
 
Sister 02 - model dan permasalahan sister
Sister   02 - model dan permasalahan sisterSister   02 - model dan permasalahan sister
Sister 02 - model dan permasalahan sister
 
SO UTS IFMLM1 2301020085 - I Komang Wisnu Ambara.pptx
SO UTS IFMLM1 2301020085 - I Komang Wisnu Ambara.pptxSO UTS IFMLM1 2301020085 - I Komang Wisnu Ambara.pptx
SO UTS IFMLM1 2301020085 - I Komang Wisnu Ambara.pptx
 
Sistem Terdistribusi.pptx
Sistem Terdistribusi.pptxSistem Terdistribusi.pptx
Sistem Terdistribusi.pptx
 
Konsep manajemen proses_pada_sistem
Konsep manajemen proses_pada_sistemKonsep manajemen proses_pada_sistem
Konsep manajemen proses_pada_sistem
 
Pertemuan 8
Pertemuan 8Pertemuan 8
Pertemuan 8
 
Slide3 manajemen proses
Slide3 manajemen prosesSlide3 manajemen proses
Slide3 manajemen proses
 
Deadlock rahmawati
Deadlock   rahmawatiDeadlock   rahmawati
Deadlock rahmawati
 
Komunikasi Antar Proses
Komunikasi Antar ProsesKomunikasi Antar Proses
Komunikasi Antar Proses
 
Deadlock
DeadlockDeadlock
Deadlock
 

Plus de nasib silaban (11)

7.manajemen memory
7.manajemen memory7.manajemen memory
7.manajemen memory
 
6.deadlockdan starvation
6.deadlockdan starvation6.deadlockdan starvation
6.deadlockdan starvation
 
5.penjadwalan proses
5.penjadwalan proses5.penjadwalan proses
5.penjadwalan proses
 
4.proses proses
4.proses proses4.proses proses
4.proses proses
 
3.struktur sistemoperasi
3.struktur sistemoperasi3.struktur sistemoperasi
3.struktur sistemoperasi
 
2.struktur sistemkomputer
2.struktur sistemkomputer2.struktur sistemkomputer
2.struktur sistemkomputer
 
1.pendahuluan
1.pendahuluan1.pendahuluan
1.pendahuluan
 
Formulir dapodikdas tahun 2015
Formulir dapodikdas tahun 2015Formulir dapodikdas tahun 2015
Formulir dapodikdas tahun 2015
 
Modul praktikum-dos 21
Modul praktikum-dos 21Modul praktikum-dos 21
Modul praktikum-dos 21
 
Belajar php dan my sql bareng newbie v.1
Belajar php dan my sql bareng newbie v.1Belajar php dan my sql bareng newbie v.1
Belajar php dan my sql bareng newbie v.1
 
Konfigurasi file sharing
Konfigurasi file sharingKonfigurasi file sharing
Konfigurasi file sharing
 

Dernier

Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
pipinafindraputri1
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
AtiAnggiSupriyati
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
ssuser35630b
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
JarzaniIsmail
 

Dernier (20)

DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
 
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
 
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
Modul Projek - Batik Ecoprint - Fase B.pdf
Modul Projek  - Batik Ecoprint - Fase B.pdfModul Projek  - Batik Ecoprint - Fase B.pdf
Modul Projek - Batik Ecoprint - Fase B.pdf
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfModul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
 
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 

8.sinkronisasi

  • 3. Kongkurensi (Concurrency) • Proses-proses disebut mengalami kongkurensi jika proses-proses (lebih dari satu proses) berada pada saat yang sama • Kongkurensi dapat terjadi pada single processor (melalui multiprogramming) maupun multiple processor (melalui multiprocessing atau distributed processing) Kongkurensi dapat timbul pada tiga kasus berikut • Multiple application : Terjadi pergantian sejumlah job atau aplikasi secara dinamik • Structured application : sebagai penerapan disain modular, beberapa aplikasi dapat diterapkan sebagai kumpulan dari proses-proses kongkuren • Operating-system structure: sistem operasi diterapkan sebagai kumpulan dari proses-proses kongkuren
  • 4. 4 Proses Kongkurensi • Pada single processor proses- proses dieksekusi secara interleaved untuk mewujudkan eksekusi yang simultan • Sedangkan pada multiple processor proses-proses dapat dieksekusi selain secara interleaved juga dapat secara overlap
  • 5. Prinsip-prinsip Kongkurensi Kongkurensi meliputi • Alokasi waktu prosesor untuk proses-proses • Pemakaian bersama (sharing) dan persaingan (competition) untuk mendapatkan sumber daya • Komunikasi antar proses • Sinkronisasi aktivitas banyak proses Masalah akibat kongkurensi : karena kecepatan eksekusi tidak dapat diprediksi Masalah kongkurensi pada single processor • Pemakaian bersama sumber daya global • Sistem operasi sulit mengoptimalkan alokasi sumber daya • Sulitnya mencari kesalahan program
  • 6. Contoh pemakaian bersama sumber daya global • Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis (race condition) Contoh sistem operasi sulit mengoptimalkan alokasi sumber daya • Jika proses A meminta suatu chanel I/O tertentu dan kemudian disuspend sebelum menggunakan channel tersebut. Jika sistem operasi mengunci channel tersebut dan mencegahnya digunakan oleh proses lain maka tindakan ini merupakan ketidakefisienan
  • 7. Kepedulian Sistem Operasi Disain dan bentuk manajemen sistem operasi yang bagaimana yang timbul akibat kongkurensi? 1. Sistem operasi harus mampu menyimpan jejak dari proses-proses yang aktif (menggunakan PCB) 2. Sistem operasi harus mengalokasi dan mengdealokasi beragam sumber daya untuk setiap proses yang aktif. Sumber daya meliputi : - Processor time - Memory - Files - I/O devices 3. Sistem operasi harus mampu memproteksi data dan sumber daya fisik dari suatu proses agar tidak diganggu oleh proses yang lain 4. Hasil dari proses harus independen terhadap kecepatan, kecepatan eksekusi tergantung dari proses kongkuren yang lain
  • 8. Beberapa istilah pada kongkurensi • Mutual Exclusion • Deadlock • Starvation Mutual Exclusion • Terdapat sumber daya yang tidak dapat dipakai bersama pada saat bersamaan, misalnya printer. • Sumber daya yang tidak dapat dipakai bersama ini disebut sumber daya kritis. Bagian program yang menggunakan sumber kritis ini disebut memasuki critical section. • Hanya satu program yang diijinkan masuk critical region. Sistem operasi menyediakan system call untuk hal ini
  • 9. 9 Deadlock Ilustrasi Deadlock Misalnya – Dua proses, P1 dan P2 – Dua sumber daya kritis, R1 dan R2 – Proses P1 dan P2 harus mengakses kedua sumber daya – Kondisi yang terjadi R1 diberikan ke P1, sedang R2 diberikan ke P2. Karena untuk melanjutkan eksekusi memerlukan sumber daya sekaligus maka kedua proses akan saling menunggu sumber daya lain selamanya. Tak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yang tak pernah diperolehnya. Kedua proses dalam keadaan deadlock, tidak dapat membuat kemajuan apapun
  • 10. 10 Starvation Misalnya • Terdapat tiga proses P1, P2 dan P3 • P1, P2, P3 memerlukan pengaksesan sumber daya R secara periodik Skenario berikut terjadi : • P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber daya R • Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengkakses R • Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R Jika pemberian hak akses pergantian terus menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R, meski tidak ada deadlock. Pada situasi ini P2 disebut mengalami starvation
  • 11. Masalah critical section • Critical section adalah suatu bagian yang berisi sejumlah variabel yang akan dipakai bersama (sharing) • Secara umum, penyelesaian critical section harus memenuhi 3 syarat 1. Mutual exclusion. Jika suatu proses sedang mengerjakan critical section, maka tidak boleh ada proses lain yang masuk critical section tersebut 2. Progress. Jika tidak ada suatu proses yang mengerjakan critical section dan ada beberapa proses yang akan masuk ke critical section, maka hanya proses yang sedang berada pada entry-section saja yang boleh berkompetisi untuk mengerjakan critical section 3. Busy waiting. Besarnya waktu tunggu dari suatu proses yang akan memasuki critical section sejak proses itu meminta ijin untuk mengerjakan critical section, hingga permintaan itu dipenuhi
  • 12. Interaksi proses • Telah ditunjukkan bahwa kongkurensi terjadi karena hasil aplikasi independen dari multiprogramming, dari aplikasi multiple-process dan dari penggunaan stuktur multiple-process pada sistem operasinya. Maka interaksi antar proses akan dikelompokkan berdasarkan derajat kepedulian (degree of awareness) suatu proses terhadap proses lain. Terdapat 3 derajat kepedulian yaitu 1. Process unaware of each other : Proses-proses independen yang tidak berniat untuk bekerja sama. Contohnya multiprogramming dari beberapa proses independen bisa berupa batch job atau bagian interaktif atau campurannya. Meski proses-proses ini tidak bekerja sama tapi sistem operasi tetap memperhatikan kompetisi sumber daya. Misal dua aplikasi ingin mengakases file atau printer yang sama maka sistem operasi harus mengaturnya
  • 13.
  • 14. 2. Processes indirectly aware of each other : Proses-proses yang sebenarnya tidak perlu peduli dengan proses lain tapi berbagi (sharing) akses untuk beberap obyek tertentu seperti I/O buffer 3. Processes directly aware of each other Proses-proses yang dapat berkomunikasi dengan proses yang lain. Proses ini menampilkan kerja sama bukan kompetisi Kompetisi dan kerjasama dapat berupa : • Kompetisi antar proses untuk sumber daya • Kerja sama antar proses dengan sharing • Kerja sama antar proses dengan komunikasi
  • 15. Kompetisi antar proses untuk sumber daya • Dua atau lebih proses perlu untuk mengakses sebuah sumber daya yang sama. • Masing-masing proses tidak peduli dengan keberadaan proses yang lain dan masing-masing proses tidak saling mempengaruhi • Jika dua proses ingin mengakses satu sumber daya tunggal maka sistem operasi mengalokasikan untuk salah satu proses dan mengharuskan proses lain menunggu. Proses yang ditolak pengaksesannya jadi
  • 16. Kerja sama antar proses dengan sharing • Banyak proses mengakses variabel atau berkas yang dipakai bersama. Proses-proses dapat menggunakan dan memperbarui data yang dipakai bersama tanpa peduli proses yang lain • Proses mengetahui bahwa proses-proses lain dapat juga mengakses data yang sama. Proses-proses harus bekerja sama untuk menjamin integritas data yang dipakai bersama tersebut • Karena data disimpan pada sumber daya (devices, memory), maka timbul masalah pengendalian mutual exclusion, deadlock dan starvation. • Data diakses dengan dua mode yaitu :Proses pembacaan dan penulisan. Tapi hanya penulisan yang mutual exclusion
  • 17. Kerja sama antar proses dengan komunikasi • Pada saat proses bekerja sama, masing-masing proses peduli dengan proses yang lain • Komunikasi menyediakan sinkronisasi atau koordinasi beragam aktivitas • Komunikasi dapat dicirikan sebagai keberadaan pesan-pesan dalam suatu urutan. Cara sederhana (primitive) untuk mengirim dan menerima pesan disediakan oleh bahasa pemrograman atau oleh kernel sistem operasi • Karena tidak ada yang disharing maka tidak diperlukan pengendalian mutual exclusion tapi masalah deadlock dan starvation tetap ada.
  • 18. Perlunya Mutual Exclusion • Kesuksesan pemanfaatan kongkurensi antar proses terjadi karena kemampuan mendefinisikan critical section dan menjamin mutual exclusion. Setiap fasilitas yang mendukung kedua hal ini harus memenuhi persyaratan – Penjaminan mutual exclusion : hanya satu proses pada suatu saat yang diperbolehkan masuk ke critical section – Proses yang halt di noncritical section harus tetap halt tanpa menganggu proses yang lain – Tidak boleh ada proses yang berniat mengakses critical section menunggu dalam waktu yang tidak tentu. Tidak boleh ada deadlock atau starvation – Saat tidak ada proses di critical section, proses yang ingin masuk ke critical section tidak boleh menunggu – Tidak ada asumsi mengenai kecepatan relatif proses dan jumlah proses – Proses berada di critical section hanya untuk waktu yang berhingga
  • 19. Penjaminan Mutual Exclusion – Software approaches • Pendekatan perangkat lunak dapat digunakan untuk proses kongkuren yang dilakukan pada single-processor maupun multi- processor dengan main memory sharing • Pada pendekatan ini diasumsikan mutual exclusion berupa pengaksesan memory secara bersamaan (reading/writing) pada alamat memory yang sama tanpa dukungan perangkat keras lain • Algoritma dengan pendekatan ini : - Algoritma Dekker (Dekker’s Algorithm) - Algoritma Peterson (Peterson’s Algorithm)
  • 20. Algoritma Dekker • Dekker (Ahli matematik dari Belanda) membuat algoritma untuk mutual exclusion pada dua proses. Algoritma ini akan memperlihatkan bug yang sering terjadi pada program kongkuren Cara pertama • Setiap cara pada mutual exclusion didasari pada keeksklusifan penggunaan hardware yaitu hanya satu akses terhadap alamat memory yang dapat terjadi pada saat tertentu • Terdapat dua proses P0 dan P1 yang akan mengakses critical section. • Protokolnya adalah : setiap proses akan mengecek apakah sudah waktunya masuk atau belum yaitu dengan melihat variabel turn apakah sudah sama dengan nomor dirinya atau belum. Jika sudah berarti boleh ke critical region jika belum tetap menunggu (busy waiting)
  • 21. • Proses yang telah selesai di critical section akan mengubah variabel turn ini untuk proses yang lain. Variabel turn sebagai shared global variable • Shared global variable : var turn:0..1 Program dari kedua proses ini : PROCESS 0 (P0) PROCESS 1 (P1) . . . . while turn ≠0 do {nothing}; while turn ≠0 do {nothing}; <critical section>; <critical section>; turn:=1 turn:=0 . . • Proses yang satu tergantung proses yang lain bila salah satu proses gagalmaka proses yang lain tidak dapat dikerjakan (blocked)
  • 22. Cara Kedua • Masing-masing proses mempunyai variabel sendiri (flag). Suatu proses akan mengecek variabel global (flag) milik proses yang lain. Bila tertulis false berarti critical section tidak ada yang gunakan. Maka proses ini akan menulis variabel globalnya menjadi true dan pergi ke critical section. Setelah selesai proses ini kembali dan mengubah variabel globalnya menjadi false • Shared global variable : var flag:array [0 .. 1] of boolean yang diinisialisasi false
  • 23. • Program dari kedua proses Process 0 (P0) Process 1 (P1) . . . . while flag[1] do {nothing}; while flag[0] do {nothing}; flag[0] := true; flag[1] := true; <critical section>; <critical section>; flag[0] := false; flag[1] := false; . . • Jika suatu proses diluar critical section gagal makan proses lain tidak akan blocked bahkan proses ini dapat terus mengakses critical section karena flag dari proses yang lain selalu false • Tetapi jika suatu proses gagal di dalam critical section atau setelah mengeset flagnya true dan gagal sebelum masuk critical section maka proses yang lain akan blocked
  • 24. • Jika suatu proses belum sempat mengubah flagnya menjadi true dan proses yang lain terlanjur melihat bahwa flagnya adalah false maka akan ada dua program di critical section. P0 executes the while statement and finds flag[1] set to false P1 executes the while statement and finds flag[0] set to false P0 sets flag[0] to true and enters its critical section P1 sets flag[1] to true and enters its critical section Cara ketiga Untuk memperbaiki cara kedua dilakukan pertukaran 2 baris Process 0 (P0) Process 1 (P1) flag[0] := true; flag[1] := true; while flag[1] do {nothing}; while flag[0] do {nothing}; <critical section>; <critical section>; flag[0] := false; flag[1] :=false . .
  • 25. • Jika kedua proses mengubah flagnya menjadi true sebelum salah satu proses mengeksekusi pernyataan while maka setiap proses akan mengira ada proses yang telah masuk critical section sehingga terjadi deadlock Solusi yang tepat (Dekker’s Algorithm) • Pada cara ini ditambahkan kembali variabel turn yang menentukan proses mana yang berhak masuk ke critical section. • Saat proses P0 ingin masuk ke critical sectionnya, P0 mengubah flagnya menjadi true dan kemudian mengecek flag di P1. Jika false maka P0 segera ke critical section. Jika tidak P0 akan konsultasi ke juri. Jika P0 menemukan turn=0 maka ia tahu bahwa sudah waktunya untuk bersikeras dan mengecek secara periodik ke P1. • P1 mencatat bahwa sudah waktunya untuk menulis false pada flagnya dan membiarkan P0 masuk ke critical section. Setelah P0 masuk critical section dia akan kembali dan mengubah flagnya menjadi false dan mengubah turn
  • 26. Dekker’s Algorithm Var flag: array [0..1] of boolean; turn: 0..1; Procedure P0; begin repeat flag[0] := true; while flag[1] do if turn = 1 then begin flag[0] :=false; while turn=1 do {nothing} flag[0] :=true end; <critical section>; turn := 1; Procedure P1; Begin repeat flag[1] := true; while flag[0] do if turn = 0 then begin flag[1] := false; while turn =0 do {nothing} flag[1] := true end; <critical section>; turn := 0; flag[1] := false; <remainder> forever end; begin
  • 27. Algoritma Peterson • Algoritma ini dapat digunakan untuk 2 atau lebih proses kongkuren • Misal proses P0 mengubah flag[0] menjadi true, P1 tidak dapat masuk ke critical section. Jika P1 telah berada di dalam critical section maka flag[1] = true dan P0 terblock dan tidak masuk ke critical section. • Deadlock dicegah. Jika P0 terblock pada looping whilenya. Yaitu saat flag[1]=true dan turn=1. P0 dapat masuk critical section saat flag[1] = false atau turn = 0.
  • 28. Hal yang tidak mungkin terjadi pada Algoritma Peterson • P1 tidak berminat pada critical section. • P1 menunggu terus untuk masuk critical section. Karena jika turn=1 P1 dapat masuk critical section • P1 memonopoli critical section. Jika P1 diwajibkan memberi P0 kesempatan dengan mengubah turn = 0 sebelum masuk critical section.
  • 29. Algoritma Peterson untuk 2 proses var flag : array [0..1] of boolean; turn: 0..1; procedure P0; begin repeat flag[0] := true; turn := 1; while flag[1] and turn = 1 do {nothing} <critical section>; flag[0] := false; <remainder> forever end; procedure P1; begin repeat flag[1]:= true; turn := 0; while flag[0] and turn = 0 do {nothing}; <critical section>; flag[1] := false; <remainder> forever end; begin flag[0] := false; flage[1] := false; turn :=1; parbegin
  • 30. Penjaminan Mutual Exclusion – Hardware approaches • Pada single processor, proses-proses yang kongkuren tidak dapat overlap hanya terjadi interleave. Sebuah proses akan terus berjalan sampai diinterrupt. Sehingga dengan mengatur interrupt mutual exclusion dapat terjadi. Sedangkan pada multiprosesor interrupt tidak menjamin mutual exclusion karena beberapa proses dapat dieksekusi bersamaan waktunya • Pada sistem multiprocessor yang memakai memori bersama, pengaksesan suatu memori yang sama pada saat yang sama dijaga pada tingkat perangkat keras. • Perangkat keras menyediakan instruksi mesin khusus yang tidak dapat diinterrupt (atomic instruction). Karena hanya berada pada satu siklus instruksi saat di fetch
  • 31. Instruksi mesin khusus Akan dibahas dua instruksi khusus yaitu : • Test and Set Instruction • Exchange Instruction Test and Set Instruction Didefinisikan sebagai : function testset (var i: integer): boolean; begin if i = 0 then begin i := 1; testset := true; • Instruksi akan menguji (test) nilai dari argumen I. Jika nilainya 0 maka akan diganti dengan 1 dan menghasilkan true. Sedangkan jika tidak nilainya tidak akan diubah dan menghasilkan false. • Fungsi testset berjalan otomatis dan tidak dapat diinterrupt
  • 32. Exchange Instruction • Didefinisikan sebagai: procedure exchange (var r:register; var m:memory) var temp; begin temp:=m; m:= r; r:= temp; End. • Instruksi menukar isi dari sebuah register dengan yang terdapat pada suatu memori. • Selama eksekusi instruksi, akses ke lokasi memori diblocked terhadap segala instruksi lain yang mengarah ke lokasi tersebut.
  • 33. 33 (A) TEST AND SET INSTRUCTION Procedure mutual exclusion const n = …; (*number of processees*) var bolt: integer; procedure P (i: integer); begin repeat repeat {nothing} until testset (bolt) <critical section> bolt:= 0; <remainder> forever end; begin (* main program *) bolt := 0; parbegin P(1); (B) EXCHANGE INSTRUCTION Procedure mutual exclusion const n = …; (*number of processees*) var bolt: integer; procedure P (i: integer); var keyi : integer; begin repeat keyi := 1; repeat exchange (keyi , bolt) until keyi =0; <critical section> exchange (keyi , bolt) <remainder> forever end; begin (* main program *) bolt := 0;
  • 34. Keuntungan Pendekatan Instruksi Mesin • Dapat diterapkan pada beberapa proses baik pada single processor maupun multiple processor dengan pemakaian bersama (sharing) main memory) • Mudah diverifikasi • Mendukung multiple critical section, setiap critical section dapat mendefinisikan variabelnya sendiri Kelemahan Pendekatan Instruksi Mesin • Terjadi Busy waiting, saat proses menunggu critical section proses terus mengkonsumsi waktu prosesor • Mungkin terjadi starvation • Mungkin terjadi deadlock
  • 35. Semaphore • Semaphore adalah pendekatan yang dikemukakan Dijkstra. Semaphore merupakan pendekatan dari Sistem Operasi dan mekanisme bahasa pemrograman. Prinsip semaphore sebagai berikut : Dua proses atau lebih dapat bekerja sama dengan menggunakan sinyal sederhana. Proses dapat dipaksa berhenti pada suatu tempat tertentu sampai menerima sinyal khusus ini. Variabel khusus untuk pensinyalan ini disebut semaphore • Untuk mengirim sinyal dengan semaphore, sebuah proses mengeksekusi primitive signal Untuk menerima sinyal dengan semaphore, sebuah proses mengeksekusi primitive wait Jika sinyal yang bersangkutan belum ditransmisikan, proses ter-suspend sampai transmisi terjadi
  • 36. Untuk memperoleh efek yang diinginkan, kita dapat memandang sempahore sebagai variabel yang memiliki nilai integer (S) dengan tiga kondisi berikut : 1. Sebuah semaphore diinisialisasi dengan nilai tidak negatif 2. Wait operation menurunkan nilai semaphore. Jika nilainya negatif maka proses yang mengeksekusi wait akan terblock. While S≤ 0 do nothing; S:= S-1; if S < 0 then block(P) 3. Signal operation menaikkan nilai semaphore. Jika nilainya tidak positif maka proses yang terblock karena wait operation akan ter-unblock S:= S+1 if S ≤ 0 then wakeup(P)