Pages

Subscribe:

Ads 468x60px

Minggu, 13 Januari 2013

Penanganan DeadLock dengan algoritma Banker, Safety dan Ostrich


Nahh untuk sekarang saya akan memposting mengenai Penanganan DeadLock dengan algoritma Banker, Safety dan Ostrich !!
Langsung saja yah ke pembahasan...



  • ·         Algoritma Banker


Algoritma banker lebih dikenal dengan nama algoritma penjadwalan. Algoritma banker dapat digambarkan sebagai seorang banker/bankir yang berurusan dengan kelompok orang yang meminta pinjaman kepada banker tersebut.

Jadi algoritma banker bekerja dengan cara mempertimbangkan apakah permintaan para peminjam itu sesuai dengan jumlah dana yang ia miliki, sekaligus memperkirakan jumlah dana yang mungkin diminta lagi. Sehingga keadaanya tidak sampai pada kondisi dimana dananya habis dan tidak dapat meminjamkan uang lagi.

Algoritma banker dikembangkan oleh salah satu orang IT ternama dunia, Edsger Dijkstra. Algoritma ini adalah penanganan deadlock dengan metode penghindaran (avoidance) dengan melakukan alokasi resource.



  • ·         Algoritma Safety


Algoritma ini bekerja dengan cara algoritma mencari apakah sistem dalam status aman atau tidak. Status ini terjadi jika sistem dapat mengalokasikan sumber daya bagi tiap proses dalam keadaan tertentu dan masih dapat terjadi deadlock. Status aman bukanlah status deadlock, jadi status deadlock merupakan status tidak aman, tetapi tidak selamanya status tidak aman mengakibatkan status deadlock melainkan ada kemungkinan dapat terjadi.

  • ·         Algoritma Ostrich


Algoritma ostrich merupakan strategi penanganan deadlock dengan cara mengabaikan masalah yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang terjadi.dalam hal ini berarti diasumsikan bahwa tidak ada masalah. Dengan begitu mengasumsikan bahwa tidak ada masalah lebih efektif daripada untuk memungkinkan masalah itu terjadi dibandingkan upaya pencegahannya.

.




Penyebab terjadinya deadlock adalah :

a. mutual exclusion, yaitu suatu keadaan dimana hanya ada satu proses saja yang boleh memakai resource, proses yang lain harus menunggu sampai proses tadi benar-benar selesai. contoh mutual exclusion adalah “buffering” ketika kita menonton video.

b. Hold and Wait,yaitu keadaan dimana suatu proses ‘kelaparan’ sumberdaya. Suatu proses menunggu suatu sumberdaya dalam waktu yang lama hingga sumberdaya tersebut tidak terpakai oleh proses lainnya.

c. No Pre-emption, yaitu keadaan dimana suatu sumberdaya tidak boleh diambil(dipakai) begitu saja/secara paksa oleh proses yang lainnya sehingga suatu proses harus menunggu hingga proses yang sedang memakai sumberdaya benar-benar telah selesai.

d. circular wait, yaitu suatu keadaan dimana proses yang lain membutuhkan sumberdaya yang sedang dipakai oleh suatu proses sehingga timbul antrian melingkar (waiting chain) seperti halnya rantai.
Keempat penyebab timbulnya deadlock hampir sama yaitu penggunaan sumber daya dan waktu tunggu oleh suatu proses atau lebih.

Berikut adalah beberapa cara untuk menangani deadlock :
1. Cara pencegahan (prevention), yaitu mencegah terjadinya deadlock. Dalam hal ini, penyebab deadlock harus diketahui sebelumnya kemudian memastikan bahwa slah satu keadaan yang penting tidak akan meninmbulkan deadlock.

2. Cara penolakan/menghindari (avoidance), yaitu melakukan pendataan terhadap proses-proses yang kira-kira akan menghabiskan sumberdaya.

3. Detection and Recovery, yaitu mendeteksi dan memperbaiki. Mendeteksi sistem apasaja yang terlibat jika terjadi deadlock, setelah mendeteksi, sistem diperbaiki.

4. Mengabaikan deadlock, yaitu membiarkan deadlock seolah tidak terjadi apa-apa dan membiarkan deadlock tersebut mematikan program. Hal ini merupakan algoritma Ostrich untuk menangani deadlock.

1 komentar:

You Know Me mengatakan...

pas banget pak saya ada tugas tentang apa itu algoritma banker dan ostricht, ijin copas ya pak, terima kasih.. ^^ bermanfaat sekali ilmunya.. ^^

oh iya sudah saya follow loh urutan 2, jangan lupa follack ya.. :D

Posting Komentar

My Blog List