Blogger news

Minggu, 13 Januari 2013

Algoritma banker, safety dan ostrich

Blogging lagi nih gan, heu...
kali ini saya akan membahas tentang algoritma banker, Safety dan Ostrich, saya akan membahas mulai dari algoritma Banker terlebih dahulu.


  1. Algoritma banker
        Algoritma Banker pertama kali dipelopori oleh Edsger W Djikstra, merupakan algoritma resource allocation dan deadlock avoidance. Algoritma ini dipakai untuk menangani deadlock pada sistem operasi. Lantas kenapa disebut dengan algoritma banker ? karena algoritma ini di analogikan seperti sistem perbankan, dimana ada transaksi (penarikan dan peminjaman) antara nasabah dengan bank. Di sini nasabah di ibaratkan sebagai proses, uang sebagai resource dan bank sebagai sistem operasi. Agar proses harus tetap berjalan bank tidak boleh kehabisan uang agar nasabah dapat meminjam uang dan nasabah harus tepat waktu dalam mengembalikan uang. Dari penjelasan tersebut intinya algoritma ini adalah sistem operasi akan memberikan resource pada proses yang harus siap di eksekusi asalakan tidak melebihi limit resource sistem,dan jikaproses sudah selesai di eksekusi maka proses harus segera mengembalikan resource yang sudah digunakan, Sistem operasi juga bisa menolak proses yang dapat sistem berada pada kondisi unsafe state melalui algoritma ini.

   2. Algoritma safety

      Algoritma ini juga merupakan algoritma untuk penanganan terjadinya deadlock pada sistem operasi. Cara kerjanya 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. 

misalnya contoh seperti ini :

1. work and finish vektor 
    dengan panjang m dan n , jika work : available dan finish[i] : false
    untuk i = 1,2,3......
2. cari i dengan finish[i] = false , need ≤ work
    jika i tidak terdapat 
3. work + work = allocation
     finish[i]= true , kembali ke 2
4. finish[i] = true  pada semua i maka sistem selamat

3. Algoritma Ostrich

    Agoritma ostrich adalah algoritma penanganan deadlock yang mungkin terjadi 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. 


Kesimpulannya  dari penjelasan mengenai algoritma di atas bagaimana cara menangani deadlock,deadlock dalah keadaan saling menunggu antara dua proses atau lebih untuk dapat menggunakan resource yang sedang di pakai.  pada sebuah sistem operasi karena penanganan terhadap deadlock berbeda-beda sesuai dengan bagaimana deadlock tersebut terjadi.semoga bermanfaat
 

Blogger news

Blogroll

About