Banker Algoritması OperaAyarlama Sistemi [Örnek]

⚡ Akıllı Özet

Bankacı Algoritması, kaynak tahsisinin sistemi güvenli bir durumda tutup tutmadığını test eden bir kilitlenme önleme yöntemidir. Bankacılıktan adını alan bu algoritma, yalnızca her işlemi karşılayacak kadar kaynak kaldığında bir isteği onaylar.

  • 🏦 Amaç: Kaynak tahsisinin sistemin güvenliğini sağlayacak şekilde yapıldığından emin olarak kilitlenmeyi önler.
  • 🔢 Dört Matris: Mevcut, Maksimum, Tahsis ve İhtiyaç track kaynak kullanımı.
  • 🧮 Güvenli Durum: Bir talep ancak tüm süreçlerin tamamlanabileceği durumlarda onaylanır.
  • ???? gereksinimi: Her süreç, azami kaynak ihtiyacını önceden belirtmelidir.
  • ✅ Yarar: Kaynakların her zaman en az bir müşterinin ihtiyaçlarını karşılamasını sağlar.
  • ⚠️ Dezavantaj: Çalışmakta olan süreçler, maksimum ihtiyaçlarını değiştiremezler.

Bankacının Algoritması OperaZamanlama Sistemi

Banker Algoritması Nedir?

Bankacının Algoritması Bankacılık sisteminde çoğunlukla kaçınmak için kullanılır. çıkmaz. Kredi verilip verilmeyeceğini belirlemenize yardımcı olur.

Bu algoritma, tüm kaynaklar için mevcut maksimum miktarı belirlemek amacıyla tahsisin güvenli bir şekilde simüle edilmesini test etmek için kullanılır. Ayrıca tahsisin devam edip etmeyeceğini belirlemeden önce olası tüm faaliyetleri de kontrol eder.

Örneğin, belirli bir bankanın X sayıda hesap sahibi olduğunu ve hesaplarındaki toplam para miktarının G olduğunu varsayalım.

Bankanın otomobil kredisi işlemini gerçekleştirdiği sırada, yazılım sistemi şu alt programı kullanır:tracBu, bankanın sahip olduğu toplam paradan (G + Vadeli Mevduat + Aylık Gelir Planı + Altın, vb.) araba satın almak için verilen kredi miktarıdır.

Araç kredisi ancak kalan para G tutarını aştığı takdirde verilir, bu nedenle tüm hesap sahipleri istedikleri zaman G tutarını çekebilirler.

Bankacı Algoritması Gösterimleri

İşte bankacı algoritmasında kullanılan bazı önemli gösterimler:

  • X: Sistemdeki toplam işlem sayısını gösterir.
  • Y: Sistemde bulunan toplam kaynak sayısını gösterir.

Mevcut

[1:Y], her kaynak türünün kaç örneğinin mevcut olduğunu gösterir.

maksimum

[1:X, 1:Y]: i işleminin talep edebileceği j türündeki kaynakların maksimum sayısını ifade eder.

Tahsis

[1:X, 1:Y]: Şu anda i işlemine tahsis edilmiş olan j türündeki kaynakları gösterir.

gerek

Her bir işlem türü için, i işleminin görevini tamamlamak üzere kaç adet daha kaynağa ihtiyaç duyduğunu ifade eder.

Banker algoritması örneği

Aşağıdaki kaynaklara sahip olduğumuzu varsayalım:

  • 5 Kalem sürücüsü
  • 2 Yazıcı
  • 4 Tarayıcı
  • 3 Sabit disk

Burada toplam kaynakları temsil eden bir vektör oluşturduk: Mevcut = (5, 2, 4, 3).

Dört sürecin olduğunu varsayalım. Mevcut kaynaklar halihazırda aşağıdaki matris tablosuna göre tahsis edilmiştir.

İşlem Adı Kalem Sürücüleri Yazıcı Tarayıcı sabit disk
P 2 0 1 1
Q 0 1 0 0
R 1 0 1 1
S 1 1 0 1
Toplam 4 2 2 3

Burada tahsis edilen kaynaklar, bu sütunların toplamıdır:

Tahsis edilen = (4, 2, 2, 3).

