مشروع CPU Scheduler Simulator
CPU Scheduler Repository
فكرة المشروع
المشروع عبارة عن Simulator لمحاكاة طريقة عمل الـ CPU Scheduling داخل أنظمة التشغيل.
بمعنى:
إزاي الـ Operating System بيقرر أي Process تشتغل الأول وأي Process تستنى.
وده جزء أساسي جدًا في الـ Operating Systems.
⸻
المشكلة اللي المشروع بيحلها
الـ CPU بيكون عنده Processes كتير شغالة في نفس الوقت، والنظام لازم يقرر:
* مين يشتغل الأول؟
* كل Process تاخد وقت قد إيه؟
* إزاي نقلل وقت الانتظار؟
* إزاي نحسن أداء المعالج؟
وده بالضبط دور الـ Scheduler.
⸻
فكرة المشروع ببساطة
المستخدم بيدخل:
* Process ID
* Arrival Time
* Burst Time
* Priority (لو موجود)
والمشروع:
* يطبق خوارزمية Scheduling
* يرتب العمليات
* يحسب أوقات التنفيذ
* يعرض النتائج
⸻
الخوارزميات المستخدمة
1. FCFS (First Come First Serve)
أول Process توصل تتنفذ الأول.
المميزات:
* بسيط جدًا
العيوب:
* ممكن Process طويلة تعطل الباقي
⸻
2. SJF (Shortest Job First)
أقصر Process تتنفذ الأول.
المميزات:
* يقلل Average Waiting Time
العيوب:
* العمليات الطويلة ممكن تستنى كتير
⸻
3. Priority Scheduling
كل Process ليها Priority.
الأولوية الأعلى تتنفذ الأول.
⸻
4. Round Robin
كل Process تاخد جزء صغير من الوقت (Quantum).
بعدها الدور ينتقل للي بعدها.
ودي مستخدمة فعلًا في أنظمة كتير.
⸻
المدخلات (Inputs)
المستخدم بيدخل:
* Arrival Time
* Burst Time
* Priority
* Time Quantum (في RR)
⸻
المخرجات (Outputs)
المشروع بيحسب:
* Waiting Time
* Turnaround Time
* Completion Time
* Average Waiting Time
* Average Turnaround Time
⸻
الـ Gantt Chart
المشروع غالبًا بيعرض:
* ترتيب تنفيذ الـ Processes
* الزمن اللي كل Process اشتغلت فيه
وده بيساعد في الفهم البصري للـ Scheduling.
⸻
التقنيات المستخدمة
غالبًا:
* C++
* Data Structures
* Queues
* Arrays
* Algorithms
⸻
الجانب الأكاديمي المهم
المشروع بيشرح Concepts أساسية جدًا:
* Process Management
* CPU Utilization
* Context Switching
* Scheduling Algorithms
* Performance Optimization
⸻
المهارات اللي المشروع بيثبتها
* Problem Solving
* Algorithms
* Operating Systems
* Data Structures
* System Logic