Priority-Based Job Scheduler Using Binary Search Tree Priority-Based Job Scheduler Using Binary Search Tree Priority-Based Job Scheduler Using Binary Search Tree Priority-Based Job Scheduler Using Binary Search Tree Priority-Based Job Scheduler Using Binary Search Tree Priority-Based Job Scheduler Using Binary Search Tree Priority-Based Job Scheduler Using Binary Search Tree
تفاصيل العمل

نظام جدولة المهام باستخدام شجرة البحث الثنائية (BST) يهدف هذا المشروع إلى تصميم وتنفيذ نظام بسيط لجدولة المهام يعتمد على مستوى الأولوية (Priority) لكل مهمة. تم تطوير النظام باستخدام لغة Python مع تطبيق مفاهيم هياكل البيانات (Data Structures) مثل Queue و Binary Search Tree (BST) لإدارة المهام وتنفيذها بكفاءة. يقوم النظام باستقبال المهام الجديدة وإضافتها إلى قائمة انتظار أساسية، ثم يتم ترتيب هذه المهام داخل شجرة بحث ثنائية بناءً على مستوى الأولوية الخاصة بكل مهمة، بحيث يتم تنفيذ المهام ذات الأولوية الأعلى أولاً. فكرة عمل النظام يعتمد النظام على مرحلتين رئيسيتين لإدارة المهام: 1. استقبال المهام (Job Submission) عند إضافة مهمة جديدة، يتم وضعها أولاً داخل Queue تمثل قائمة انتظار للمهام الواردة. تحتوي كل مهمة على: اسم المهمة مستوى الأولوية الخاص بها 2. ترتيب المهام حسب الأولوية بعد استقبال المهام يتم نقلها من قائمة الانتظار إلى Binary Search Tree حيث يتم ترتيبها تلقائيًا بناءً على قيمة الأولوية. هذا يسمح للنظام بالوصول بسرعة إلى المهمة ذات الأولوية الأعلى. 3. تنفيذ المهام عند تنفيذ مهمة يقوم النظام باختيار المهمة ذات الأولوية الأعلى من الشجرة ثم تنفيذها وإزالتها من النظام. مكونات النظام يتكون المشروع من عدة Classes رئيسية: Node تمثل عقدة داخل شجرة البحث الثنائية وتحتوي على: بيانات المهمة المؤشر للعقدة اليسرى المؤشر للعقدة اليمنى BST (Binary Search Tree) تستخدم لتخزين المهام المرتبة حسب الأولوية وتحتوي على العمليات التالية: إدراج مهمة جديدة البحث عن أقل قيمة أولوية حذف مهمة بعد تنفيذها Queue تمثل قائمة انتظار بسيطة لاستقبال المهام قبل ترتيبها. وتتضمن العمليات التالية: إضافة مهمة جديدة (enqueue) إزالة مهمة من بداية القائمة (dequeue) التحقق من كون القائمة فارغة JobScheduler يمثل النظام الرئيسي الذي يدير عملية: استقبال المهام ترتيبها حسب الأولوية تنفيذ المهام مثال على تشغيل النظام في نهاية البرنامج يتم إنشاء JobScheduler وإضافة عدة مهام مع مستويات أولوية مختلفة، ثم يقوم النظام بترتيب هذه المهام وتنفيذها بالترتيب الصحيح وفقًا للأولوية.

شارك
بطاقة العمل
تاريخ النشر
منذ 3 أيام
المشاهدات
8
المستقل
Ali Atef
Ali Atef
مهندس بيانات
طلب عمل مماثل
شارك
مركز المساعدة