Oleh : Wahyu Andhyka Kusuma

Slides:



Advertisements
Presentasi serupa
LOGO Kelompok 5 Rifki Baidhowi Ida Fitriana Satya Bagus F Sistem Operasi Kelas E Teknik Informatika Sistem Operasi Kelas E Teknik.
Advertisements

Sinkronisasi dan Deadlock Universitas Airlangga
Struktur Sistem Komputer
Kelompok 5 “Sinkronisasi Proses” Sistem Operasi Kelas F
Tim Teaching Grant Mata Kuliah Sistem Operasi
SINKRONISASI Pertemuan 5.
Dosen: Jajang Kusnendar, M.T
Arief Cahyo S Rachmad Wahyudi S Abdul Qodir Jailani M. Choirur Rozi Rahmat Aidil FR
MANAJEMEN PROSES.
Dahlan Abdullah PERTEMUAN – 6 KULIAH SISTEM OPERASI SINKRONISASI & DEADLOCK.
Concurrency M-03.
Struktur Sistem Operasi
“Process Synchronization”
Pertemuan 4 Manajemen Proses 2.
Sinkronisasi Proses Catur Iswahyudi.
Masalah Klasik Komunikasi Antar Proses
SINKRONISASI.
Sistem Operasi Sinkronisasi Proses.
SINKRONISASI DAN DEADLOCK
PERTEMUAN KE-15 PERKULIAHAN SISTEM OPERASI By : Nanda Prasetia, ST.
Sinkronisasi dan Deadlock Proses
Operating System Copyright © Mufadhol 1 SISTEM OPERASI Management Process Oleh : Mufadhol, S.Kom.
Struktur Sistem Komputer
INTERPROCESS COMMUNICATION
Sistem Operasi (Operating Systems) Minggu 4
MUTUAL EXCLUSION.
PROSES DAN SINKRONISASI
SINKRONISASI DAN DEADLOCK
Struktur Sistem Komputer
T0542 / INTERPROCESS COMMUNICATION Permasalahan: Penyampaian informasi antar proses Pengaturan proses agar tidak saling menghalangi Proper sequencing.
Sinkronisasi Proses.
Sistem Operasi Pertemuan 11.
Sistem Operasi Pertemuan 12.
Struktur Sistem Komputer
Wahyu nurjaya wk, st., m.kom.
Konkurensi.
SINKRONISASI.
PROSES BAB 2 By Abdul Kadir.
STRUKTUR SISTEM KOMPUTER
Kongkurensi (Concurrency)
Struktur Sistem Komputer
Processes Process Model Process Hierarchies
Mutual Exclusion Edi Sugiarto, S.Kom.
Penjadwalan Proses.
Sinkronisasi Proses.
SINKRONISASI & DEADLOCK
Struktur Sistem Komputer
Sinkronisasi dan Deadlock
“Sinkronisasi Proses”
SINKRONISASI PADA THREAD
BAYU PRATAMA NUGROHO, S.Kom, M.T
Konkurensi 2 Sinkronisasi dan Semaphore
Struktur Sistem Komputer
Koordinasi Antar Proses DI DALAM SISTEM TERDISTRIBUSI
Konkurensi SISTEM OPERASI Slide perkuliahan
Konkurensi SISTEM OPERASI Slide perkuliahan
SINKRONISASI DAN DEADLOCK
Struktur Sistem Komputer
ARSITEKTUR & ORGANISASI KOMPUTER
SINKRONISASI PROSES Kelompok 1 Achmad Syarifudin S Ade Putra Gustama
Struktur Sistem Komputer
Sesi 5. Sinkronisasi Proses
Struktur Sistem Komputer
SISTEM OPERASI MODUL Mutual exclusion Maria Cleopatra, S.Kom
PROSES DAN SINKRONISASI
Struktur Sistem Komputer
Oleh : Rahmat Robi Waliyansyah, M.Kom.
Struktur Sistem Komputer
Struktur Sistem Komputer
Struktur Sistem Komputer
Transcript presentasi:

