Senin, 19 Desember 2011

Tugas Sistem Operasi ke-6

EXPLORASI DEADLOCK

            Deadlock merupakan keadaan 2 atau lebih proses saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya..

Contohnya seperti keadaan jalan raya yang dimana di jalan tersebut terjadi kemacetan yang sangat parah.


  Deadlock dapat berdampak merusak hardware dari system komputer karena jika sering terjadi dapat merusak data dan informasi.maka dari itu perlu ada perbaikan untuk tidak terjadi hal yang di inginkan.
Berikut adalah beberapa algoritma yang umumnya digunakan untuk menangani deadlock :
-Algoritma Safety sebuah algoritma yang menjaga system selalu dalam keadaan aman (safety) karena pada algoritma ini pencegahan deadlock itu sendiri dilakukan dengan menanyakan suatu proses apakah sudah dalam keadaan finish atu masih berjalan,dengan menggunakan perbandingan proses waktu dan lamanya pengeksekusian dapat di lihat apakah system dalam keadaan aman atau deadlock.jika proses masih dalam keadaan berjalan maka proses lain belum di perbolehkan untuk di eksekusi dan menunggu sampai proses selesai dan kemungkinan terjadinya deadlock mengecil dan system selalu dalam keadaan aman.
-Algoritma Banker suatu algoritma yang melakukan penjadualan yang dilakukan oleh prosesor untuk mencegah terjadinya deadlock.contoh : suatu aplikasi yang ingin melakukan suatu proses dan akan merequest beberapa memory dan register kepada system agar dapat berjalan,untuk pencegahannya maka prosessor akan mengalokasikan memory dan register yang dibutuhkan serta menetapkan batas maksimal yang di berikan dengan membandingkan resorce yang tersedia,jadi dengan di sediakan batasan proses akan berjalannya dengan bertahap tanpa menghabiskan seluruh memory serta resource yang ada. Sehingga aplikasi lain dapat tetap berjalan dengan sisa resource yang ada.dan jika ada permintaan proses yang besar datang maka system akan menunda (pending) proses tersebut sampai proses lain selesai sehingga resource bertambah besar barulah proses yang besar tersebut dapat berjalan.pada intinya system tidak akan membiarkan proses yang besar dieksekusi sementara resource yang dimiliki kecil, systemnya ga  mau rugi biar ga deadlock.
-Algoritma Ostrict suatu algoritma yang mengetahui suatu proses sedang dalam kondisi deadlock dan dapat dilihat pada lamanya waktu prosesor mengeksekusi suatu proses,jika proses dieksekusi lebih lambat dari biasanya bisa jadi system dalam kondisi deadlock, dan penyebab deadlocknya dapat dilihat dari resource yang yang merequest proses tersebut. pada algoritma ini proses dibiarkan seolah olah tidak akan terjadi deadlock, jadi dibiarkan berjalan begitu saja dan jika terjadi deadlock barulah proses dihentikan ataupun di matikan.Hal ini biasa dilakukan pada suatu system UNIX, tetapi dengan membiarkan proses tetap berjalan meskipun berpotensi terjadi deadlock, maka operator memerlukan waktu tertentu untuk menghentikan dan memulai kembali proses yang deadlock yang dapat terlihat dari table proses yang penuh/sibuk.