جولة روبن جدولة في البرمجة سي



ستزودك هذه المقالة بمعرفة مفصلة وشاملة عن كيفية تنفيذ Round Robin Scheduling في برمجة C.

في هذه المقالة سوف نتعرف على خوارزمية الجدولة المسماة خوارزمية جدولة round-robin ، ما هو round-robin؟ كيف تكتب برنامج؟ إلخ. دعونا نبدأ.

ما هي جدولة جولة روبن؟

Round Robin Scheduling هي خوارزمية جدولة يستخدمها النظام لجدولة استخدام وحدة المعالجة المركزية. هذه خوارزمية وقائية. توجد شريحة زمنية ثابتة مرتبطة بكل طلب تسمى الكم. يحفظ برنامج جدولة الوظيفة تقدم المهمة التي يتم تنفيذها حاليًا وينتقل إلى الوظيفة التالية الموجودة في قائمة الانتظار عندما يتم تنفيذ عملية معينة لفترة زمنية معينة.





جدولة روبن الجولة

مثال على مساحة الاسم c ++

لن تحتفظ أي عملية بوحدة المعالجة المركزية لفترة طويلة. يُطلق على التبديل اسم تبديل السياق. ربما تكون واحدة من أفضل خوارزميات الجدولة. تعتمد كفاءة هذه الخوارزمية على القيمة الكمومية.



جولة روبن جدولة الخوارزمية م

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

النظر في رمز المثال

#include int main () {int i، limit، total = 0، x، counter = 0، time_quantum int wait_time = 0، turnaround_time = 0، arrival_time [10]، burst_time [10]، temp [10] float average_wait_time، average_turnaround_time printf ('nEnter إجمالي عدد العمليات: t') scanf ('٪ d' ، & حد) x = حد لـ (i = 0 i0) {temp [i] = temp [i] - time_quantum total = total + time_quantum} if (temp [i] == 0 && counter == 1) {x-- printf ('nProcess [٪ d] tt٪ dtt ٪ dttt٪ d '، i + 1، burst_time [i] ، إجمالي - وقت الوصول [i] ، إجمالي - وقت الوصول [i] - وقت_الوصول [i]) wait_time = وقت الانتظار + الإجمالي - وقت الوصول [i] - وقت_النوم [i] وقت_وقت = turnaround_time + total - arrival_time [i] counter = 0} if (i == limit - 1) {i = 0} else if (arrival_time [i + 1]<= total) { i++ } else { i = 0 } } average_wait_time = wait_time * 1.0 / limit average_turnaround_time = turnaround_time * 1.0 / limit printf('nnAverage Waiting Time:t%f', average_wait_time) printf('nAvg Turnaround Time:t%fn', average_turnaround_time) return 0 }

انتاج:

تفسير:

في الكود أعلاه ، نطلب من المستخدم إدخال عدد العمليات ووقت الوصول ووقت الاندفاع لكل عملية. ثم نحسب وقت الانتظار ووقت الدوران باستخدام خوارزمية round-robin.

الجزء الرئيسي هنا هو حساب وقت الدوران ووقت الانتظار. يتم حساب وقت الاستدارة عن طريق إضافة إجمالي الوقت المستغرق وطرح وقت الوصول.

معالجة استثناء PL / SQL

يتم حساب وقت الانتظار بطرح وقت الوصول ووقت الاندفاع من الإجمالي وإضافة وقت الانتظار t0. هذه هي الطريقة التي يتم بها جدولة جولة روبن.



مزايا:

  • النفقات العامة المنخفضة لاتخاذ القرار.
  • على عكس الخوارزميات الأخرى ، فإنه يعطي أولوية متساوية لجميع العمليات.
  • نادرا ما يحدث الجوع في هذه العملية.

سلبيات:

  • تنخفض كفاءة النظام إذا كانت القيمة الكمومية منخفضة حيث يحدث التبديل المتكرر.
  • قد يصبح النظام غير مستجيب إذا كانت القيمة الكمومية عالية.

بهذا نصل إلى نهاية هذا المقال.

آمل أن تكون قد وجدت هذه المعلومات مفيدة ومفيدة ، ترقبوا المزيد من البرامج التعليمية حول مواضيع مماثلة. يمكنك أيضًا التحقق من برنامجنا التدريبي tاحصل على معرفة متعمقة حول jQuery مع تطبيقاته المختلفة ، يمكنك ذلك للتدريب المباشر عبر الإنترنت مع دعم على مدار الساعة طوال أيام الأسبوع وإمكانية الوصول مدى الحياة.قم بتنفيذ الكود أعلاه بسلاسل وتعديلات مختلفة. الآن ، لدينا فهم جيد لجميع المفاهيم الأساسية المتعلقة بالمؤشر.

الجدول الدوري لأدوات devops

لديك سؤال لنا؟ أذكرها في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك.