şükela:  tümü | bugün soru sor
  • edsger dijkstra tarafından geliştirilen kaynak yönetimi & çıkmazdan kaçınma (deadlock avoidance) algoritması.

    önceden belirlenmiş olası en yüksek kaynak miktarlarını simüle ederek olası tüm çıkmaz durumları deneyip hangi tahsisin devam etmesinin uygun olduğunu belirler.

    3 veriye ihtiyacı vardır:

    - her sürecin yaklaşık ne kadar kaynak gerektirebileceği
    - hali hazırda süreçlerin ne kadar kaynak tükettiği
    -sistemin ne kadar kaynağının uygun olduğu

    *
  • dijkstra tarafindan deadlocklari onlemek icin tasarlanmis bir algoritmadir. temel olarak processlerin tumunun gereken kaynaklarin tamamini ayni anda kullanmaya calismayacagini varsayar ve tum processlerin deadlocka yol acmadan tamamlanacagi sekilde siraya koyup kaynaklari ona gore dagitmayi amaclar. fakat bu algoritma hangi processin ne kadar kaynak gerektigini daha onceden bilinemedigi icin kullanissizdir. sadece teoride kalmistir.
  • teoride iyi, pratikte kötü olan algoritma. bu algoritmayı okumaktan sıkılan ve izleyerek daha iyi anlarım diyenler için link. özellikle ikinci process olan elemanın ürkekliği muazzam.
  • ölümcül kilitlenme durumunu önleme amacıyla ortaya atılmış bir algoritmadır. bu amacı nedeniyle bir proses, kaynak isteğinde bulunduğunda; kaynağı vermiş gibi ilgili verileri düzenler ve bu veriler üzerinden ölümcül kilitlenme olabilip olamayacığını kontrol eder. ölümcül kilitlenme olabilir sonucuna ulaşırsa proses isteği karşılanmaz; böylece ölümcül kilitlenme olmadan önlenmiş olur. ölümcül kilitlenme sonucuna ulaşmazsa ilgili kaynak isteği karşılanır.

    kontrol için ihtiyaç duyduğu veriler şöyledir:

    toplam kaynak miktarı: algoritma çalışması boyunca değişmez

    proseslerin çalışma süreleri boyunca isteyebilecekleri maksimum kaynak miktarı: algoritma çalışması boyunca değişmez

    proseslerin o anda (atama yapılmış gibi çek panpa) sahip olabildikleri kaynak miktarı: algoritma çalışması boyunca güncellenir

    proseslerin o anda kalan kaynak istek miktarı: algoritma çalışması boyunca güncellenir

    ilgili veriler değerleri ile birlikte oluşturulduktan sonra tek tip kaynağın var olduğu durum üzerinden çalışması şu şekilde olur: proseslerin kalan kaynak istekleri ile boi kaynak miktarı karşılaştırılır. isteği küçük olan proses bulunursa kaynak ataması yapılır ve kalan istek bilgisi ile boş kaynak miktarı güncellenir. isteği küçük olan proses bulunamazsa ölümcül kilitlenme olabilir sonucuna varılır. bu süreç, başlangıçtaki boş kaynak miktarı, ölümcül kilitlenme olabilir sonucuna varılmazsa toplam kaynak miktarına eşit olana kadar devam eder. (birden fazla tipte kaynak olduğunda da aynı mantıkta çalışır; tek tip kaynak olunca anlatması daha kolay)

    algoritma her istek olduğunda çalıştığı için maliyetlidir. ayrıca ölümcül kilitlenme olabilir sonucuna varır yani kesin olur demez. bu nedenle, bu olasılık nedeniyle engellediği istek aslında ölümcül kilitlenmeye yol açmayabilir. çalışması için ise proses ve kaynak sayısının sabit olmasını ister. sorunludur yani; öyle kabul edin ama zaman geçirmeyin onunla.

    ayrıca (bkz: ölümcül kilitlenme)