بسم الله الرحمن الرحيم.
في هذا المقال سنتحدث عن جدولة العمليات بشكل عام.
أنواع العمليات
إذا كانت لدينا أكثر من عملية موجودة في الذاكرة، فكيف ينفذ نظام التشغيل هذه العمليات؟
في البداية لا بد أن نعرف أن هناك أنواعاً للعمليات:
1. عمليات مرتبطة بالإدخال/الإخراج (I/O-Bound Processes): عمليات تتطلب الإدخال والإخراج بشكل متكرر (مثل قراءة الملفات)، فتقضي وقتاً طويلاً في انتظار اكتمال عمليات الإدخال/الإخراج.
2. عمليات مرتبطة بالمعالج (CPU-Bound Processes): عمليات تستهلك وقتاً مرتفعاً من المعالج وتقل فيها عمليات الإدخال/الإخراج (مثل العمليات الحسابية المعقدة).
دور نظام التشغيل
طيب، ما دور نظام التشغيل؟
ينظم نظام التشغيل جدولة هذه العمليات — أي يختار أي عملية يجب أن تتنفذ ثم التي بعدها ثم التي بعدها وهكذا — ويحاول تحقيق توازن بين عمليات الإدخال/الإخراج وعمليات المعالج:
شكل (1): طابوران: أحدهما للجاهزية والآخر للانتظار
الطوابير (Queues)
ما هي الطوابير أو الارتال Queues؟
الطابور هو مثل الدور الذي تأتيه فيأتي أول من يخلص أولاً — بنظام الوارد أولاً صادر أولاً FIFO (First-In First-Out):
وكما ذكرنا، يحافظ نظام التشغيل على طابورين:
طابور الجاهزية (Ready Queue): يحتوي على كتل التحكم بالعمليات PCBs الخاصة بالعمليات الجاهزة للتنفيذ والمنتظرة ليتم اختيارها للتنفيذ على المعالج.
طابور الانتظار (Wait Queue): الطوابير التي تنتظر فيها العمليات حدوث أحداث معينة، مثل:
- اكتمال عملية إدخال/إخراج (I/O Completion).
- وصول مقاطعة (Interrupt).
- انتهاء عملية فرعية (Termination of a Child Process).
شكل (2): تنقل العمليات بين الطوابير والمعالج
جدولة المعالج (CPU Scheduling)
طيب، كيف يجدول المعالج العمليات الموجودة في الطوابير؟
للجدولة نوعان:
1. مجدول المعالج قصير المدى (Short-Term CPU Scheduler)
ما هي مهمته؟ يبحث عن أقرب عملية جاهزة (Next Process) ويحمّلها على المعالج لتنفيذ «دفعة تشغيل» (CPU Burst).
ولماذا يجب أن يعمل بسرعة فائقة؟ لأن مدة الدفعة Burst قصيرة جداً (بضع ملي ثانية)، فإن استغرق المجدول وقتاً قريباً منها أدى ذلك إلى ضعف الأداء.
مثال:
لو كانت لدينا مجموعة من الدفعات وكل دفعة تستغرق 3 ملي ثانية، وزمن عمل المجدول 1 ملي ثانية:
الزمن الكلي لكل دورة = 3 + 1 = 4 ملي ثانية
الكفاءة الفعلية = 3 ÷ 4 = 75% تنفيذ فعلي
و25% ضياع في عملية الجدولة (Scheduling Overhead)
2. الجدولة متوسطة المدى (Mid-Term Scheduling) أو التبديل (Swapping)
طرحت هذه الجدولة لحل مشكلة نقص الموارد (Resources) مثل الذاكرة الرئيسية RAM.
كيف تعمل؟
- تبدأ بإخراج عمليات من الذاكرة (Swap Out) — أي تزيل العمليات المحددة من الذاكرة الرئيسية.
- ثم تمرر مساحة الذاكرة التي شغلتها العمليات المزالة لاستخدامها من قبل عمليات أخرى.
- ثم تعيد العمليات إلى الذاكرة (Swap In) لاحقاً عند توفر الموارد.
تبديل السياق (Context Switching)
تتم آلية عمل الجدولة عن طريق ما يسمى تبديل السياق Context Switching:
عند مقاطعة عملية ما، يُحفظ موقع عداد البرنامج (Program Counter) تلقائياً بواسطة العتاد في مكان يستطيع نظام التشغيل الوصول إليه. وبحسب بنية الحاسوب، قد يحفظ العتاد تلقائياً أجزاءً أخرى من سياق العملية (Context). بعد المقاطعة يكمل نظام التشغيل حفظ أي أجزاء إضافية من سياق العملية ويخزنها في كتلة تحكم العملية PCB.
وعند انتهاء المقاطعة يستخدم النظام السياق المحفوظ لاستعادة العملية — أي يستأنف تنفيذها من نقطة التوقف:
شكل (3): حفظ واستعادة سياق العملية
ملاحظة مهمة: العتاد يحفظ جزءاً من الـ Context تلقائياً، وبعدها يكمل نظام التشغيل حفظ الباقي.
وطبعاً سرعة التبديل تعتمد على العتاد ونظام التشغيل، وتكون عادة بالميكروثانية (جزء من المليون من الثانية).
لا تنسونا من صالح دعائكم.