# مجدول المهام

مجدول المهام هو تطبيق حاسوبي يتحكم بتنفيذ البرامج _التي تعمل في الخلفية والغير مُراقَبة_ للمهام . وهذا ما يدعى أيضاً الجدولة بالدفعات، حيث أن تنفيذ المهام الغير تفاعلية يدعى غالباً بـ المعالجة بالدفعات. وهناك أيضاً مرادفات أخرى لهذا الاسم تتضمن نظام الدفعات و نظام إدارة الموارد الموزعة (DRMS) ومدير الموارد الموزعة (DRM)، والأكثر شيوعاً اليوم، أتمتة الأعمال (workload automation). تُعرف هيكلة المهام الجارية باسم رتل/طابور المهام.
تعمل مجدولات المهام الحديثة على تقديم واجهة المستخدم الرسومية ونقطة تحكم لضبط وتعريف الإجراءات التي تعمل في الخلفية ضمن شبكة موزََّعة من الحواسيب. تُطلب مجدولات المهام بشكل متزايد لتنسيق عملية التكامل بين أنشطة الأعمال الآنية ومعالجة البيانات عبر أنظمة التشغيل المختلفة وكذلك بيئات التطبيقات التجارية.
يجب عدم الخلط بين جدولة المهام وجدولة العمليات، حيث تعني الأخيرة توكيل العمليات الجارية إلىالمعالجات عبر نظام التشغيل.

## لمحة عامة

تتضمن المزايا الأساسية المتوقعة من تطبيقات مجدولات المهام التالي:
* الواجهات التي تساعد على تحديد جريان العمل و/أو اعتماديات المهام.
* تسليم المهام المنجزة تلقائياً.
* واجهات لإدارة الإجراءات.
* أولويات و/أو أرتال للتحكم بترتيب تنفيذ المهام الغير مرتبطة.
إذا احتوى تطبيق ما من مجال مختلف تماماً على بعض أو كل هذه المزايا، يعتبر ذلك التطبيق متمتع بإمكانيات جدولة المهام.
تُزوِّد معظم أنظمة التشغيل مثل يونيكس وويندوز إمكانيات جدولة مهام أساسية، وذلك بشكل ملحوظ عبر آت (at) في يونيكس ومجدول مهام ويندوز. كما توفِّر خدمات استضافة الوب إمكانيات جدولة المهام عبر لوحة تحكم أو "webcron solution". كما يوجد العديد من البرامج الأخرى التي لها إمكانيات جدولة المهام. قد تتطلب المنظمات المحتاجة لأتمتة أعمال نظم المعلومات غير المرتبطة لمزايا إضافية من مجدول المهام، مثل:
* جدولة في الزمن الحقيقي مبنية على الأحداث الخارجيّة وغير المتوقعة.
* إعادة ضبط وتشغيل تلقائية في حالات الفشل
* التنبيه والإخطار عن مجموع العمليات
* توليد تقارير الخطأ
* تدقيق عمليات التعقب لأهداف تتعلق بتجاوبية التوجيه والتنظيم
يمكن تطوير هذه الإمكانيات المتقدمة من قبل مطورين هواة، ولكن غالباً ما يتم تقديمها من قبل مطورين متخصصين في تطبيقات إدارة الأنظمة.

## مفاهيم أساسية

يوجد العديد من المفاهيم الأساسية لتفسير معظم مجدولات المهام الشائعة مع وجود تباينات بسيطة:
* المهام
* الاعتماديات
* جريان المهام
* المستخدمون
يوجد خلف أدوات الجدولة الأساسية في نظام التشغيل معماريتين رئيسيتين لتطبيقات جدولة المهام:
* معماريّة سيد/عميل وهي المعمارية القديمة الأولى لتطبيقات جدولة المهام، حيث يتم تنصيب تطبيق جدولة المهام على آلة واحدة (السيّد أو بالإنجليزية Master)، بينما يتم تنصيب عناصر صغيرة جداً (العميل، بالإنجليزية Agent) على الأجهزة المُنتِجة وبحيث تنتظر هذه العناصر الأوامر من السيّد وتنفذّها، ثم تُعيد النتيجة للسيّد.
* المعمارية التعاونية، وهو نموذج غير مركزي، حيث يكون كل جهاز قادراً على المساعدة في الجدولة وكذلك نقل المهام المجدولة محلياً لأجهزة تعاونية أخرى، مما يتيح موازنة ديناميكية للعمل بحيث يُستفاد من الموارد بأقصى ما يمكن ويتم تحقيق مُتاحية (جهوزيّة) عالية لضمان إنجاز المهمة.

