Sabtu, 12 Januari 2013

Algoritma Banker, Safty dan Ostrich



Kali ini saya akan membahas tentang algoritma-algoritma untuk menangani Deadlock. 
Deadlock Lalu Lintas
Pertama kita pahami dulu apa itu Deadlock. Deadlock jika di analogikan dalam kehidupan nyata seperti sebuah kemacetan kendaraan yang akan menyebrangi sebuah jembatan yang hanya bisa di lalui oleh satu antrian kendaran. Sehingga akan ada jeda saling menunggu antara kendaraan dari dua seberang jembatan untuk mengosongkan jembatan tersebut dan bisa di lalui oleh kendaraan secara beriringan. Maka di sini bisa di simpulkan bahwa Deadlock adalah keadaan saling menunggu antara dua proses atau lebih untuk dapat menggunakan resource yang sedang di pakai. 

Maka dari itu untuk menghindari hal ini, ada beberapa algoritma-algoritma untuk menangani permasalahan di atas. Mari kita bahas satu persatu :

  • Algoritma Banker

Algoritma banker adalah sebuah algoritma resource allocation dan deadlock avoidance yang di pelopori oleh Edsger W Djikstra untuk menangani terjadinya deadlock pada sistem operasi. Algoritma banker dapat di analogikan seperti sistem perbankan. Dimana ada kegiatan penarikan dan peminjaman uang dari nasabah kepada bank. Disini nasabah dapat di ibaratkan sebagai proses, uang yang di pinjamkan atau yang di setorkan di ibaratkan sebagai resource dan bank secara keseluruhan dapat di ibaratkan sebagai sistem operasi. Intinya disini jika bank tidak boleh sampai kehabisan uang agar para nasabah tetap dapat melakukan peminjaman, oleh karena itu para peminjam di haruskan untuk mengembalikan pinjamannya tepat waktu. 

Begitu pula yang terjadi pada algortima ini. Dimana sistem operasi akan memberikan resource pada proses yang sudah siap di eksekusi asalkan tidak melebihi batas resource sistem. Dan jika proses sudah selesai di eksekusi maka proses harus segera mengembalikan resource yang telah di gunakannya. Sistem operasi juga bisa menolak proses yang dapat membuat sistem berada pada kondisi unsafe state melalui algoritma ini. 

  • Algoritma Safety
Algoritma ini pun juga merupakan algoritma untuk penanganan terjadinya deadlock pada sistem operasi. Cara kerjanya yakni melakukan pengecekan pada sistem apakah sistem berada pada kondisi aman (safe state) atau tidak aman (unsafe state). Sistem operasi akan menanyakan apakah suatu proses telah selesai atau masih berjalan, jika proses tersebut masih berjalan maka proses lain harus menunggu hingga proses awal selesai di eksekusi. Hal ini merupakan inti dari algoritma ini, dengan membandingkan waktu pengeksekusian proses maka dapat di simpulkan apakah sistem dalam keadaan aman atau tidak.   

  • Algoritma Ostrich
Agoritma ostrich adalah algoritma penanganan deadlock yang mungkin terjadi atas dasar bahwa deadlock di yakini sangat jarang terjadi dengan kata lain adalah dengan mengabaikan trejadinya deadlock tersebut. Algoritma ini memiliki 2 pendekatan dalam pengimplementasiannya, yaitu pendekatan trade-offs dan pendekatan hybrid.
Pendekatan trade-offs yaitu jika kondisi atau keadaan berubah atau belum teridentifikasi, masalah yang sangat jarang terjadi dapat kembali lagi. Sedangkan pendekatan hybrid yakni menentukan bahwa kasus deadlock sangat jarang atau bahkan tidak pernah terjadi. 

1 komentar:

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

    BalasHapus