Oleh : Wahyu Andhyka Kusuma 081233148591 Wahyu_dink@umm.ac.id Sinkronisasi Proses Oleh : Wahyu Andhyka Kusuma 081233148591 Wahyu_dink@umm.ac.id

Konsep Bahasan Perlunya Sinkronisasi Bounded Buffer & Race Condition Critical Section Solusi Logic : Algoritma Turn, Algoritma Flag, Algoritma Turn-Flag, Bakery Algorithm Solusi Hardware Sleep and Wake up Semaphores Monitor Message Passing The Dining Philosophers Problem Readers and Writers Problem The Sleeping Barber Problem

Mengapa Perlu Sinkronisasi ? Banyak proses yang mengakses satu data pada saat yang bersamaan Sehingga terjadi ketidakkonsistenan data Untuk itulah, sinkronisasi proses dipelukan untuk menjaga agar data tersebut tetap konsisten

Masalah yang seringkali muncul Masalah Bounded Buffer Masalah Race Condition

Masalah Bounded Buffer Counter P2 P1 + + - - P1 ( Counter ++ ) Register1 = Counter ; Register1 = Register1 + 1 ; Counter = Register1 ; P2 ( Counter - - ) Register2 = Counter ; Register2 = Register2 - 1 ; Counter = Register2 ; Seharusnya Masalah Bounded Buffer Alur Register1 = Counter ; Register1 = Register1 + 1 ; Counter = Register1 ; Register2 = Counter ; Register2 = Register2 – 1 ; Counter = Register2 ; Alur Register1 = Counter ; Register1 = Register1 + 1 ; Register2 = Counter ; Register2 = Register2 – 1 ; Counter = Register1 ; Counter = Register2 ;

Masalah Race Condition Race Condition adalah suatu kondisi dimana beberapa proses mengakses dan memanipulasi suatu data secara konkuren. Nilai akhir dari data tersebut tergantung dari proses mana yang terakhir selesai dieksekusi. Contoh pada masalah Bounded Buffer di atas sebenarnya sudah menggambarkan terjadinya Race Condition. P1 dan P2 saling berlomba meng-update nilai counter sehingga pada suatu waktu, nilai counter-nya bisa salah. Untuk menghindari Race Condition inilah dilakukan apa yang dinamakan Proses Sinkronisasi.

PROBLEMA CRITICAL SECTION

Apa itu Critical Section ?? Kunci untuk mencegah terjadinya Race Condition adalah dengan mencegah suatu proses melakukan manipulasi data secara bersamaan Suatu code proses terdiri dari beberapa bagian : Critical Section adalah bagian dari code proses yang berisi code-code untuk memanipulasi suatu data PROSES Entry Section Critical Section Exit Section Remainder Section

Solusi Dari Problema Critical Section Solusi yang baik harus memenuhi 3 syarat berikut: Mutual Exclution Tidak ada proses yang menjalankan critical section bersamaan Terjadi Kemajuan ( Progress ) Proses yang sedang menjalankan Remainder Sectionnya, tidak boleh menjalankan Critival Section berikutnya sebelum proses lain menyelesaikan Critical Sectionnya Ada Batas Waktu ( Bounded Waiting ) Ada batas waktu suatu proses dapat menjalankan critical sectionnya

Jenis-Jenis Solusi Critical Section Dua Jenis Solusi Critical Section Solusi Perangkat Keras Solusi Perangkat Lunak

SOLUSI PERANGKAT LUNAK Solusi sinkronisasi untuk 2 proses : Algoritma Turn Algoritma Flag Algoritma Turn-Flag Solusi sinkronisasi untuk banyak proses : Bakery Algorithm ( Algoritma Tukang Roti )

Algoritma Turn Hanya proses yang mempunyai ID yang sama dengan ID giliran (Turn) yang boleh masuk ke critical sectionnya

