Selamat Pagi

45
Selamat Pagi Sinkronisasi dan Deadlock Oleh ; Theresia Lulu Indah. K NIM : 081310113003 D3 – Sistem Informasi Universitas Airlangga

description

Selamat Pagi . Sinkronisasi dan Deadlock Oleh ; Theresia Lulu Indah. K NIM : 081310113003 D3 – Sistem Informasi Universitas Airlangga. Bab Presentasi. 2. Sinkronisasi Pengertian Sinkronisasi Manfaat Sinkronisasi Masalah Klasik dalam Sinkronisasi Perangkat Sinkronisasi - PowerPoint PPT Presentation

Transcript of Selamat Pagi

Page 1: Selamat Pagi

Selamat Pagi

Sinkronisasi dan DeadlockOleh ;

Theresia Lulu Indah. KNIM : 081310113003D3 – Sistem InformasiUniversitas Airlangga

Page 2: Selamat Pagi

Bab Presentasi1. Deadlock- Pengertian Deadlock- Ilustrasi Deadlock- Penyebab Deadlock- Cara Mengatasi

Deadlock- Menghindari Deadlock- Deadlock di Linux

2. Sinkronisasi- Pengertian Sinkronisasi- Manfaat Sinkronisasi- Masalah Klasik dalam Sinkronisasi- Perangkat Sinkronisasi- Masalah Lain Sinkronisasi

Page 3: Selamat Pagi

Deadlock

Page 4: Selamat Pagi

Pengertian Deadlock

Deadlock adalah keadaan dimana 2 atau lebihproses saling menunggu meminta resourcesuntuk waktu yang tidak terbatas lamanya.Analoginya seperti pada kondisi jalan rayadimana terjadi kemacetan parah. Deadlock

adalah efek samping dari sinkronisasi, dimanasatu variabel digunakan oleh 2 proses.

Page 5: Selamat Pagi

Ilustrasi Deadlock

Page 6: Selamat Pagi

Ilustrasi Deadlock

Page 7: Selamat Pagi

Ilustrasi Deadlock

Page 8: Selamat Pagi

Penyebab Deadlock1. Mutual Exclusion : Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses pada suatu waktu.2. Hold and Wait : Kondisi yang menyatakan proses-proses yang sedang memakai suatu sumber daya dapat meminta sumber daya yang lain.3. Circular Waiting : Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya yang dimiliki oleh suatu proses oleh proses lainnya.4. No Preemptive : Kondisi dimana suatu sumber daya yang sedang berada pada suatu proses tidak dapat diambil secara paksa dari proses tersebut,sampai proses itu melepaskannya.

Apabila ada salah satu dari antara 4 syarat diatas yang tidak terpenuhi,makatidak bisa disebut dengan Deadlock.

Page 9: Selamat Pagi

Cara Mengatasi Deadlock

Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku

Avoidance : sistem menolak request terhadap resource yang berpotensi deadlock, Algoritma Banker

Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya, kemudian melakukan recovery, Algoritma Ostrich

Page 10: Selamat Pagi

Prevention

• Mutual Exclusion : membuat file spool untuk resource yang digunakan bersama-sama

• Hold and Wait : memaksa sebuah proses untuk melepaskan resource yang dimilikinya ketika meminta resource baru

• Circular Waiting : memberikan penamaan resource berdasarkan urutan atau level• No Preemption : membolehkan adanya

preemption

Page 11: Selamat Pagi

Avoidance

• Resource manager menolak proses yang meminta resource yang berpotensi deadlock

• Jika ada permintaan resource yang maksimum digunakan, maka proses tersebut akan dipaksa untuk melepaskan resource yang sudah dimiliknya.

Page 12: Selamat Pagi

Detection and Recovery

• Membiarkan deadlock terjadi lalu mendeteksinya kemudian melakukan tindakan recovery seperlunya

• Algoritma yang paling dikenal adalah algoritma Ostrich

• Tindakan recovery yang dilakukan adalah : melakukan preemption, membuat checkpoint untuk rollback lalu membunuh proses yang prioritasnya kecil.

Page 13: Selamat Pagi

Cara Menghindari Deadlock

• Kondisi Aman ( Safe State ) : Suatu keadaan dapat dinyatakan sebagai safe state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. Dengan cara mengikuti urutan tertentu.

• Kondisi Tak Aman (Unsafe state) : Suatu state dinyatakan sebagai unsafe state jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan.

Page 14: Selamat Pagi

Ilustrasi Safe dan Unsafe State

Page 15: Selamat Pagi

Deadlock di Linux

• Linux dengan kernel versi 2.4 mengalami deadlock pada sistem dengan prosesor lebih dari 2 unit

• Deadlock ini pada umumnya terjadi bila akses melalui Ethernet dilakukan, terutama bila melakukan teaming pada jaringan. Proses akan terblock dan saling menunggu resource Ethernet tersebut bebas.

Page 16: Selamat Pagi

Deadlock Linux

• Beberapa kasus deadlock juga terjadi ketika OS Linux dijalankan dari kondisi sleep, proses yang mengakses USB device akan mengalami deadlock

