![Page 1: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/1.jpg)
Pertemuan 5
Concurrency: Mutual Exclusion &
SynchronizationH u s n i
Lab. Sistem Komputer & JaringanTeknik Informatika Univ. Trunojoyo
Sistem Operasi 2009
![Page 2: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/2.jpg)
2
Ikhtisar
• Prinsip Mendasar dari Concurrency– Mutual Exclusion: Dukungan Hardware– Semaphore– Monitor– Message Passing– Masalah Readers/Writers
![Page 3: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/3.jpg)
3
Banyak Proses
• Sentral bagi perancangan SO modern adalah pengelolaan banyak proses– Multiprogramming– Multiprocessing– Distributed Processing
• Isu besarnya adalah Concurrency – Mengelola interaksi dari semua proses
![Page 4: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/4.jpg)
4
Concurrency
Concurrency hadir pada:• Banyak aplikasi
– Waktu sharing
• Aplikasi terstruktur– Ekstensi dari rancangan modular
• Struktur sistem operasi– SO sendiri diimplementasikan sebagai
sekumpulan proses atau thread
![Page 5: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/5.jpg)
5
Istilah Penting
![Page 6: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/6.jpg)
6
Proses Interleaving & Overlapping
• Telah diketahui bahwa proses dapat diinterleave pada uniprocessor
![Page 7: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/7.jpg)
7
Proses Interleaving & Overlapping
• Pada multi-processor, juga dapat overlapping
![Page 8: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/8.jpg)
8
Kesulitan Concurrency
• Sharing sumber daya global– Penulisan suatu shared variable: urutan
penulisan sangat penting– Masalah besar adalah penulisan tidak
lengkap
• Pengelolaan alokasi resource secara optimal
• Sulit menemukan error pemrograman karena hasilnya bersifat tidak deterministic and reproducible.
![Page 9: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/9.jpg)
9
Contoh Sederhana
void echo(){
chin = getchar();chout = chin;putchar(chout);
}
![Page 10: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/10.jpg)
10
Contoh pada Multiprocessor
Proses P1 Proses P2. .
chin = getchar(); .. chin = getchar();
chout = chin; chout = chin;putchar(chout); .
. putchar(chout);
. .
![Page 11: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/11.jpg)
11
Menerapkan Akses Tunggal
• Jika diterapkan suatu aturan yang hanya satu proses dapat memasuki fungsi tersebut pada suatu waktu, maka:
• P1 & P2 berjalan pada processor berbeda• P1 memasukkan echo lebih dahulu,
– P2 mencoba masuk tetapi diblok – P2 suspend
• P1 melengkapi eksekusi– P2 me-resume & mengeksekusi echo
![Page 12: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/12.jpg)
12
Kondisi Race
• Race condition terjadi ketika – Banyak proses atau thread membaca &
menulis item data – Hasil akhir dari aktifitas baca & tulis tersebut
tergantung pada urutan eksekusi dari proses-yang terlibat.
• Output tergantung pada siapa yang terakhir menyelesaikan race.
![Page 13: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/13.jpg)
13
Fokus SO
• Isu desain dan manajemen yang muncul karena adanya concurrency?
• SO harus – Menjaga track dari berbagai proses– Meng-alokasi-kan dan men-dealokasi-kan
sumber daya– Melindungi data & resource dari gangguan
proses lain– Memastikan bahwa proses & output terbebas
dari kecepatan pemrosesan
![Page 14: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/14.jpg)
14
Interaksi Proses
![Page 15: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/15.jpg)
15
Kompetisi Antar Proses (Resources)
Ada tiga masalah kendali utama:• Kebutuhan Mutual Exclusion
– Critical section (bagian kritis dari proses)
• Deadlock• Starvation
![Page 16: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/16.jpg)
16
Syarat Mutual Exclusion (2)
• Hanya satu proses pada satu waktu yang dibolehkan ada dalam critical section bagi suatu resource
• Proses yang berhenti pada noncritical section-nya harus melakukan demikian tanpa gangguan dengan proses lain
• Tidak ada deadlock atau starvation
![Page 17: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/17.jpg)
17
Syarat Mutual Exclusion (2)
• Proses harus tidak didelay akses ke suatu critical section saat tidak ada proses lain yang menggunakannya
• Tidak ada asumsi mengenai kecepatan proses relatif atau jumlah proses
• Proses tetap di dalam critical section-nya hanya selama waktu terbatas tertentu (finite)
![Page 18: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/18.jpg)
18
Mutual Exclusion (Disabling Interrupts)
• Uniprocessor hanya membolehkan interleaving
• Interrupt Disabling– Proses berjalan sampai ia meng-invoke suatu
layanan SO atau sampai ia diinterupsi– Disabling interrupts menjamin terwujudnya
mutual exclusion– Tidak akan bekerja pada arsitektur
multiprocessor
![Page 19: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/19.jpg)
19
Pseudo-Code
while (true) {/* disable interrupts */;/* critical section */;/* enable interrupts */;/* remainder */;
}
![Page 20: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/20.jpg)
20
Instruksi Mesin Khusus
• Instruksi Compare & Swap – Juga disebut “compare and exchange
instruction”
• Intruksi exchange
![Page 21: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/21.jpg)
21
Instruksi Compare&Swap
int compare_and_swap (int *word, int testval, int newval){
int oldval;oldval = *word;if (oldval == testval) *word = newval;return oldval;
}
![Page 22: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/22.jpg)
22
Mutual Exclusion (gambar 5.2)
![Page 23: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/23.jpg)
23
Instruksi Exchange
void exchange (int register, int memory){
int temp;temp = memory;memory = register;register = temp;
}
![Page 24: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/24.jpg)
24
Instruksi Exchange (gambar 5.2)
![Page 25: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/25.jpg)
25
Keuntungan Mutual Exclusion Hardware
• Dapat diterapkan terhadap banyak proses pada processor tunggal atau multi processor yang berbagi (sharing) main memory
• Simple, karena itu mudah diwujudkan• Dapat digunakan untuk mendukung
banyak critical section
![Page 26: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/26.jpg)
26
Kerugian Mutual Exclusion Hardware
• Busy-waiting mengkonsumsi waktu processor
• Starvation mungkin ketika suatu proses meninggalkan critical section dan lebih dari satu proses menunggu (waiting). – Beberapa proses dapat ditolak aksenya
dalam waktu tak terbatas.
• Deadlock juga mungkin
![Page 27: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/27.jpg)
27
Semaphore
• Semaphore: – Suatu nilai integer (bilangan bulat) yang
digunakan untuk pensinyalan (signalling) antar proses.
• Hanya tiga operasi dapat dikerjakan pada suatu semaphore, semuanya bersifat atomik: – initialize
– Decrement (semWait)
– increment (semSignal)
![Page 28: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/28.jpg)
28
Primitif Semaphore
![Page 29: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/29.jpg)
29
Primitif Semaphore Biner
![Page 30: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/30.jpg)
30
Semaphore Kuat & Lemah
• Antrian (queue) digunakan untuk menangani proses yang menunggu (waiting) pada semaphore– Dalam urutan bagaimana proses dihapus dari
antrian?
• Semaphore Kuat menggunakan FIFO• Semaphore Lemah tidak menentukan
urutan penghapusan dari antrian
![Page 31: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/31.jpg)
31
Contoh Mekanisme Semaphore Kuat
![Page 32: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/32.jpg)
32
Contoh Mekanisme Semaphore
![Page 33: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/33.jpg)
33
MutEx Menggunakan Semaphore
![Page 34: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/34.jpg)
34
Proses Menggunakan Semaphore
![Page 35: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/35.jpg)
35
Masalah Producer-Consumer
• Situasi Umum:– Satu atau lebih producer membangkitkan data &
menempatkannya dalam suatu buffer– Consumer tunggal mengambil item keluar buffer satu
pada satu waktu– Hanya satu producer atau consumer yang boleh
mengakses buffer pada satu waktu
• Masalahnya:– Pastikan bahwa Producer tidak dapat menambahkan
data ke dalam buffer yang penuh & comsumer tidak dapat menghapus data dari buffer kosong
Producer/Consumer Animation
![Page 36: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/36.jpg)
36
Fungsi
Producer Consumer
while (true) { /* produce item v */ b[in] = v; in++; }
while (true) { while (in <= out) /*do nothing */; w = b[out]; out++; /* consume item w */}
• Anggap suatu buffer tak terbatas b dengan suatu array linier elemen
![Page 37: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/37.jpg)
37
Buffer
![Page 38: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/38.jpg)
38
Solusi SALAH
![Page 39: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/39.jpg)
39
Scenario yang Mungkin
![Page 40: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/40.jpg)
40
Solusi BENAR
![Page 41: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/41.jpg)
41
Semaphore
![Page 42: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/42.jpg)
42
Buffer Terbatas
![Page 43: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/43.jpg)
43
Semaphore
![Page 44: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/44.jpg)
44
Fungsi dalam Bounded Buffer
Producer Consumer
while (true) {/* produce item v */while ((in + 1) % n == out)
/* do nothing */;b[in] = v;in = (in + 1) % n}
while (true) {while (in == out)
/* do nothing */;
w = b[out];out = (out + 1) % n;/* consume item w */
}
![Page 45: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/45.jpg)
45
Demo Animasi
• Producer/Consumer – Ilustrasi operasi buffer producer-consumer.
• Bounded-Buffer Problem Using Semaphores– Demontrasi masalah consumer/producer buffer
terbatas menggunakan semaphore.
![Page 46: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/46.jpg)
46
Monitor
• Monitor merupakan suatu konsepsi bahasa pemrograman yang menyediakan fungsi sama dengan semaphore & lebih mudah dikontrol.
• Diimplementasikan dalam sejumlah bahasa pemrograman, termasuk– Concurrent Pascal, Pascal-Plus,– Modula-2, Modula-3, dan Java.
![Page 47: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/47.jpg)
47
Karakteristik Utama
• Variabel data lokal hanya dapat diakses oleh monitor
• Proses memasuki monitor dengan menjalankan salah satu prosedurnya
• Hanya satu proses yang boleh berjalan (executing) dalam monitor pada satu waktu
![Page 48: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/48.jpg)
48
Sinkronisasi
• Synchronisation dicapai dengan variabel kondisi dalam suatu monitor – Hanya dapat diakses oleh monitor.
• Fungsi monitor:
–Cwait(c): Men-suspend eksekusi dari proses yang memanggil pada kondisi c
–Csignal(c) Me-resume eksekusi dari beberapa proses yang diblok setelah cwait pada kondisi yang sama
![Page 49: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/49.jpg)
49
Struktur Monitor
![Page 50: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/50.jpg)
50
Solusi Buffer Terbatas Menggunakan Monitor
![Page 51: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/51.jpg)
51
Solusi Menggunakan Monitor
![Page 52: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/52.jpg)
52
Monitor Buffer Terbatas
![Page 53: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/53.jpg)
53
Interaksi Proses
• Ketika proses berinteraksi satu dengan lainnya, dua syarat fundamental harus terpenuhi: – Sinkronisasi, dan – komunikasi.
• Message Passing adalah (satu) solusi untuk syarat kedua– Bonus: bekerja dengan shared memory &
dengan sistem terdistribusi.
![Page 54: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/54.jpg)
54
Message Passing
• Fungsi aktual dari message passing normalnya disediakan dalam bentuk pasangan primitif:– send (destination, message)– receive (source, message)
![Page 55: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/55.jpg)
55
Synchronization
• Komunikasi memerlukan sinkronisasi– Sender (pengirim) harus mengirim sebelum
receiver (penerima) dapat menerima
• Apa yang terjadi terhadap proses setelah ia menjalankan primitif send atau receive?– Sender & receiver mungkin (bisa pula tidak)
menjadi blocking (waiting for message)
![Page 56: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/56.jpg)
56
Blocking send, Blocking receive
• Sender & receiver diblok sampai message tersampaikan (delivered)
• Dikenal sebagai rendezvous• Menmungkinkan sinkronisasi ketat (tight)
antar proses.
![Page 57: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/57.jpg)
57
Non-blocking Send
• Lebih alami bagi banyak tugas pemrograman concurrent.
• Nonblocking send, blocking receive– Sender terus jalan– Receiver diblok sampai message yang
diminta tiba
• Nonblocking send, nonblocking receive– Tidak ada pihak yang harus menunggu
![Page 58: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/58.jpg)
58
Pengalamatan
• Proses pengiriman perlu mampu menentukan proses mana yang sebaiknya menerima message– Direct addressing (langsung)– Indirect Addressing (tidak langsung)
![Page 59: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/59.jpg)
59
Pengalamatan Langsung
• Primitif send menyertakan suatu pengenal (identifier) khusus dari proses tujuan
• Primitif receive segera dapat mengetahui proses mana yang menjadi tujuan message
• Primitif receive dapat memanfaatkan parameter source untuk mengembalikan suatu nilai ketika operasi receive selesai dikerjakan.
![Page 60: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/60.jpg)
60
Pengalamatan Tak Langsung
• Message dikirim ke suatu struktur shared data yang mengandung antrian (queues)
• Queues disebut pula mailboxes• Satu proses mengirimkan suatu message
ke mailbox & proses lain mengambil message dari mailbox tersebut
![Page 61: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/61.jpg)
61
Komunikasi Proses Tak Langsung
![Page 62: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/62.jpg)
62
Format Message Umum
![Page 63: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/63.jpg)
63
MutEx Menggunakan Message
![Page 64: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/64.jpg)
64
Message Producer-Consumer
![Page 65: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/65.jpg)
65
Masalah Readers-Writers
• Suatu area data dishare antar banyak proses– Beberapa proses hanya membaca area data,
beberapa hanya menulis ke area tersebut.
• Kondisi untuk dicapai:1.Banyak readers boleh membaca file at once.2.Hanya satu writer pada satu waktu yang
dapat menulis3.Jika suatu writer sedang menulis ke file, maka
tidak ada reader yang dapat membacanyainteraction of readers and writers.
![Page 66: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/66.jpg)
66
Readers Dengan Prioritas
![Page 67: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/67.jpg)
67
Writers dengan Priority
![Page 68: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/68.jpg)
68
Writers Dengan Prioritas
![Page 69: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/69.jpg)
69
Message Passing
![Page 70: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/70.jpg)
70
Message Passing
![Page 71: Sistem Operasi 2009 - Student Blogblog.ub.ac.id/.../2012/01/05-Mutual-exclution-Sinchronication.pdf · • Sentral bagi perancangan SO modern adalah pengelolaan banyak proses](https://reader033.vdocuments.pub/reader033/viewer/2022051508/5a9e55117f8b9a0d7f8d489d/html5/thumbnails/71.jpg)
71
Tugas Pertemuan 5
• Kerjakan problem 5.1 & 5.2!• Jelaskan definisi dari Proses, Thread,
Mutual Exclution, Race Condition, Sinkronisasi, Deadlock, Starvation, Monitor, dan Semaphore!
• Uraikan implementasi sinkronisasi & mutual exclusion di Windows & Linux!