Bab 22. Perangkat Sinkronisasi II kelompok 113.22 Femphy Pisceldo 1204000335 Hendra Dwi Hadmanto 1204000416 Zoni Yuki Haryanda 1204000955 Sebagian dibuat dengan SoftWare Bayar yang dibajak (MS. PowerPoint), dan sebagian lagi Bayar lho... Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Latar Belakang Semafor: - Termasuk Low Level - Kesulitan dalam pemeliharaannya, karena tersebar dalam seluruh program. - Menghapus wait, dapat menyebabkan non- mutual exclusion. - Menghapus signal dapat menyebabkan deadlock - Salah meletakkan code menyebabkan error!!! - Error yang terjadi sulit untuk dideteksi Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Transaksi Atomik • Transaksi yang dilakukan secara keseluruhan, atau tidak sama sekali • Penting untuk mencegah Race Condition • Biasanya dilakukan dengan menandai bagian yang dimulai dan diakhiri, atau dengan menyimpan data sebelum terjadi perubahan Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Transaksi Atomik (cont..) • Contoh : Transaksi perbankan Instalasi program
Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Critical Region • Critical Region adalah bagian Code yang selalu dieksekusi di bawah Mutual Eksklusif • Disediakan oleh Compiler
Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Kondisi critical region Perhatikan code berikut: region v when B do begin ... end; Dengan B adalah boolean. Cara kerja: 1. Proses yang ingin masuk region v harus mencapai mutex. Jika tidak maka masuk dalam queue Femphy, Hendra, Zoni silahkan menggandakan Slide ini
2. Ketika lock didapat, lalu boolean B ditest. Jika true, maka proses akan dilakukan, jika tidak, maka lock akan dilepaskan dan proses masuk dalam queue. Ketika lock didapat kembali, maka B harus ditest kembali.
Antrian pada critical region • Terdapat 2 antrian, yaitu main queue, dan event queue. • Main queue menampung proses yang ingin masuk critical region, tetapi critical region masih dipakai untuk proses lain • Event queue menampung proses yang tidak dapat masuk critical region karena nilainya false Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Kelemahan Critical Region • Lebih sulit untuk diimplementasi dibandingkan semafor • Masih tersebar dalam kode program. • Tidak ada kontrol terhadap manipulasi variabel yang diproteksi. • Bila sebuah proses memasuki critical region, ia dapat memanipulasi variabel yang diakses bersama-sama tersebut. Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Monitor • Monitor diperkenalkan oleh Hoore (1974)dan Brinch Hansen (1975) • Dibangun dari sekumpulan operator yang telah didefinisikan programmer dan merupakan kumpulan dari prosedur, variabel, dan struktur data dalam satu modul. • Hanya dapat diakses dengan menjalankan fungsinya Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Syntax sebuah monitor: monitor monitor-name { shared variable declarations Procedure body P1 (....){ ...... } Procedure body P2 (....){ ...... } . . . . . Procedure body Pn (....){ ...... } { initialization code } }
Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Pemrograman Java • Kata kunci alat sinkronisasi pada Java: synchronized • Deadlock à wait(), dan notify() • Diilhami konsep monitor • Menggunakan semafor sebagai primitif à transparan(tidak bisa diraba dan diketahui)
Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Masalah Umum Sinkronisasi (Pengantar..)
• Masalah Bouded Buffer(producer/ consumer) • Masalah Readers/Writers • Masalah Dining Philosopher
Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Sinkronisasi Kernel Linux • Penjadualan kernel • Problematika apabila berbagai task mencoba untuk meng akses struktur data yang sama.
• Solusi Linux Teknik Pertama : membuat normal kernel code nonpreemptible. Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Sinkronisasi Kernel Linux (cont..) • Teknik kedua Dipakai untuk Critical section yang muncul pada Interrupt Service routines. Alat dasarnya adalah perangkat keras interrupt-control pada Processor.
• Implementasi Dengan memisahkan interrupt service routine menjadi dua seksi : the top half dan the button half Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Sinkronisasi Kernel Linux (cont..) • The Top Half Interupsi yang normal dan berjalan dengan rekursif interrupt ditiadakan.
• The Button Half Berjalan dengan semua interusi dijalankan.
Femphy, Hendra, Zoni silahkan menggandakan Slide ini
Rangkuman • Critical Region Bagian code yang selalu dijalankan dalam kondisi Mutual Exclusive
• Monitor merupakan kumpulan dari prosedur, variable, dan struktur data dalam satu modul.
Femphy, Hendra, Zoni silahkan menggandakan Slide ini