• algoritma dalam menangani deadlock

    Apa itu deadlock?dan bagaimana cara menanggulanginya??
    nah deadlock itu bisa dikatakan perebutan sumber daya yang dapat menyebabkan crash/ngeheng, wah gak enak bangetkan kalo komputer ngeheng nah ada 3 algoritma yang bisa digunakan dalam menanggulanginya yaitu....

    1. Algoritma Ostritch
    algoritma ini merupakan algoritma paling sederhana, dengan mengabaikan deadlock sama sekali.
    kenapa di abaikan?karna mungkin masalah yang muncul jarang terjadi, algoritma ini digunakan karna mungkin masalah deadlock sangat jarang terjadi. Jadi apa yang dilakukan menurut algoritma ini jika terjadi deadlock?
     gak usah ambil pusing...

    RESTART AJA !!!

    2. Algoritma banker
    dalam algoritma ini dijelaskan bahwa:
    - setiap harus mengklaim berapa jumlah resourse yang akan digunakan
    -  dan jika resourse tidak tersedia maka permintaan ditunda, dan setiap proses yang sudah selesai maka  resoursenya harus dikembalikan

    Struktur data yang digunakan untuk mengimplementasikan algoritma Banker
    akan menentukan state dari sumber daya yang dialokasikan oleh sistem. Misalnya n =jumlah proses dan 
    m =jumlah tipe resource. Struktur data yang diperlukan :
    • Available : Vektor panjang m. Jika Available[j] = k, terdapat k anggota tipe sumber
    daya Rj yang tersedia.
    • Max : matrik n x m. Jika Max[i, j] = k, maka proses Pi meminta paling banyak k
    anggota tipe resource Rj.
    • Allocation : matrik n x m. Jika Allocation[i, j] = k maka Pi sedang dialokasikan k
    anggota tipe resource Rj.
    • Need : matrik n x m. Jika Need[i, j] = k, maka Pi membutuhkan k anggota tipe
    resource Rj untuk menyelesaikan task. Need[i, j] = Max[i, j] – Allocation[i, j].
    Beberapa notasi yang perlu diketahui adalah misalnya X dan Y adalah vektor
    dengan panjang n. X ≤ Y jika dan hanya jika X[i] ≤ Y[i] untuksemua i = 1, 2, .., n.
    Sebagai contoh jika X = (1, 7, 3, 2) dan Y = (0, 3, 2, 1) maka Y ≤ X.



    namun terdapat beberapa kekurangan dalam algoritma banker yaitu:
    - proses masih belum mengetahui seberapa banyak resourse yang digunakan
    - jumlah proses yang berjalan itu tidak tetap, lalu
    - beberapa resourse dapat di ambilsistem sewaktu waktu
    - algoritma membuat sistem untuk memenuhi permintaan hingga waktu yang tidak terbatas..hmmm


    3. Algoritma safety
    Algoritma ini untuk menentukan apakah sistem berada dalam state safety atau tidak.
    1. Work dan Finish adalah vector dengan panjang m dan n. Inisialisasi : Work = Available dan Finish[i] = false untuk i = 1,3, …, n.
    2. Cari i yang memenuhi kondisi berikut :
    (a) Finish [i] = false
    (b) Needi ≤ Work
    Jika tidak terdapat i ke langkah 4.
    3. Work = Work + Allocationi
    Finish[i] = true
    Kembali ke langkah 2.
    4. Jika Finish [i] == true untuk semua i, maka sistem dalam state selamat.







0 komentar:

Posting Komentar