Bu, bankacının kullandığı bir algoritmadır. kilitlenmeyi önlemek Ve kaynakları tahsis et Bilgisayar sistemindeki her işlemin güvenli bir şekilde gerçekleştirilmesi. ' S-Devleti' Her bir sürece tahsise izin verilip verilmeyeceğine karar vermeden önce olası tüm testleri veya faaliyetleri inceler. Ayrıca işletim sisteminin kaynakları tüm süreçler arasında başarılı bir şekilde paylaşmasına yardımcı olur. Bankacının algoritması, banka sisteminin tahsis kaynaklarını güvenli bir şekilde simüle etmesine yardımcı olmak için bir kişiye bir kredi tutarına yaptırım uygulanması gerekip gerekmediğini kontrol ettiği için bu adı almıştır. Bu bölümde şunları öğreneceğiz: Bankacının Algoritması detayda. Ayrıca sorunları temel alarak çözeceğiz. Bankacının Algoritması . Banker Algoritmasını anlamak için öncelikle onun gerçek bir örneğini göreceğiz.
Belirli bir bankadaki hesap sahiplerinin sayısının 'n' olduğunu ve bankadaki toplam paranın 'T' olduğunu varsayalım. Hesap sahibi kredi başvurusunda bulunursa; Banka öncelikle kredi tutarını tam nakitten çıkarır ve daha sonra kredi tutarını onaylamak için nakit farkının T'den büyük olduğunu tahmin eder. Bu adımlar, başka bir kişinin kredi başvurusunda bulunması veya bankadan bir miktar para çekmesi durumunda, bankanın, bankacılık sisteminin işlevselliğinde herhangi bir kısıtlama olmaksızın her şeyi yönetmesine ve işletmesine yardımcı olması nedeniyle atılmaktadır.
Benzer şekilde, bir şekilde çalışır işletim sistemi . Bir bilgisayar sisteminde yeni bir süreç oluşturulduğunda, sürecin işletim sistemine yaklaşan süreçler, kaynaklarına yönelik istekler, sayılmaları ve gecikmeler gibi her türlü bilgiyi sağlaması gerekir. Bu kriterlere dayanarak işletim sistemi, sistemde kilitlenme yaşanmaması için hangi işlem sırasının yürütülmesi veya beklenmesi gerektiğine karar verir. Bu nedenle aynı zamanda olarak da bilinir. kilitlenmeden kaçınma algoritması veya kilitlenme tespiti işletim sisteminde.
Avantajları
Banker algoritmasının temel özellikleri şunlardır:
- Her sürecin gereksinimlerini karşılayan çeşitli kaynakları içerir.
- Her süreç, yaklaşan kaynak istekleri, kaynak sayısı ve kaynakların ne kadar süreyle tutulacağı konusunda işletim sistemine bilgi sağlamalıdır.
- İşletim sisteminin, bilgisayar sistemindeki her kaynak türü için süreç isteklerini yönetmesine ve kontrol etmesine yardımcı olur.
- Algoritma, her işlemin bir sistemdeki maksimum sayıda kaynağı tutabileceğini gösteren bir Maksimum kaynak niteliğine sahiptir.
Dezavantajları
- Sabit sayıda işlem gerektirir ve işlem yürütülürken sistemde hiçbir ek işlem başlatılamaz.
- Algoritma artık süreçlerin görevlerini yerine getirirken maksimum ihtiyaçlarını değiştirmesine izin vermiyor.
- Her prosesin sistem için maksimum kaynak gereksinimlerini önceden bilmesi ve belirtmesi gerekir.
- Kaynak taleplerinin sayısı sınırlı bir sürede verilebilir ancak kaynakların tahsisine ilişkin süre sınırı bir yıldır.
Bir bankacının algoritmasıyla çalışırken üç şey hakkında bilgi sahibi olmak istenir:
- Sistemdeki her kaynak için her sürecin ne kadar talep edebileceği. [ ile gösterilir MAKS ] rica etmek.
- Her bir işlemin şu anda bir sistemdeki her bir kaynağı ne kadar tuttuğu. [ ile gösterilir TAHSİS EDİLDİ ] kaynak.
- Sistemde mevcut olan her kaynağın sayısını temsil eder. [ ile gösterilir MEVCUT ] kaynak.
Bankacının algoritmasında uygulanan önemli veri yapıları terimleri aşağıda verilmiştir:
N'nin işlem sayısı olduğunu ve m'nin bir bilgisayar sisteminde kullanılan her kaynak türünün sayısı olduğunu varsayalım.
Nedd[i][j] = Maks[i][j] - Tahsis[i][j].
Banker Algoritması, süreçleri kontrol etmek ve sistemdeki kilitlenmeyi önlemek için güvenlik algoritması ile kaynak isteği algoritmasının birleşimidir:
Güvenlik Algoritması
Bir sistemin güvenli durumda olup olmadığını veya bankacı algoritmasındaki güvenli sırayı takip edip etmediğini kontrol etmek için kullanılan bir güvenlik algoritmasıdır:
1. İki vektör var Wok Ve Sona ermek bir güvenlik algoritmasında m ve n uzunluğundadır.
Başlatma: Çalışma = Mevcut
Bitiş[i] = yanlış; ben = 0, 1, 2, 3, 4… n - 1 için.
2. Her tür kaynak [i] için kullanılabilirlik durumunu kontrol edin, örneğin:
İhtiyacım var]<= work
Bitir[i] == yanlış
i yoksa 4. adıma geçin.=>
3. İş = İş + Tahsis(i) // yeni kaynak tahsisi almak için
Bitiş[i] = doğru
Bir sonraki işlem için kaynak kullanılabilirliği durumunu kontrol etmek üzere 2. adıma gidin.
4. Eğer Bitiş[i] == doğru ise; sistemin tüm işlemler için güvenli olduğu anlamına gelir.
Kaynak İsteği Algoritması
Bir kaynak isteği algoritması, bir süreç bir sistemdeki her tür kaynak isteğini bir istek matrisi olarak yaptığında sistemin nasıl davranacağını kontrol eder.
Her P[i] işlemi için bir kaynak istek dizisi R[i] oluşturalım. Kaynak Talebi iseBen[j] 'K'ye eşittir; bu, P[i] sürecinin sistemde R[j] Kaynak tipinin 'k' örneğini gerektirdiği anlamına gelir.
1. Sayısı ne zaman talep edilen kaynaklar her türden daha azdır İhtiyaç kaynaklar için 2. adıma gidin ve eğer koşul başarısız olursa, bu P[i] sürecinin kaynak için maksimum talebini aştığı anlamına gelir. İfadenin önerdiği gibi:
Eğer Talep(i)<= need
2. adıma gidin;=>
2. Ve her türden istenen kaynakların sayısı, her süreç için mevcut kaynaktan az olduğunda (3) adıma gidin. İfadenin önerdiği gibi:
Eğer Talep(i)<= available
Aksi halde, P[i] Süreci kaynağın kullanıma uygun olmaması nedeniyle beklemesi gerekir.=>
3. Talep edilen kaynak durum değiştirilerek sürece tahsis edildiğinde:
Mevcut = Mevcut - Talep
Tahsis(i) = Tahsis(i) + Talep (i)
İhtiyaçBen= İhtiyaçBen- Rica etmekBen
Kaynak tahsis durumu güvenli olduğunda, kaynakları P(i) sürecine tahsis edilir. Ve eğer yeni durum güvenli değilse, P(i) Sürecinin her R(i) İsteği türünü beklemesi ve eski kaynak tahsisi durumunu geri yüklemesi gerekir.
Örnek: Beş P1, P2, P3, P4, P5 sürecini ve üç A, B ve C kaynak türünü içeren bir sistem düşünün. Kaynak türleri aşağıda verilmiştir: A'nın 10, B'nin 5 ve C kaynak türünün 7 örneği vardır.
İşlem | Paylaştırma ABC | Maksimum ABC | Mevcut ABC |
---|---|---|---|
P1 | 0 1 0 | 7 5 3 | 3 3 2 |
P2 | 200 | 3 2 2 | |
P3 | 3 0 2 | 9 0 2 | |
P4 | 2 1 1 | 2 2 2 | |
P5 | 0 0 2 | 4 3 3 |
Bankacının algoritmasını kullanarak aşağıdaki soruları yanıtlayın:
- İhtiyaç matrisinin referansı nedir?
- Sistemin güvenli olup olmadığını belirleyin.
- P1 süreci için kaynak isteği (1, 0, 0) sistem bu isteği hemen kabul ederse ne olur?
Yıllar. 2: İhtiyaç matrisinin içeriği aşağıdaki gibidir:
İhtiyaç [i] = Maksimum [i] - Tahsis [i]
P1 İhtiyacı: (7, 5, 3) - (0, 1, 0) = 7, 4, 3
P2 İhtiyacı: (3, 2, 2) - (2, 0, 0) = 1, 2, 2
P3 İhtiyacı: (9, 0, 2) - (3, 0, 2) = 6, 0, 0
P4 İhtiyacı: (2, 2, 2) - (2, 1, 1) = 0, 1, 1
P5 İhtiyacı: (4, 3, 3) - (0, 0, 2) = 4, 3, 1
İşlem | İhtiyaç ABC |
---|---|
P1 | 7 4 3 |
P2 | 1 2 2 |
P3 | 6 0 0 |
P4 | 0 1 1 |
P5 | 4 3 1 |
Böylece ihtiyaç matrisinin içeriğini oluşturduk.
Cevap. 2: Banker Algoritmasını Uygulayın:
A, B ve C'nin Mevcut Kaynakları 3, 3 ve 2'dir.
Şimdi her işlem için her tür kaynak isteğinin mevcut olup olmadığını kontrol ediyoruz.
Aşama 1: P1 Süreci için:
İhtiyaç<= available< p>
7, 4, 3<= 2 3, condition is YANLIŞ .=>
Yani başka bir süreci inceliyoruz, P2.
Adım 2: P2 Süreci için:
İhtiyaç<= available< p>
1, 2, 2<= 2 3, condition doğru=>
Yeni mevcut = mevcut + Tahsis
(3, 3, 2) + (2, 0, 0) => 5, 3, 2
Benzer şekilde başka bir P3 sürecini inceliyoruz.
Aşama 3: P3 Süreci için:
P3 İhtiyacı<= available< p>
6, 0, 0<= 2 5, 3, condition is YANLIŞ .=>
Benzer şekilde başka bir süreci inceliyoruz, P4.
Adım 4: P4 Süreci için:
P4 İhtiyacı<= available< p>
0, 1, 1<= 2 5, 3, condition is doğru=>
Yeni Kullanılabilir kaynak = Kullanılabilir + Tahsis
5, 3, 2 + 2, 1, 1 => 7, 4, 3
Benzer şekilde başka bir P5 sürecini inceliyoruz.
Adım 5: P5 Süreci için:
P5 İhtiyacı<= available< p>
4, 3, 1<= 3 7, 4, condition is doğru=>
Yeni kullanılabilir kaynak = Kullanılabilir + Tahsis
7, 4, 3 + 0, 0, 2 => 7, 4, 5
Şimdi P1 ve P3 süreçleri için her tür kaynak isteğini tekrar inceliyoruz.
Adım 6: P1 Süreci için:
P1 İhtiyacı<= available< p>
7, 4, 3<= 5 7, 4, condition is doğru=>
Yeni Kullanılabilir Kaynak = Kullanılabilir + Tahsis
7, 4, 5 + 0, 1, 0 => 7, 5, 5
Yani başka bir P2 sürecini inceliyoruz.
Adım 7: P3 Süreci için:
P3 İhtiyacı<= available< p>
6, 0, 0<= 5 7, 5, condition is true< p>
Yeni Kullanılabilir Kaynak = Kullanılabilir + Tahsis
7, 5, 5 + 3, 0, 2 => 10, 5, 7
Bu nedenle, güvenli durumu ve P2, P4, P5, P1 ve P3 gibi güvenli sırayı bulmak için bankacının algoritmasını uygularız.
java koleksiyonları java
Yıllar. 3: İsteği (1, 0, 2) vermek için önce şunu kontrol etmeliyiz Rica etmek<= available< strong>yani (1, 0, 2)<= (3, 3, 2), since the condition is true. so process p1 gets request immediately.< p>
=>=>