Algoritma Flag Setiap proses berusaha untuk mengecek state (keadaan) proses yg lain. Jika proses lain sedang berada di critical sectionnya, maka dia akan menunggu sampai proses lain tersebut keluar dari state critical sectionnya.

Algoritma Turn-Flag Merupakan penggabungan antara algoritma Turn dan algoritma Flag.

Bakery Algorithm Ketika memasuki toko, setiap pelanggan menerima sebuah nomor. Sayangnya, tukang roti tidak dapat menjamin bahwa dua proses (dua pelanggan) tidak akan menerima nomor yang sama. Dalam kasus di mana dua proses menerima nomor yang sama, maka proses dengan nomor ID terkecil yang akan dilayani dahulu. Jadi, jika Pi dan Pj menerima nomor yang sama dan i < j, maka Pi dilayani dahulu.

Solusi Perangkat Keras Ada 2 metode yang umum digunakan : Processor Synchronous Memory Synchronous

Processor Syncronous Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt yang digunakan secara intensif. Sistem time-shared yang sering diimplementasikan dengan algoritma RR (Round Robin), memanfaatkan mekanisme interrupt di CPU Teknisnya, akan ada suatu interrupt ( yang biasanya adalah timer interrupt ) yang secara berkala akan menginterrupt sistem

Processor Synchronous ….( 2 ) Jika kita dapat menon-aktifkan interrupt pada saat sebuah proses berada di dalam critical section maka permasalahan dari sinkronisasi dapat diselesaikan Contoh program dari prosesor Atmel ARMtm mainModul: 00 CLI ' masuk ke Critical Section dengan cara ' men-disable interrupt 01 ADD r1,r2 ' Critical Section 02 .... ' Critical Section 03 SBI ' pergi dari Critical Section dengan cara ' meng-enable interrupt 04 .. ' Remainder Section

Processor Synchronous ….( 3 ) Mekanisme ini sudah cukup mengatasi isu yang ada Mekanisme ini tidak dapat diterapkan dengan baik di lingkungan multiprocessor Hal ini disebabkan jika kita menon-aktifkan interrupt, maka yang akan dinon-aktifkan hanyalah satu prosesor saja, sehingga dapat mengakibatkan terjadinya hal-hal yang tidak diinginkan Back

Memory Synchronous Mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori, dan jika suatu proses berhasil mengubah nilai ini, maka proses tersebut akan meneruskan ke instruksi selanjutnya jika tidak, maka proses ini akan berusaha terus untuk mengubah nilai tersebut Keunggulan dari memory synchronous adalah pada lingkungan multiprocessor, semua processor akan terkena dampak ini Semua proses yang berada di processor, yang ingin mengakses critical section, meskipun berada di processor yang berbeda-beda, akan berusaha untuk mengubah nilai yang dimaksud

Memory Synchronous …. ( 2 ) Keunggulan dari memory synchronous adalah pada lingkungan multiprocessor, semua processor akan terkena dampak ini Semua proses yang berada di processor, yang ingin mengakses critical section, meskipun berada di processor yang berbeda-beda, akan berusaha untuk mengubah nilai yang dimaksud

Memory Synchronous …. ( 3 ) Mekanisme ini memiliki suatu syarat yang harus dipenuhi yaitu perlunya perangkat keras mempunyai kemampuan untuk membuat suatu instruksi dijalankan secara atomic

Instruksi Atomic instruksi atomic adalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Instruksi yang dimaksud di sini adalah instruksi- instruksi pada high-level programming Sebagai contoh: i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sebagai berikut: 00 Load R1,i ' load nilai i ke register 1 01 Inc R1 ' tambahkan nilai register 1 dengan angka 1 02 Store i,R1 ' simpan nilai register 1 ke i

