konkurensi 3 deadlock dan starvation
DESCRIPTION
Rahmady Liyantanto [email protected] 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. - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/2.jpg)
Pengertian & Latar Belakang Deadlock
Penyebab DeadlockStrategi untuk mengatasi DeadlockStarvationKesimpulan
![Page 3: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/3.jpg)
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
![Page 4: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/4.jpg)
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..
![Page 5: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/5.jpg)
![Page 6: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/6.jpg)
Mutual ExclusionHanya ada satu proses yang boleh memakai sumber
daya, dan proses lain yang ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang memakai sumber daya tersebut.
Hold and WaitProses yang sedang memakai sumber daya boleh
meminta sumber daya lagi, denganmenunggu hingga benar-benar sumber daya yang diminta tidak dipakai oleh proses lain. Hal ini dapat sebuah proses tidak mendapat sumber daya dalam waktu yang lama
![Page 7: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/7.jpg)
Circular WaitingKondisi seperti rantai, yaitu sebuah proses
membutuhkan sumber daya yang dipegang proses berikutnya
No Preemption Sumber daya yang ada pada sebuah proses tidak
boleh diambil begitu saja oleh proses lainnya. Untuk mendapatkan sumber daya tersebut, maka harus dilepaskan terlebih dahulu oleh proses yang memegangnya, selain itu seluruh proses menunggu dan mempersilahkan hanya proses yang memiliki sumber daya yang boleh berjalan
![Page 8: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/8.jpg)
Contoh Circular Wait
![Page 9: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/9.jpg)
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.
![Page 10: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/10.jpg)
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.
![Page 11: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/11.jpg)
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.
![Page 12: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/12.jpg)
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
![Page 13: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/13.jpg)
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
![Page 14: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/14.jpg)
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 15: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/15.jpg)
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.
![Page 16: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/16.jpg)
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
![Page 17: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/17.jpg)
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
![Page 18: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/18.jpg)
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
![Page 19: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/19.jpg)
Starvation KelaparanSuatu keadaan dimana pemberian
akses bergantian terus-menerus dan ada suatu proses yang tidak mendapatkan gilirannya.
![Page 20: Konkurensi 3 Deadlock dan Starvation](https://reader033.vdocuments.net/reader033/viewer/2022061518/56814a33550346895db74fd1/html5/thumbnails/20.jpg)
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