1. Boshlash: - Work = Available
- i = 1,2, …, n lar uchun Finish [i] = false.
2. (a) Finish [i] = false va (b) Need[i] Work bo‘ladigan i ni aniqlash (topish). - Agar bunday i bo‘lmasa, 4-qadamga o‘tish.
3. Work = Work + Allocation[i] - Finish[i] = true
- 2-qadamga o‘tish.
4. Agar barcha i lar uchun Finish [i] == true bo‘lsa, u holda tizim xavfsiz holatda bo‘ladi. Pi jarayon uchun resurslarga so‘rov algoritmi Request = Pi jarayon uchun uchun so‘rovlar vektori. - 1. Agar Requesti Needi bo‘lsa, 2-qadamga o‘tish. Aks holda istisno holati yaratiladi, chunki jarayon o‘zining maksimal ehtiyojidan oshib ketdi.
- 2. Agar Requesti Available bo‘lsa, 3-qadamga o‘ting. Aks holda Pi jarayon resurs yopiq (band) bo‘lganligi uchun kutishi shart bo‘ladi.
- 3. Pi jarayonga resurslarni ajratishni holatni quyidagi ko‘rinishda modifikatsiyalagan holatda rejalashtirish:
- Available = Available - Requesti;
- Allocationi = Allocationi + Requesti;
- Needi = Needi – Requesti;;
- Agar holat xavfsiz bo‘lsa resurs Pi ga ajratilgan.
- Agar holat xavfli bo‘lsa Pi kutadi; resurslarni taqsimlashning oldingi holatini tiklanadi.
Bankir algoritmining qo‘llanilishiga misol - P0 dan P4 gacha 5 ta jarayon berilgan bo’lsin;
- resurslarning 3 ta turi - A (10 nusxa), B (5 nusxa) va C (7 nusxa).
- T0 vaqtdagi (boshlang’ich) holat:
Do'stlaringiz bilan baham: |