Instruksi Atomic …. ( 2 ) instruksi baris 00-02 bersifat atomic, tetapi i++ tidak bersifat atomic Jikalau instruksi ini (i++) bersifat atomic, maka ketiga instruksi mesin tsb tidak akan diganggu dengan interrupt instruksi ini bukanlah seperti pada processor synchronous yang mana akan mematikan interrupt terlebih dahulu, tetapi instruksi ini sudah build-in di processor

Instruksi Atomic …. ( 3 ) Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu: mengimplementasi instruksi yang build-in mengimplementasi processor mampu membuat suatu instruksi menjadi atomic Intel Pentium ternyata memakai cara yang kedua, yaitu dengan adanya suatu perintah LOCK-Assert. Dengan perintah ini maka semua instruksi dapat dijadikan atomic. Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap

Peran Perangkat Keras Dalam Proses Sinkronisasi Sebelum adanya berbagai macam teknik sinkronisasi seperti saat ini, para programmer cenderung menggunakan fasilitas yang disediakan oleh perangkat keras dari komputer untuk melakukan sinkronisasi Pendekatan melalui perangkat lunak cenderung sulit dan kompleks diimplementasikan, selain itu dapat menyebabkan turunnya kinerja dari suatu produk yang dibuat

Review Pada pembahasan sebelumnya.. Algoritma turn Algoritma flag Algoritma peterson’s (turn & flag) Algoritma diatas dapat menjadi solusi atas berbagai masalah seperti : mutual exclusion dan progres, akan tetapi tidak untuk busy waiting.

Sleep and Wake up Solusi pertama adalah sleep dan wake up. Sleep adalah system call yang mengakibatkan dihentikan sementara sebuah proses, sampai proses lain membangunkan. Wake up adalah system call yang mengakibatkan sebuah proses terbangun.

Sleep and Wake up (next..) Masalah yang timbul kemudian signal wake up tidak tersampaikan karena berbagai kondisi, sehingga kedua proses akan sleep forever. Solusi untuk kasus diatas adalah dengan menggunakan wake up waiting bit. Ketika proses berjalan maka wake up waiting bit di set on pada saat proses akan sleep maka proses akan diset off

Semaphores Semaphore dalam OS adalah integer yang digunakan sebagai signal diantara beberapa proses, 3 operasi dalam semaphore yaitu : inisialisasi, increment (up) & decrement (down). Up berlaku pada saat unblocking process. Down berlaku pada saat blocking process

Semaphores (next..) Operasi down adalah atomic, dan tidak dapat diinterupsi sebelum diselesaikan. Operasi ini menurunkan nilai semaphore, jika nilainya menjadi non positif (<=0) maka proses yang mengeksekusi di block. Operasi up adalah menaikkan nilai semaphore.

Fungsi Semaphores Mutual exclusion : Thread yang akan memasuki critical section harus memanggil fungsi down (nilai semaphore <=0), jika tidak ada thread yang lain dalam critical section maka thread menggunakan critical section, jika ada maka thread menunggu, kemudian setelah selesai thread memanggil fungsi up (nilai semaphore > 0)

Fungsi Semaphores Mutual exclusion (next..): Thread A Thread B Count = Count +1 Thread A Thread B Down (mutex) Count = Count + 1 Count = Count +1 Up (mutex)

Fungsi Semaphores Mutual exclusion (next..): Semaphore mutex adalah binary semaphore dengan nilai awal 1 Thread manapun yang mengeksekusi down terlebih dahulu akan terus jalan, sedangkan yang datang kemudian akan menunggu sampai up dieksekusi.

Fungsi Semaphores Resource Controller (next..): Semaphore menyimpan banyaknya resource yang tersedia, saat thread ingin menggunakan resource maka thread menggunakan fungsi down, jika resource tersedia maka thread dapat langsung menggunakannya, jika masih digunakan, maka resourse menunggu sampai fungsi up dieksekusi.

Fungsi Semaphores Resource Controller (next..): Thread A Thread B Thread C Critical Section Thread A Thread B Thread C Down (multiplex) Critical Section Up (multiplex)