• Hal ini disebabkan fungsi scheduler pada kernel yang digunakan tidak menyimpan state sebelum sleep, sehingga ketika kernel dijalankan kembali, Proses-proses yang mengakses USB device tersebut menunggu giliran mengakses, sementara scheduler belum menjadwalkan masing-masing proses.

Page 17: Selamat Pagi

Sinkronisasi

Page 18: Selamat Pagi

Pengertian Sinkronisasi

Akses bebarengan untuk berbagi dua bersamadapat mengakibatkan inkosistensi data.Pemeliharaan konsistensi data memerlukanmekanisme untuk memastikan eksekusi dariproses kerjasama.

Page 19: Selamat Pagi

Perangkat Sinkronisasi

• Monitor digunakan untuk menangani masalah yang muncul karena pemakaian Semaphore. Monitor menjamin mutual exclusion. Untuk menangani masalah sinkronisasi yang lebih rumit monitor menyediakan condition variabel

• JVM, mengimplementasikan monitor. Monitor JVM bekerja dengan object locking dan method – method wait() serta notify. Monitor JVM dapat digunakan dengan menggunakan keyword synchronized.

Page 20: Selamat Pagi

Manfaat Sinkronisasi

Sebagai penyimpan data sementara dan nonSementara pada kehidupan kita yang sekarangserba komputer dalam mengerjakan semuapekerjaan dari anak SMP, SMA sampai sudahbekerja kantoran pasti membutuhkanpenyimpan data agar dapat memudahkanpekerjaan dalam semua bidang.

Page 21: Selamat Pagi

Masalah Klasik dalam Sinkronisasi

Masalah Klasik Sinkronisasi dapat dibedakanmenjadi 3 :1. Bounded – Buffer Problem2. Readers and Writers Problem3. Dining Philosophers Problem

Page 22: Selamat Pagi

Pengertian Bounded –Buffer Problem

Bounded buffer merupakan suatu struktur data yang mampu untukmenyimpan beberapa nilai dan mengeluarkannya kembali ketikadiperlukan . Jika dianalogikan bounded buffer ini akan mirip dengansebuah tumpukan piring. Kita menaruh piring dan menaruh lagisebuah piring, ketika ingin mengambil piring maka tumpukan yangpaling atas yang akan terambil.Jadi piring terakhir yang dimasukanakan pertama kali diambil.

Page 23: Selamat Pagi

Ilustrasi Bounded – Buffer Problem

Page 24: Selamat Pagi

Solusi Bounded – Buffer Problem

Solusi Shared Memory untuk Bounded – Buffer,mengijinkan (n-1) items di dalam buffer untuksuatu waktu tertentu.

Page 25: Selamat Pagi

Pengertian Readers and Writers Problem

Readers and Writers Problem adalah problemyang memodelkan proses yang mengaksesdatabase. Masalah ini timbul ketika ada dua proses ataulebih berbagi data yang sama. Data yangdimaksud disini bisa berbentuk buffer, file atauobjek dari suatu program

Page 26: Selamat Pagi

Ilustrasi Readers and Writers Problem

Page 27: Selamat Pagi

Solusi Readers and Writers Problem

a. Pembaca di prioritaskanb. Penulis di prioritaskanc. Kedua jenis proses mempunyai prioritas yang

sama.

Page 28: Selamat Pagi

Solusi Pembaca di Prioritaskan

Reader tidak akan menunggu reader(s) lain yangsedang membaca, walaupun ada writeryang sedang menunggu. Dengankatalain,Jika ada reader yang datang ketika reader lainsedang membaca dan sebuah writer sedangmenunggu, maka reader yang baru datang tersebutakan langsung mendapat giliran untuk membaca.Write rakan ditunda pengerjaannya.

Page 29: Selamat Pagi

Solusi Penulis di Prioritaskan

Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang memulai untuk membaca data.

Page 30: Selamat Pagi

Solusi Kedua Jenis Punya Prioritas Sama

Tidak ada prioritas khusus yang diberikan kepada kedua jenis proses

Page 31: Selamat Pagi

Sejarah Dining Philosophers Prolem

Masalah ini pertama ini pertama kali ditulis dandiselesaikan oleh Djikstra pada tahun 1965.Masalah inimemodelkan masalah enkapsulasi dari ketergantunganmesin dan masalah portabilitas. Dalam masalah DiningPhilosophers, diketahui sejumlah (N) filusuf yang hanyamemiliki tiga status, berpikir, lapar, dan makan. Semuafilusuf berada di sebuah meja makan bundar yang ditatasehingga di depan setiap filusuf ada sebuah piring berisimie dan di antara dua piring yang bersebelahan terdapatsebuah sumpit.

Page 32: Selamat Pagi

Ilustrasi Dining – Philosophers Problem

Page 33: Selamat Pagi

Solusi Dining – Philosophers Problem

Solusi Dining – Philosophers Problem ada dua,yakni :a. Solusi Waiterb. Solusi Hierarki Resource

Page 34: Selamat Pagi

Solusi Waiter