## تأريخ

لجدولة المهام تاريخ طويل، فقد كانت مجدولات المهام إحدى العناصر الأساسية لبنية البيانات التحتية منذ بدايات الأنظمة الحاسوبيّة. في البداية تم معالجة مجموعات من البطاقات المثقبة مجموعة تلو الأخرى، ومنه وُجد مصطلح «المعالجة بالدفعات».
يمكننا من وجهة نظر تاريخية التمييز بين زمنَين لمجدولات المهام:
* زمن الحواسيب الأوليّة
** لغة تحكّم المهام (Job Control Language واختصاراً JCL) في حواسيب آي بي إم، حيث بُنيت هذه الحواسيب بشكل أساسي على JCL للتعامل مع الاعتماديات. تتجسد هذه الفترة بتطوير هيكلة حلول الجدولة المتقدمة لإدارة الأنظمة وأتمتة الأدوات في الحواسيب.
* زمن الأنظمة المفتوحة
** حيث يوجد مجدولات حديثة للعديد من المعماريّات وأنظمة التشغيل. ومع وجود أدوات الجدولة القياسية المحصورة في الأوامر مثل آت (at) في يونكس. فقدازدادت الحاجة لمجدولات المهام القياسية مع ازدياد تبني بيئات الحوسبة الموزَّعة.
يوجد أيضاً أزمنة وفترات مختلفة فيما يتعلق بنوع الجدولة:
* المعالجة بالدفعات - التنفيذ التقليدي المبني على الوقت والتاريخ للمهام التي تعمل في الخلفية وذلك بناءً على فترة محددة تكون فيها الموارد متاحة لمعالجة الدفعات. ونتيجة لذلك تم تغيير سلوك الحواسيب الأصلية لبيئات الأنظمة المفتوحة.
* أتمتة المعالجة المبنية على الأحداث - حيث ببساطة لا يمكن للعمليات التي تجري في الخلفية أن تعمل في وقت محدد، إما لأن طبيعة الطلبات التجارية مبنية على ظهور أحداث خارجية (مثل وصول طلب من الزبون أو تحديث للمخزن من فرع المؤن) أو بسبب عدم وجود نافذة دفعات ناقصة.
* جدولة المهام الخدمية - لقد شهدت التطورات في البنية الخدمية نقلة في انتشار جدولة المهام كخدمة أساسية في نظم المعلومات والتي يمكن أن تلعب دوراً في التكامل ما بين التطبيقات التجارية الموجودة وخدمات الوب الجديدة المبنية على التطبيقات الآنية.

## جدولة

تستخدم مخططات عديدة لتحديد المهمة التي يجب أن تُنفَّذ. تتضمن المعطيات المأخوذة في الاعتبار:
* أولوية المهمة
* مُتاحيّة المصادر الحاسوبية
* مفتاح الرخصة في حالة استخدام المهمة لتطبيق مرخّص
* وقت التنفيذ المحدد للمستخدم
* عدد المهام المحاكاة المسموح بها للمستخدم
* الوقت المُقدَّر للتنفيذ
* الوقت المنقضي للتنفيذ
* مُتاحيّة الأجهزة والأدوات الخارجية
* تواتر الأحداث المحدَّدة
* اعتماديّة المهام
* اعتمادية الملفات
* اعتمادية مُحفّز العملية