Fungsi Semaphores Resource Controller (next..): Semaphore multiplex adalah counting semaphore dengan nilai awal sesuai kapasitas resource.

Fungsi Semaphores Sinkronisasi antar proses: Bertujuan untuk mengatur urutan eksekusi thread Thread A Thread B Count = Count +1 Count = Count *2 Thread A Thread B Count = Count + 1 Down (mutex) Up (mutex) Count = Count *2

Fungsi Semaphores Sinkronisasi antar proses (next..): Semaphore spinlock kondisi dimana thread berada dalam waiting loop dan loop tersebut tidak menghasilkan apapun (busy waiting) Mengatasi spinlock dengan waiting queue yaitu dengan memindahkan thread yang menunggu ke waiting queue, dan menghentikan prosesnya.

Fungsi Semaphores Sinkronisasi antar proses (next..): Pada semaphore yang telah dimodifikasi ini, terdapat nilai negatif yang menggambarkan jumlah thread dalam waiting queue.

Keuntungan Semaphores dari segi programming, penanganan masalah sinkronisasi dengan semaphore umumnya rapi dan teratur, sehingga mudah untuk dibuktikan kebenarannya. semaphore diimplementasikan dalam hard code sehingga penggunaannya bersifat portabel.

Monitors Monitor adalah suatu tipe data abstrak yang dapat mengatur aktivitas serta penggunaan resource oleh beberapa thread. Monitor terdiri atas data-data private dengan fungsi public. Method-method monitor hanya ada satubuah method yang dapat bekerja pada suatu saat.

Monitors Ruang Tunggu Masuk enter Ruang Kontrol acquire Owning Release Ruang Tunggu Dalam Waiting queue

Monitors Tipe data Condition : Wait, menghentikan kerja thread. Signal, membangunkan thread yang sedang menunggu. Operasi ini hanya membangunkan satu thread. Perbedaan antara signal dan up, signal tidak akan memproses apapun jika tidak terdapat thread yg menunggu.

Monitors Penggunaan semafor kurang praktis. Sebab kesalahan pada semafor tidak dapat dideteksi oleh compiler. Keuntungan memakai monitor: Kompilator yang telah mengimplementasikan monitor akan memastikan bahwa resource yang dapat diakses oleh beberapa thread dilindungi oleh monitor, sehingga prinsip mutual exclusion tetap terjaga. Kompilator bisa memeriksa kemungkinan adanya deadlock.

Message Passing Message Passing hampir sama dengan semaphore dan berbeda dengan monitor. Menggunakan dua kondisi yakni send dan receive Message Passing digunakan pada problem yang tidak dapat diatasi oleh semaphore dan monitor, mis : Proses komunikasi antar mesin dalam network.

Message Passing Dalam kasus produsen – konsumen, maka message yang di pertukarkan berisi informasi mengenai kondisi produsen maupun konsumen. Untuk menfasilitasi kecepatan akses message disalah satu bagian (di produsen atau di konsumen), maka di sediakan mailbox dalam buffer.