Solusi Waiter : solusi sederhana ini dilakukan denganmengadakan seorang waiter yang senantiasa mengawasipenggunaan sumpit di meja makan. Ketika empat buah(dua pasang) sumpit sedang dipakai,orang berikutnyayang ingin memakai sumpit harus meminta izin kepadasang waiter, yang hanya dapat diberi ketika salah satusumpit telah selesai terpakai.

Page 35: Selamat Pagi

Solusi Hierarki ResourceSolusi Hirarki Resource: resources (sumpit) di meja makan telahdiberi susunan hirarki. Setiap permintaan orang terhadap sebuahsumpit harus dilakukan pada susunan tertentu, dandikembalikan pada susunan sebaliknya. Dalam hal ini, setiaporang dapat mengambil sumpit dimanapun diatas mejamisalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari1 sampai 5, seseorang hanya dapat mengambil sumpit dengannomor yang paling rendah, kemudian mengambil sumpit yangsetingkat lebih tinggi. Ketika ia hendak mengembalikannya,orang itu harus meletakkan sumpit dengan nomor yang lebihtinggi terlebih dahulu, lalu yang rendah.

Page 36: Selamat Pagi

Contoh Kasus Dining – Philosophers Problem

Pada sebuah computer tentunya terdapat aplikasi-aplikasi yang dapatmemudahkan kita untuk melakukan suatu pekerjaan. Namundisamping kemudahan yang diberikan, terdapat ancaman negativeyang dapat aplikasi-aplikasi itu berikan pada computer kita jika kitatidak menggunakannya dengan benar. Suatu contoh ketika kitamengerjakan suatu tugas. Kita membuka dan menjalankan beberapaaplikasi secara bersamaan. Aplikasi yang kita gunakan misalnya ms.Word (membuka 6 file word sebagai sumber tugas), winamp untukmemainkan lagu, firefox untuk browsing internet, pidgin untuk sesekalichating, sementara itu aplikasi start up yang berjalan juga banyak dan RAMyang tersedia tidak begitu besar sehingga hal ini akan membuat computermenjalankan aplikasi itu terus-menerus jika kita tidak mematikannya. Hal iniakan membuat computer berjalan semakin lambat dan memungkinkanterjadinya starvation atau deadlock dalam beberapa waktu kemudian.

Page 37: Selamat Pagi

Masalah Lain pada Sinkronisasi

Masalah pada Sistem Operasi Sinkronisasi bisaterdapat dari masalah lainnya seperti MasalahRace Condition & Critical Section. • Arti dari Race Conditon adalah situasi di mana

beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan.

• Arti dari masalah Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya bersama diakses

Page 38: Selamat Pagi

Solusi untuk Race SectionBagian dari program dimana shared memory diakses disebut Critical Section atau Critical Region. Walaupun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4 kondisi agar menghasilkan solusi yang baik:

• Tidak ada dua proses secara bersamaan masuk ke dalam critical section.

• Tidak ada asumsi mengenai kecepatan atau jumlah cpu.• Tidak ada proses yang berjalan di luar critical secion.• Tidak ada proses yang menunggu selamanya untuk masuk critical

section.

Page 39: Selamat Pagi

Kode Critical Section

• Entry Section : kode yang digunakan untuk masuk ke dalam critical section

• Critical Section : Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu.

• Exit Section: akhir dari critical section, mengizinkan proses lain.

• Reminder Section : kode istirahat setelah masuk ke critical section

Page 40: Selamat Pagi

Solusi untuk Critical Section• Mutual exclution : Jika proses pi sedang mengeksekusi critical

section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.

• Progress : Jika tidak ada proses yang sedang dieksekusi dalam critical section dan ada beberapa proses yang ingin masuk ke critical section mereka, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bias ditunda.

• Bounded Waiting :Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta masuk ke critical section dan sebelum permintaan itu diterima.

Page 41: Selamat Pagi

Semaphore

Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Variabel khusus untuk penanda ini disebut semaphore. Semaphore mempunyai dua sifat, yaitu:

• Semaphore dapat diinisialisasi dengan nilai non-negatif.• Terdapat dua operasi terhadap semaphore, yaitu Down

dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.

Page 42: Selamat Pagi

Operasi Down

Operasi ini menurunkan nilai semaphore, jikanilai semaphore menjadi non-positif makaproses yang mengeksekusinya diblocked.

Page 43: Selamat Pagi

Operasi Up

Operasi Up menakkan nilai semaphore. Jika satuproses atau lebih diblocked pada semaphore itutak dapat menyelesaikan operasi Down, maka

salah satu dipilih oleh system danmenyelesaikan operasi Down-nya.

Page 44: Selamat Pagi

Monitors

Monitor adalah kumpulan prosedur, variabeldan struktur data di satu modul atau paketkhusus.Properti-properti monitor adalah sebagai berikut:• Variabel-variabel data lokal, hanya dapat diakses oleh

prosedur-prosedur dala monitor dan tidak oleh prosedur di luar monitor.

• Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus mengimplementasi ini(mutual exclusion), dll.

Page 45: Selamat Pagi

Terimakasih