سؤال

هل يمكن لشخص ما تقديم نهج خطوة لحل المشكلة التالية باستخدام خوارزمية Banker؟ كيف يمكنني تحديد ما إذا كانت "حالة آمنة" موجودة؟ ما هو المقصود عند إجراء عملية "تشغيل إلى الانتهاء"؟

في هذا المثال، لدي أربع عمليات و 10 مثيلات من نفس المورد.

          Resources Allocated | Resources Needed
Process A                   1                  6
Process B                   1                  5
Process C                   2                  4
Process D                   4                  7
هل كانت مفيدة؟

المحلول

لكل ويكيبيديا,

تعتبر حالة (كما هو الحال في المثال أعلاه) آمنة إذا كان ذلك ممكنا لجميع العمليات لإنهاء تنفيذ (إنهاء). نظرا لأن النظام لا يمكن أن يعرف متى ستنتهي العملية، أو عدد الموارد التي ستطلبها ذلك بعد ذلك، يفترض النظام أن تحاول جميع العمليات في نهاية المطاف الحصول على أقصى قدر من الموارد والإنهاء بعد ذلك قريبا. هذا افتراض معقول في معظم الحالات لأن النظام لا يهتم بشكل خاص بمدى استمرار كل عملية (على الأقل ليس من منظور تجنب الجمود). أيضا، إذا انتهت العملية دون الحصول على أقصى قدر من مواردها، إلا أنها تجعل الأمر أسهل فقط في النظام.

يمكن تشغيل العملية إلى إكمالها عند إتاحة عدد كل نوع من أنواع الموارد التي تحتاجها، بين نفسها والنظام. إذا احتاج عملية إلى 8 وحدات من مورد معين، فقد خصصت 5 وحدات، فيمكنها تشغيلها إلى إكمال إذا كان هناك ما لا يقل عن 3 وحدات أخرى تتوفر فيها.

نظرا لمثالك، يقوم النظام بإدارة موردا واحدا، مع توفر 10 وحدات. تم تخصيص العمليات الجارية وحدات 8 (1 + 1 + 2 + 4) وحدات، لذلك هناك 2 وحدة اليسار. المبلغ الذي تحتاجه أي عملية إلى إكماله هو الحد الأقصى الذي تم تخصيصه بالفعل، لذلك في البداية، الاحتياجات 5 أكثر (6-1)، تحتاج B 4 أكثر (5-1)، C يحتاج إلى 2 أكثر (4- 2)، و d يحتاج 3 أكثر (7-4). هناك 2 متوفرة، لذلك يسمح لعملية C بالاستكجئة، وبالتالي تحرير وحدات 2 (ترك 4 متاح). في هذه المرحلة، يمكن تشغيل B أو D (سنفترض د). بمجرد الانتهاء من D، ستكون هناك 8 وحدات متوفرة، وبعد ذلك يمكن تشغيل أي A أو B (سنفترض أ). بمجرد الانتهاء، ستكون هناك 9 وحدات متوفرة، ثم يمكن تشغيل B، والتي ستترك جميع الوحدات العشرة المتبقية لمزيد من العمل. نظرا لأنه يمكننا تحديد طلب العمليات التي ستسمح بتشغيل جميع العمليات، فإن الدولة تعتبر "آمنة".

نصائح أخرى

  Resources Allocated | Resources Needed    claim
  Process A      1                  6            5
  Process B      1                  5            4
  Process C      2                  4            2
  Process D      4                  7            3

موارد إجمالية مخصصة هي 8 من النتائج لم يتم تخصيصها بعد وبالتالي يتم تخصيصها لمعالجة C. والعملية C بعد الانتهاء من الانتهاء من 4 موارد يمكن إعطاءها لمعالجة B، العملية ب بعد الانتهاء من الموارد التي يتم تخصيصها لمعالجة عملية N بعد الانتهاء من تخصيص الموارد 2 لمعالجة د

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top