Tampilkan postingan dengan label Tugas 9. Tampilkan semua postingan
Tampilkan postingan dengan label Tugas 9. Tampilkan semua postingan

Rabu, 09 Januari 2013

Algoritma Ostrich



Menurut Dijkstra (1965) algoritma penjadwalan dapat menghindari Deadlock dan algoritma penjadwalan itu lebih dikenal dengan sebutan algoritma banker. Algoritma ini dapat digambarkan sebagai seorang bankir yang berurusan dengan kelompok orang yang meminta pinjaman.

kepada siapa dia dapat memberikan pinjamannya. Dan setiap pelanggan memberikan batas pinjaman maksimum kepada setiap peminjam dana. Tentu saja si bankir tahu bahwa si peminjam tidak akan meminjam dana maksimum yang mereka butuhkan dalam waktu yang singkat melainkan bertahap. Jadi dana yang ia punya lebih sedikit dari batas maksimum yang dipinjamkan. Lalu ia memprioritaskan yang meminta dana lebih banyak, sedangkan yang lain disuruh menunggu hingga peminta dana yang lebih besar itu mengembalikan pinjaman berikut bunganya, baru setelah itu ia meminjamkan pada peminjam yang menunggu.

Algoritma bankir ini mempertimbangkan apakah permintaan mereka itu sesuai dengan jumlah dana yang ia miliki, sekaligus memperkirakan jumlah dana yang mungkin diminta lagi. Jangan sampai ia sampai pada kondisi dimana dananya habis dan tidak dapat meminjamkan uang lagi. Jika demikian maka akan terjadi kondisi deadlock. Agar kondisi aman, maka asumsi setiap pinjaman harus dikembalikan waktu yang tepat.
Secara umum algoritma bankir dapat dibagi menjadi empat struktur data, anggap variabel n adalah jumlah proses dalam sistem dan m jumlah sumber daya yang ada:

1. Available: Sebuah vektor m mengindikasikan sumber daya yang tersedia untul setiap tipe. Jika Avilable[j] = k, dimana k instansi dari tipe Rj yang tersedia.

2. Max: Matriks n x m mendefinisikan maksimal permintaan tiap proses. Jika Max[i,j] = k, maka proses Pi meminta paling banyak k instansi dari sumber daya tipe Rj. 

3. Allocation: Matriks n x m mendefinsikan jumlah sumber daya setiap tipe yang dialokasian oleh setiap proses. Jika Allocation[i,j] = k, maka proses Pi dialokasikan k instansi dari sumber daya Rj.

4. Need: Matriks n x m yang mengindikasikan sisa sumber daya yang dibutuhkan setiap proses.
Jika Need[i,j] = k, maka proses Pi membutuhkan lebih k instansi dari sumber daya Rj untuk menyelesaikan tugasnya. Need[i,j]= Max[i,j] – Allocation[i,j].
Bentuk penyajian algoritma ini secara sederhana, misalkan X dan Y adalah vektor dengan panjang n. sehingga X < Y jika dan hanya jika X[i] < Y[i] untuk semua I = 1,2,..,n. contohnya, jika X=(1,7,3,2) dan Y = (0,3,2,1) maka Y=!X. Y

Algoritma Safty

Algoritma Safety sama halnya dengan algoritma banker merupakan algoritma penangan deadlock, namun algoritma safety ini lebih kepada memastikan apa kah suatu sistem dapat dikatakan aman (safe state) atau tidak aman (unsafe state). Algoritma ini cukup sederhana hanya mengecek kondisi dimana sistem jika di katakan dalam keadaan aman (safe state) maupun tidak (unsafe state), maka dapat di ilustrasikan dalam program sederhana pada gambar berikut :

Algoritma Banker

Algoritma banker merupakan salah satu algoritma penanganan terjadinya deadlock, algoritma tersebut di sebut algoritma banker karena simulasi dari algoritma ini mirip dengan sistem bankir di bidang perbankan. Algoritma banker ini dikemukakan oleh Edsger W. Djiksta dan merupakan suatu simulasi sistem perbankan yang diibaratkan untuk menghindari deadlock.
Algoritma Banker ini bisa kita anlogikan, misal :
  •           Bank diibaratkan sebagai OS (Operating System),
  •           Pinjaman diibaratkan sebagai resource,
  •           Peminjam/nasabah yg membutuhkan resource
           Dalam menangani deadlock dengan algoritma banker ini yaitu dengan mempertimbangkan apakah permintaan itu bisa sesuai dengan jumlah dana yg dimiliki, sekaligus memperkirakan jumlah dana yg diminta lagi. Jangan sampai kondisi dimana dananya habis & tidak dapat meminjamkan uang lagi. Dan jika demikian, maka bisa terjadi kondisi deadlock tersebut.

      Nah…. Jika kita ingin kondisi yg aman, maka setiap asumsi pinjaman harus dapat dikembalikan dalam waktu yg tepat.

      Toh…… pada intinya kita semua pasti gx mau ngalamin deadlock, nah…. Salah satu cara menanganinya adalah dengan algoritma banker ini…..
Sehingga dapat dikatakan algoritma banker ini di jalankan oleh sebuah sistem operasi ketika ada request resource (permintaan proses yang akan di eksekusi). Nah penolakan dari algoritma ini terhadap deadlock terjadi pada saat request resource yang akan di eksekusi dapat membawa sistem pada kondisi unsafe state. Dengan kata lain ketika suatu proses masuk ke dalam sistem maka proses tersebut harus di eksekusi menggunakan jumlah maksimal resource yang di perlukan namun tidak boleh melebihi jumlah resource yang di miliki oleh sistem. Kemudian proses tersebut harus segera mengembalikan resource pada sistem dengan tepat waktu, jika tidak maka akan terjadi deadlock dimana suatu proses akan saling tunggu atau terhenti secara tiba-tiba karena resource yang akan di gunakan sedang di gunakan oleh proses lain.