Classical I.P.C Problem The Dining Philosophers Problem 4/10/2017 6:13 PM Classical I.P.C Problem The Dining Philosophers Problem Di temukan 1965 oleh djikstra, digambarkan sebagai berikut, 5 filosof melingkari meja, setiap filosof memiliki sepiring spageti, spageti yang mereka makan sangat licin (?) sehingga mereka butuh 2 garpu untuk memakannya. Diantara 2 piring spageti terdapat 1 garpu. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem The Dining Philosophers Problem 4/10/2017 6:13 PM The Dining Philosophers Problem Classical I.P.C Problem © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem The Dining Philosophers Problem (next..) 4/10/2017 6:13 PM Classical I.P.C Problem The Dining Philosophers Problem (next..) Kehidupan filosof terdiri dari 2 kondisi yaitu makan dan berfikir, ketika seseorang lapar, maka dia akan berusaha mendapatkan garpu kanan dan kiri sekaligus, jika berhasil maka dia akan makan sementara waktu kemudian melanjutkan berpikir. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem The Dining Philosophers Problem (next..) 4/10/2017 6:13 PM Classical I.P.C Problem The Dining Philosophers Problem (next..) Solusi : Menggunakan array state dengan menciptakan 3 kondisi. Kondisi tersebut ialah makan (eating), think (berpikir) dan lapar (hungry) © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem The Dining Philosophers Problem (next..) 4/10/2017 6:13 PM Classical I.P.C Problem The Dining Philosophers Problem (next..) Dengan kondisi demikian, jika filosof = 1, maka LEFT = 2, dan RIGHT = 3. untuk prosedur seperti ini, maka array dari semaphore hungry dapat ditahan jika LEFT atau RIGHTnya sedang eating. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem Readers and Writers Problem 4/10/2017 6:13 PM Classical I.P.C Problem Readers and Writers Problem Banyak thread bisa berbagi sumber daya penyimpanan yang sama. Ada thread yang membaca, ada juga yang menulis. Thread yang membaca disebut readers (pembaca), dan menulis disebut writers (penulis). Jika lebih dari satu thread mengakses data yang sama pada satu waktu, bisa terjadi korupsi data. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem Readers and Writers Problem (next..) 4/10/2017 6:13 PM Classical I.P.C Problem Readers and Writers Problem (next..) Kondisi yang harus dipenuhi : Sebuah objek data bisa dibaca oleh beberapa thread secara simultan. Sebuah objek data yang sedang ditulis oleh sebuah thread tidak dapat dibagi aksesnya kepada thread yang lain baik pembaca maupun penulis. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem Readers and Writers Problem (next..) 4/10/2017 6:13 PM Classical I.P.C Problem Readers and Writers Problem (next..) “Writer harus memiliki akses yang eksklusif terhadap suatu objek data, sehingga tidak boleh ada proses lain yang mengakses sebuah objek yang sedang diakses oleh writer.” © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem Readers and Writers Problem (next..) 4/10/2017 6:13 PM Classical I.P.C Problem Readers and Writers Problem (next..) Solusinya adalah dengan menggunakan semaphore. P()(atau wait(), tunggu(), dan lain-lain). Berfungsi sebagai up method. V()(atau signal(), sinyal(), dan lain-lain). Berfungsi sebagai down method. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem The Sleeping Barber Problem 4/10/2017 6:13 PM Classical I.P.C Problem The Sleeping Barber Problem Permasalahan dalam IPC selanjutnya adalah tukang cukur rambut (barber), barber shop terdiri dari satu orang tukang cukur, 1 buah kursi untuk cukur rambut, dan n kursi untuk menunggu antrian cukur rambut. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem The Sleeping Barber Problem (next..) 4/10/2017 6:13 PM Classical I.P.C Problem The Sleeping Barber Problem (next..) Ketika tidak ada pelanggan yang sedang mencukur rambut, atau tidak ada yang sedang mengantri di kursi tunggu, maka tukang cukur akan tidur dikursi cukur. Ketika pelanggan datang, maka pelanggan akan membangunkan tukang cukur yang sedang tertidur. (sleeping barber). © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem The Sleeping Barber Problem (next..) 4/10/2017 6:13 PM Classical I.P.C Problem The Sleeping Barber Problem (next..) © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Classical I.P.C Problem The Sleeping Barber Problem (next..) 4/10/2017 6:13 PM Classical I.P.C Problem The Sleeping Barber Problem (next..) Solusi untuk permasalahan ini ialah dengan menggunakan 3 buah semaphore : Customer (tidak termasuk yg dikursi cukur) Barber (0 dan 1) Mutex (mutual exclusion) Dan menggunakan 1 variable waiting © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.