إنها خوارزمية مصرفية تستخدم ل تجنب الجمود و تخصيص موارد بأمان لكل عملية في نظام الكمبيوتر. ال ' الدولة S' يفحص جميع الاختبارات أو الأنشطة الممكنة قبل أن يقرر ما إذا كان ينبغي السماح بالتخصيص لكل عملية. كما أنه يساعد نظام التشغيل على مشاركة الموارد بنجاح بين كافة العمليات. تم تسمية خوارزمية المصرفي لأنها تتحقق مما إذا كان ينبغي معاقبة الشخص بمبلغ القرض أم لا لمساعدة النظام البنكي على محاكاة تخصيص الموارد بأمان. في هذا القسم سوف نتعلم خوارزمية المصرفي بالتفصيل. أيضًا، سوف نقوم بحل المشكلات بناءً على خوارزمية المصرفي . لفهم خوارزمية المصرفي أولاً، سنرى مثالًا حقيقيًا لها.
لنفترض أن عدد أصحاب الحسابات في بنك معين هو 'n'، وإجمالي الأموال في البنك هو 'T'. إذا تقدم صاحب الحساب بطلب للحصول على قرض؛ أولاً، يقوم البنك بطرح مبلغ القرض من كامل المبلغ النقدي ثم يقوم بتقدير الفرق النقدي أكبر من T للموافقة على مبلغ القرض. يتم اتخاذ هذه الخطوات لأنه إذا تقدم شخص آخر بطلب للحصول على قرض أو سحب بعض المبلغ من البنك، فإن ذلك يساعد البنك على إدارة وتشغيل كل الأشياء دون أي قيود في وظائف النظام المصرفي.
وبالمثل، فإنه يعمل في نظام التشغيل . عند إنشاء عملية جديدة في نظام الكمبيوتر، يجب أن توفر العملية جميع أنواع المعلومات لنظام التشغيل مثل العمليات القادمة وطلبات مواردها وإحصائها والتأخير. بناءً على هذه المعايير، يقرر نظام التشغيل تسلسل العملية الذي يجب تنفيذه أو انتظاره حتى لا يحدث أي توقف تام في النظام. ولذلك، فإنه يعرف أيضا باسم خوارزمية تجنب الجمود أو كشف الجمود في نظام التشغيل.
مزايا
فيما يلي الخصائص الأساسية لخوارزمية المصرفي:
- أنه يحتوي على موارد مختلفة تلبي متطلبات كل عملية.
- يجب أن توفر كل عملية معلومات لنظام التشغيل لطلبات الموارد القادمة، وعدد الموارد، ومدة الاحتفاظ بالموارد.
- فهو يساعد نظام التشغيل على إدارة ومراقبة طلبات العملية لكل نوع من الموارد في نظام الكمبيوتر.
- تحتوي الخوارزمية على سمة المورد الأقصى التي تشير إلى أن كل عملية يمكنها الاحتفاظ بأقصى عدد من الموارد في النظام.
سلبيات
- ويتطلب عدداً محدداً من العمليات، ولا يمكن بدء أي عمليات إضافية في النظام أثناء تنفيذ العملية.
- لم تعد الخوارزمية تسمح للعمليات بتبادل أقصى احتياجاتها أثناء معالجة مهامها.
- يجب أن تعرف كل عملية وتحدد الحد الأقصى لمتطلباتها من الموارد مسبقًا للنظام.
- يمكن منح عدد طلبات الموارد في وقت محدد، ولكن الحد الزمني لتخصيص الموارد هو عام واحد.
عند العمل مع خوارزمية مصرفي، فإنه يطلب معرفة ثلاثة أشياء:
- المقدار الذي يمكن أن تطلبه كل عملية لكل مورد في النظام. ويشار إليه بـ [ الأعلى ] طلب.
- مقدار احتفاظ كل عملية حاليًا بكل مورد في النظام. ويشار إليه بـ [ مخصص ] الموارد.
- وهو يمثل عدد كل مورد متوفر حاليًا في النظام. ويشار إليه بـ [ متاح ] الموارد.
فيما يلي مصطلحات هياكل البيانات الهامة المطبقة في خوارزمية المصرفي على النحو التالي:
لنفترض أن n هو عدد العمليات، وm هو عدد كل نوع من الموارد المستخدمة في نظام الكمبيوتر.
Nedd[i][j] = Max[i][j] - التخصيص[i][j].
خوارزمية المصرفي هي مزيج من خوارزمية الأمان وخوارزمية طلب الموارد للتحكم في العمليات وتجنب الجمود في النظام:
خوارزمية السلامة
إنها خوارزمية أمان تستخدم للتحقق مما إذا كان النظام في حالة آمنة أم لا أو يتبع التسلسل الآمن في خوارزمية المصرفي:
1. هناك نوعان من المتجهات ووك و ينهي الطول m و n في خوارزمية السلامة.
التهيئة: العمل = متاح
إنهاء[i] = خطأ؛ لأني = 0، 1، 2، 3، 4… ن - 1.
2. تحقق من حالة التوفر لكل نوع من الموارد [i]، مثل:
انا احتاج]<= work
إنهاء[i] == خطأ
إذا لم يكن i موجودًا، فانتقل إلى الخطوة 4.=>
3. العمل = العمل + تخصيص (i) // للحصول على تخصيص جديد للموارد
إنهاء [i] = صحيح
انتقل إلى الخطوة 2 للتحقق من حالة توفر الموارد للعملية التالية.
4. إذا كان Finish[i] == true; فهذا يعني أن النظام آمن لجميع العمليات.
العاب imessage على الاندرويد
خوارزمية طلب الموارد
تتحقق خوارزمية طلب المورد من كيفية تصرف النظام عندما تقوم العملية بإجراء كل نوع من طلبات الموارد في النظام كمصفوفة طلب.
دعونا ننشئ مصفوفة طلب مورد R[i] لكل عملية P[i]. إذا كان طلب المواردأنا[j] يساوي 'K'، مما يعني أن العملية P[i] تتطلب مثيلات 'k' من نوع الموارد R[j] في النظام.
1. عندما يكون عدد الموارد المطلوبة من كل نوع أقل من يحتاج الموارد، انتقل إلى الخطوة 2 وإذا فشل الشرط، مما يعني أن العملية P[i] تتجاوز الحد الأقصى للمطالبة بالمورد. كما يوحي التعبير:
إذا طلب (ط)<= need
انتقل إلى الخطوة 2؛=>
2. وعندما يكون عدد الموارد المطلوبة لكل نوع أقل من المورد المتاح لكل عملية، انتقل إلى الخطوة (3). كما يوحي التعبير:
إذا طلب (ط)<= available
وإلا، يجب أن تنتظر العملية P[i] المورد نظرًا لأنه غير متاح للاستخدام.=>
3. عندما يتم تخصيص المورد المطلوب للعملية عن طريق تغيير الحالة:
نوع الدمج
متاح = متاح - طلب
التخصيص(i) = التخصيص(i) + الطلب (i)
يحتاجأنا= الحاجةأنا- طلبأنا
عندما تكون حالة تخصيص الموارد آمنة، يتم تخصيص مواردها للعملية P(i). وإذا كانت الحالة الجديدة غير آمنة، فيجب على العملية P (i) انتظار كل نوع من أنواع الطلبات R (i) واستعادة حالة تخصيص الموارد القديمة.
مثال: خذ بعين الاعتبار نظامًا يحتوي على خمس عمليات P1 وP2 وP3 وP4 وP5 وأنواع الموارد الثلاثة A وB وC. فيما يلي أنواع الموارد: A لديه 10، B لديه 5 ونوع المورد C لديه 7 مثيلات.
عملية | توزيع أ ب ج | الأعلى أ ب ج | متاح أ ب ج |
---|---|---|---|
ص1 | 0 1 0 | 7 5 3 | 3 3 2 |
P2 | 200 | 3 2 2 | |
P3 | 3 0 2 | 9 0 2 | |
ص4 | 2 1 1 | 2 2 2 | |
ص5 | 0 0 2 | 4 3 3 |
أجب عن الأسئلة التالية باستخدام خوارزمية المصرفي:
- ما هو مرجع مصفوفة الحاجة؟
- تحديد ما إذا كان النظام آمنًا أم لا.
- ماذا سيحدث إذا كان طلب المورد (1، 0، 0) للعملية P1 هل يستطيع النظام قبول هذا الطلب على الفور؟
أعوام. 2: سياق مصفوفة الحاجة هو كما يلي:
الحاجة [i] = الحد الأقصى [i] - التخصيص [i]
الحاجة إلى P1: (7، 5، 3) - (0، 1، 0) = 7، 4، 3
الحاجة إلى P2: (3، 2، 2) - (2، 0، 0) = 1، 2، 2
الحاجة إلى P3: (9، 0، 2) - (3، 0، 2) = 6، 0، 0
الحاجة إلى P4: (2، 2، 2) - (2، 1، 1) = 0، 1، 1
الحاجة إلى P5: (4، 3، 3) - (0، 0، 2) = 4، 3، 1
عملية | يحتاج أ ب ج |
---|---|
ص1 | 7 4 3 |
P2 | 1 2 2 |
P3 | 6 0 0 |
ص4 | 0 1 1 |
ص5 | 4 3 1 |
ومن ثم، أنشأنا سياق مصفوفة الحاجة.
الجواب. 2: تطبيق خوارزمية المصرفي:
الموارد المتاحة لـ A وB وC هي 3 و3 و2.
نتحقق الآن مما إذا كان كل نوع من طلبات الموارد متاحًا لكل عملية.
الخطوة 1: بالنسبة للعملية P1:
يحتاج<= available< p>
7، 4، 3<= 2 3, condition is خطأ شنيع .=>
لذا، فإننا نفحص عملية أخرى، P2.
الخطوة 2: للعملية P2:
يحتاج<= available< p>
1، 2، 2<= 2 3, condition حقيقي=>
الجديد المتاح = متاح + التخصيص
(3، 3، 2) + (2، 0، 0) => 5، 3، 2
وبالمثل، فإننا نفحص عملية أخرى P3.
الخطوه 3: بالنسبة للعملية P3:
الحاجة P3<= available< p>
6، 0، 0<= 2 5, 3, condition is خطأ شنيع .=>
وبالمثل، فإننا نفحص عملية أخرى، P4.
الخطوة 4: بالنسبة للعملية P4:
الحاجة P4<= available< p>
0، 1، 1<= 2 5, 3, condition is حقيقي=>
المورد الجديد المتاح = متاح + التخصيص
5، 3، 2 + 2، 1، 1 => 7، 4، 3
25 ج إلى ك
وبالمثل، فإننا نفحص عملية أخرى P5.
الخطوة 5: بالنسبة للعملية P5:
الحاجة P5<= available< p>
4، 3، 1<= 3 7, 4, condition is حقيقي=>
المورد الجديد المتاح = متاح + التخصيص
7، 4، 3 + 0، 0، 2 => 7، 4، 5
الآن، نقوم مرة أخرى بفحص كل نوع من طلبات الموارد للعمليات P1 وP3.
الخطوة 6: بالنسبة للعملية P1:
الحاجة P1<= available< p>
7، 4، 3<= 5 7, 4, condition is حقيقي=>
المورد الجديد المتاح = متاح + التخصيص
7، 4، 5 + 0، 1، 0 => 7، 5، 5
لذلك، فإننا نفحص عملية أخرى P2.
الخطوة 7: بالنسبة للعملية P3:
الحاجة P3<= available< p>
6، 0، 0<= 5 7, 5, condition is true< p>
المورد الجديد المتاح = متاح + التخصيص
7، 5، 5 + 3، 0، 2 => 10، 5، 7
وبالتالي، نقوم بتنفيذ خوارزمية المصرفي للعثور على الحالة الآمنة والتسلسل الآمن مثل P2 وP4 وP5 وP1 وP3.
أعوام. 3: لمنح الطلب (1، 0، 2)، علينا أولاً التحقق من ذلك طلب<= available< strong>، أي (1، 0، 2)<= (3, 3, 2), since the condition is true. so process p1 gets request immediately.< p>
=>=>
قراءة ملف CSV في جافا=>