1 / 20

Konkurensi 3  Deadlock dan Starvation

Rahmady Liyantanto liyantanto@gmail.com liyantanto.wordpress.com. Konkurensi 3  Deadlock dan Starvation. Sistem Operasi. Sub Pokok Bahasan. Pengertian & Latar Belakang Deadlock Penyebab Deadlock Strategi untuk mengatasi Deadlock Starvation Kesimpulan.

alice
Télécharger la présentation

Konkurensi 3  Deadlock dan Starvation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rahmady Liyantanto liyantanto@gmail.com liyantanto.wordpress.com Konkurensi 3 Deadlock dan Starvation Sistem Operasi D3 Manajemen Informatika Universitas Trunojoyo

  2. Sub PokokBahasan • Pengertian & Latar Belakang Deadlock • Penyebab Deadlock • Strategi untuk mengatasi Deadlock • Starvation • Kesimpulan

  3. PengertiandanLatarBelakang(1) • 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

  4. PengertiandanLatarBelakang(2) • Deadlock dalam arti sebenarnya adalah kebuntuan dalam sistem operasi adalah kebuntuan proses. Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses. • Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut..

  5. Model Deadlock

  6. Penyebab Deadlock(1) • Mutual Exclusion Hanyaadasatuproses yang bolehmemakaisumberdaya, danproses lain yang inginmemakaisumberdayatersebutharusmenungguhinggasumberdayatadidilepaskanatautidakadaproses yang memakaisumberdayatersebut. • Hold and Wait Proses yang sedangmemakaisumberdayabolehmemintasumberdayalagi, denganmenungguhinggabenar-benarsumberdaya yang dimintatidakdipakaiolehproses lain. Hal inidapatsebuahproses tidak mendapat sumber daya dalam waktu yang lama

  7. Penyebab Deadlock(1) • Circular Waiting Kondisisepertirantai, yaitusebuahprosesmembutuhkansumberdaya yang dipegangprosesberikutnya • No Preemption Sumberdaya yang adapadasebuahprosestidakbolehdiambilbegitusajaolehproseslainnya. Untukmendapatkansumberdayatersebut, makaharusdilepaskanterlebihdahuluolehproses yang memegangnya, selainituseluruhprosesmenunggudanmempersilahkanhanyaproses yang memilikisumberdaya yang bolehberjalan

  8. Circular Wait • Contoh Circular Wait

  9. Strategi mengatasi Deadlock 1. Mengabaikan masalah deadlock. 2. Mendeteksi dan memperbaiki (Detection and Recovery ) Algoritma Ostrich 3. Menghindari Deadlock(Avoidance)  Algoritma Banker 4. Pencegahan yang secara struktur bertentangan dengan empat kondisi terjadinya deadlock.

  10. 1. MengabaikanMasalahDeadlock Metode ini lebih dikenal dengan Algoritma Ostrich. Dalam algoritma ini dikatakan bahwa untuk menghadapi Deadlock ialah dengan berpura-pura bahwa tidak ada masalah apa pun. Jadi jika terjadi Deadlock, maka tabel akan penuh, sehingga proses yang menjalankan proses melalui operator harus menunggu pada waktu tertantu dan mencoba lagi.

  11. 2. Mendeteksidanmemperbaiki (Detection and Recovery )(1) • Caranya ialah dengan cara mendeteksi jika terjadi Deadlock pada suatu proses maka dideteksi sistem mana yang terlibat di dalamnya. Setelah diketahui sistem mana saja yang terlibat maka diadakan proses untuk memperbaiki dan menjadikan sistem berjalan kembali. Hal-hal yang terjadi dalam mendeteksi adanya Deadlock adalah: 1. Permintaan sumber daya dikabulkan selama memungkinkan. 2. Sistem operasi memeriksa adakah kondisi circular wait secara periodik.

  12. 2. Mendeteksidanmemperbaiki (Detection and Recovery )(2) 3. Pemeriksaan adanya Deadlock dapat dilakukan setiap ada sumber daya yang hendak digunakan oleh sebuah proses. 4. Memeriksa dengan algoritma tertentu. • Tindakan recovery yang dilakukan adalah : melakukan preemption, membuat checkpoint untuk rollback lalu membunuh proses yang prioritasnya kecil

  13. 3. MenghindariDeadlock(Avoidance) • Sistem sudah harus dapat mengenali bahwa sumber daya itu aman atau tidak( dalam arti tidak terkena Deadlock), setelah itu baru dialokasikan. Ada dua cara yaitu: 1. Jangan memulai proses apa pun jika proses tersebut akan membawa kita pada kondisi Deadlock. 2. Jangan memberi kesempatan pada suatu proses untuk meminta sumber daya lagi jika penambahan ini akan membawa kita pada suatu keadaan Deadlock

  14. 4. PencegahanDeadlock • Mutual Exclusion : membuat file spool untuk resource yang digunakanbersama-sama • Hold and Wait : memaksasebuahprosesuntukmelepaskan resource yang dimilikinyaketikameminta resource baru • Circular Waiting : memberikanpenamaan resource berdasarkanurutanatau level • No Preemption : membolehkanadanya preemption

  15. Algoritma Banker(1) • Algoritma ini dapat digambarkan sebagai seorang bankir dikota kecil yang berurusan dengan kelompok orang yang meminta pinjaman. Jadi kepada siapa dia dapat memberikan pinjamannya. Dan setiap pelanggan memberikan batas pinjaman maksimum kepada setiap peminjam dana. • Algoritma bankir ini mempertimbangkan apakah permintaan mereka itu sesuai dengan jumlah dana yang ia miliki, sekaligus memperkirakan jumlah dana yang mungkin diminta lagi.

  16. Algoritma Banker(2) • Secara umum algoritma bankir dapat dibagi menjadi 4 struktur data: 1. Tersedia: jumlah sumber daya/dana yang tersedia 2. Maksimum: jumlah sumber daya maksimum yang diminta oleh setiap proses 3. Alokasi: jumlah sumber daya yang dibutuhkan oleh setiap proses 4. Kebutuhan: sumber daya yang sedang dibutuhkan oleh setiap proses

  17. Fakta tentang Deadlock dalam OS • Pada windows NT, deteksi deadlock yaitu berupa BSOD(Blue Screen Of Death), recoverynya adalah reboot sederhana • Pada linux untuk mengetahui apakah terjadi deadlock yaitu dengan menggunakan xosview untuk mengetahui proses yang menggunakan CPU 100%, lalu kill saja proses tersebut

  18. Deadlock di 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. • Kasus ini juga terjadi pada Serial device

  19. Starvation • Starvation Kelaparan • Suatu keadaan dimana pemberian akses bergantian terus-menerus dan ada suatu proses yang tidak mendapatkan gilirannya.

  20. Kesimpulan • Deadlock adalah situasi dimana 1 atau lebih proses tidak akan pernah selesai tanpa adanya recovery • Empat kondisi penting untuk deadlock : mutual exclusion, hold and wait, circular wait, and no preemption • Deadlock bisa diatasi oleh berbagai strategi : prevention, avoidance, detection and recovery

More Related