Ayrıca tüm süreçler için gereken her kaynağın sayısını gösteren bir Matris oluşturuyoruz. Bu matris denir gerek = (3, 0, 2, 2).

İşlem Adı Kalem Sürücüleri Yazıcı Tarayıcı sabit disk
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

Kullanılabilir vektör şu olacaktır:

Mevcut = Mevcut – Tahsis Edilmiş

= (5, 2, 4, 3) – (4, 2, 2, 3)

= (1, 0, 2, 0)

Kaynak İsteği Algoritması

Kaynak isteği algoritması, belirli bir işlem kaynak isteğinde bulunduğunda sistemin davranışını temsil etmenizi sağlar.

Bunu aşağıdaki adımlarla anlayalım:

) 1 Adım Tüm kaynakların talep edilen toplam örnek sayısı, işlemden daha az olduğunda, 2. adıma geçin.

) 2 Adım Her bir kaynak türünün talep edilen örnek sayısı, o türün mevcut kaynak sayısından az olduğunda, işlem bir sonraki adıma geçecektir. Aksi takdirde, yeterli kaynak bulunmaması nedeniyle işlem beklemek zorunda kalacaktır.

) 3 Adım Kaynak, aşağıda verilen sözde kodda gösterildiği gibi tahsis edilir.

Available = Available – Request (y)
Allocation(x) = Allocation(x) + Request(x)
Need(x) = Need(x) - Request(x)

Bu son adım, sistemin kaynakların tahsis edildiğini varsayması gerektiği için gerçekleştirilir; böylece tahsis işleminden sonra kullanılabilir kaynak sayısı azalır.

Banker Algoritmasının Özellikleri

İşte bankacı algoritmasının önemli özellikleri:

  • En az bir müşterinin ihtiyacını karşılayacak birçok kaynağı bünyesinde bulundurur.
  • Bir süreç tüm kaynaklarını aldığında, bunları sınırlı bir süre içinde geri döndürmesi gerekir.
  • Bir işlem bir kaynak talep ettiğinde, beklemesi gerekebilir.
  • Sistemin kaynakları sınırlıdır.
  • Kaynakların maksimum düzeyde tahsis edilmesi için gelişmiş bir özellik sunar.

Banker algoritmasının dezavantajı

Banka algoritmasının dezavantajları/eksiklikleri şunlardır:

  • Bu, işlem sırasında sürecin azami ihtiyacını değiştirmesine izin vermez.
  • Bu, tüm taleplerin sınırlı bir süre içinde karşılanmasına olanak tanır, ancak bunun için bir yıl sabit bir süredir.
  • Tüm süreçlerin maksimum kaynak ihtiyaçlarını önceden bilmesi ve belirtmesi gerekir.

SSS

Güvenli bir durum, en az bir yürütme sırasının her sürecin maksimum kaynaklarını almasına ve tamamlanmasına izin verdiği durumdur. Böyle bir sıra yoksa, durum güvensizdir ve kilitlenmeye yol açabilir.

Kilitlenme önleme, kilitlenme için gerekli olan koşullardan birini önceden ortadan kaldırır. Bankacı Algoritması gibi kilitlenme önleme yöntemleri, bu koşullara izin verir ancak sistemi güvende tutmak için her isteği kontrol eder.

Bu algoritma, bankaların kredileri yönetme biçiminden esinlenerek adlandırılmıştır. Bankalar, ancak tüm müşterilerinin ihtiyaçlarını karşılayabiliyorsa kredi verir. Benzer şekilde, algoritma da ancak tüm süreçler güvenli bir şekilde tamamlanabiliyorsa kaynak tahsis eder.

Yapay zeka, kaynak talebini tahmin edebilir ve kilitlenmeye yol açmadan önce riskli tahsis modellerini tespit edebilir. Maksimum ihtiyaçların tahmin edilmesinin zor olduğu karmaşık sistemlerde Bankacı Algoritmasını tamamlayarak hangi taleplerin geciktirilmesi gerektiğini önerebilir.

Tam olarak değil. Bankacı Algoritması, maksimum ihtiyaçlar bilindiğinde güvenli bir sonuç garanti eder. Yapay zeka tahmin ve verimliliği artırabilir, ancak tam bir ikame olarak değil, onunla birlikte en iyi şekilde çalışır.

Bu yazıyı şu şekilde özetleyin: