Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehAnanta Hati Telah diubah "10 tahun yang lalu
1
Sinkronisasi dan Deadlock Universitas Airlangga
Selamat Pagi Sinkronisasi dan Deadlock Oleh ; Theresia Lulu Indah. K NIM : D3 – Sistem Informasi Universitas Airlangga
2
Bab Presentasi 2. Sinkronisasi Pengertian Sinkronisasi
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
3
Deadlock
4
Pengertian Deadlock Deadlock adalah keadaan dimana 2 atau lebih proses saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya. Analoginya seperti pada kondisi jalan raya dimana terjadi kemacetan parah. Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh 2 proses.
5
Ilustrasi Deadlock
6
Ilustrasi Deadlock
7
Ilustrasi Deadlock
8
Penyebab Deadlock 1. 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,maka tidak bisa disebut dengan Deadlock.
9
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
10
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
11
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.
12
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.
13
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.
14
Ilustrasi Safe dan Unsafe State
15
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.
16
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.
17
Sinkronisasi
18
Pengertian Sinkronisasi
Akses bebarengan untuk berbagi dua bersama dapat mengakibatkan inkosistensi data. Pemeliharaan konsistensi data memerlukan mekanisme untuk memastikan eksekusi dari proses kerjasama.
19
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.
20
Manfaat Sinkronisasi Sebagai penyimpan data sementara dan non Sementara pada kehidupan kita yang sekarang serba komputer dalam mengerjakan semua pekerjaan dari anak SMP, SMA sampai sudah bekerja kantoran pasti membutuhkan penyimpan data agar dapat memudahkan pekerjaan dalam semua bidang.
21
Masalah Klasik dalam Sinkronisasi
Masalah Klasik Sinkronisasi dapat dibedakan menjadi 3 : Bounded – Buffer Problem Readers and Writers Problem Dining Philosophers Problem
22
Pengertian Bounded –Buffer Problem
Bounded buffer merupakan suatu struktur data yang mampu untuk menyimpan beberapa nilai dan mengeluarkannya kembali ketika diperlukan . Jika dianalogikan bounded buffer ini akan mirip dengan sebuah tumpukan piring. Kita menaruh piring dan menaruh lagi sebuah piring, ketika ingin mengambil piring maka tumpukan yang paling atas yang akan terambil.Jadi piring terakhir yang dimasukan akan pertama kali diambil.
23
Ilustrasi Bounded – Buffer Problem
24
Solusi Bounded – Buffer Problem
Solusi Shared Memory untuk Bounded – Buffer, mengijinkan (n-1) items di dalam buffer untuk suatu waktu tertentu.
25
Pengertian Readers and Writers Problem
Readers and Writers Problem adalah problem yang memodelkan proses yang mengakses database. Masalah ini timbul ketika ada dua proses atau lebih berbagi data yang sama. Data yang dimaksud disini bisa berbentuk buffer, file atau objek dari suatu program
26
Ilustrasi Readers and Writers Problem
27
Solusi Readers and Writers Problem
Pembaca di prioritaskan Penulis di prioritaskan Kedua jenis proses mempunyai prioritas yang sama.
28
Solusi Pembaca di Prioritaskan
Reader tidak akan menunggu reader(s) lain yang sedang membaca, walaupun ada writer yang sedang menunggu. Dengankatalain, Jika ada reader yang datang ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca. Write rakan ditunda pengerjaannya.
29
Solusi Penulis di Prioritaskan
Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang memulai untuk membaca data.
30
Solusi Kedua Jenis Punya Prioritas Sama
Tidak ada prioritas khusus yang diberikan kepada kedua jenis proses
31
Sejarah Dining Philosophers Prolem
Masalah ini pertama ini pertama kali ditulis dan diselesaikan oleh Djikstra pada tahun 1965.Masalah ini memodelkan masalah enkapsulasi dari ketergantungan mesin dan masalah portabilitas. Dalam masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya memiliki tiga status, berpikir, lapar, dan makan. Semua filusuf berada di sebuah meja makan bundar yang ditata sehingga di depan setiap filusuf ada sebuah piring berisi mie dan di antara dua piring yang bersebelahan terdapat sebuah sumpit.
32
Ilustrasi Dining – Philosophers Problem
33
Solusi Dining – Philosophers Problem
Solusi Dining – Philosophers Problem ada dua, yakni : Solusi Waiter Solusi Hierarki Resource
34
Solusi Waiter Solusi Waiter : solusi sederhana ini dilakukan dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang dipakai,orang berikutnya yang ingin memakai sumpit harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai terpakai.
35
Solusi Hierarki Resource
Solusi Hirarki Resource: resources (sumpit) di meja makan telah diberi susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun diatas meja misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang rendah.
36
Contoh Kasus Dining – Philosophers Problem
Pada sebuah computer tentunya terdapat aplikasi-aplikasi yang dapat memudahkan kita untuk melakukan suatu pekerjaan. Namun disamping kemudahan yang diberikan, terdapat ancaman negative yang dapat aplikasi-aplikasi itu berikan pada computer kita jika kita tidak menggunakannya dengan benar. Suatu contoh ketika kita mengerjakan suatu tugas. Kita membuka dan menjalankan beberapa aplikasi secara bersamaan. Aplikasi yang kita gunakan misalnya ms. Word (membuka 6 file word sebagai sumber tugas), winamp untuk memainkan lagu, firefox untuk browsing internet, pidgin untuk sesekali chating, sementara itu aplikasi start up yang berjalan juga banyak dan RAM yang tersedia tidak begitu besar sehingga hal ini akan membuat computer menjalankan aplikasi itu terus-menerus jika kita tidak mematikannya. Hal ini akan membuat computer berjalan semakin lambat dan memungkinkan terjadinya starvation atau deadlock dalam beberapa waktu kemudian.
37
Masalah Lain pada Sinkronisasi
Masalah pada Sistem Operasi Sinkronisasi bisa terdapat dari masalah lainnya seperti Masalah Race 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
38
Solusi untuk Race Section
Bagian 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.
39
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
40
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.
41
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.
42
Operasi Down Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked.
43
Operasi Up Operasi Up menakkan nilai semaphore. Jika satu proses atau lebih diblocked pada semaphore itu tak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh system dan menyelesaikan operasi Down-nya.
44
Monitors Monitor adalah kumpulan prosedur, variabel
dan struktur data di satu modul atau paket khusus. 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.
45
Terimakasih
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.