جامعة ادلب — قسم هندسة البرمجيات | Operating Systems
الأجهزة الملموسة (الجسد)
البرامج غير الملموسة (الروح)
تنفيذ التطبيقات
السماح بتشغيل البرامج وتوفير الموارد اللازمة لها
بيئة مناسبة
واجهة سهلة، رسائل واضحة، تنظيم الملفات
استفادة فعالة من الموارد
Multiprogramming — لا إهدار للمعالج أو الذاكرة
| الواجهة | الآلية | المزايا | العيوب | المستخدم |
|---|---|---|---|---|
| GUI (رسومية) | أيقونات، نوافذ، قوائم، سحب وإفلات | سهلة جداً، لا تحتاج حفظ أوامر | تستهلك موارد أكثر | المستخدم العادي |
| CLI (سطر أوامر) | كتابة أوامر نصية يدوياً | قوية جداً، سريعة، تحكم كامل | تحتاج حفظ الأوامر | المحترفون والمطورون |
| النوع | آلية العمل | المثال | الميزة / العيب |
|---|---|---|---|
| Single-task (مهمة واحدة) |
برنامج واحد فقط — المعالج ينتظر بعد انتهائه | DOS القديم | أداء سيء — إهدار كبير للمعالج |
| Multiprogramming (تعدد البرامج) |
عدة برامج في الذاكرة — المعالج ينتقل لبرنامج آخر عند انتظار I/O | Unix الأولى | أداء جيد — المعالج دائماً مشغول |
| Time Sharing (المشاركة الزمنية) |
تبديل دوري حتى لو البرنامج يعمل — كل برنامج يأخذ فترة زمنية قصيرة ثم يُنتقل للتالي | Windows, Linux الحديثة | أفضل استجابة — يشعر المستخدم بالتزامن |
مثال Time Sharing: متصفح الويب: 100ms → معالج الكلمات: 100ms → موسيقى: 100ms → متصفح الويب: 100ms ← دورة مستمرة بسرعة فائقة
| النظام | السنة | المزايا | الاستخدام |
|---|---|---|---|
| Windows | 1985 | الأشهر عالمياً، سهل للمبتدئين، يعمل على معالجات Intel | المنازل والشركات |
| Unix | 1974 | ابتكره Ritchie و Thompson في AT&T Bell — أول OS كُتب بلغة عالية المستوى — انتشر في الجامعات والبحث | الجامعات والخوادم |
| Mac OS | 1984 | قوي وسهل — أول من دعم الواجهات الرسومية والأيقونات والقوائم على سطح مكتب — أخذت Windows فكرة النوافذ منه | أجهزة Apple فقط |
| Linux | 1991 | نسخة مصغرة من Unix للحاسبات الشخصية — مفتوح المصدر، مجاني، مئات التوزيعات (أشهرها Ubuntu) | الخوادم والمطورين |
| Mobile OS | — | مصممة للهواتف الذكية — بطارية محدودة، شاشة لمس | Android, iOS, Windows Mobile |
| # | النوع | الخصائص الجوهرية | الاستخدام |
|---|---|---|---|
| 1 | Mainframe الحاسبات المركزية | يخدم آلاف المستخدمين عبر طرفيات عمياء (شاشة+لوحة بلا معالج) | البنوك، المستشفيات |
| 2 | Personal Computers الحاسبات الشخصية | مستخدم واحد — معالج واحد — واجهة رسومية | المنازل والمكاتب |
| 3 | Multiprocessors متعددة المعالجات | عدة معالجات في صندوق واحد — ذاكرة مشتركة واحدة — نواقل ولوحة أم واحدة • متماثلة (SMP): معالجات متطابقة، ذاكرة مشتركة، نظام تشغيل واحد (الأشيع) • غير متماثلة: معالج رئيسي يتحكم في المعالجات الأخرى ويستقبل نتائجها | الحوسبة العلمية |
| 4 | Distributed Systems الأنظمة الموزعة | أجهزة بعيدة جغرافياً — كل جهاز له معالج وذاكرة وقرص مستقل — مواصفات وأنظمة مختلفة | فروع شركات دولية |
| 5 | Clustered Systems الأجهزة المجتمعة | أجهزة قريبة جغرافياً في مكان واحد — متشابهة في المكونات والأنظمة — متصلة بشبكة محلية | مراكز البيانات |
| 6 | Real-Time Systems أنظمة الزمن الحقيقي | استجابة مضمونة في وقت محدد صارم — أي تأخير = كارثة | طائرات، جراحة، سيارات |
| 7 | Handheld Systems الأجهزة الكفية | أجهزة صغيرة (جيبية) — شاشة لمس — يقبل تثبيت برامج جديدة — يدعم التصوير والمحادثات وتبادل البيانات لاسلكياً | الهواتف الذكية |
| 8 | Embedded Systems الأنظمة المضمنة | حاسبات مضمنة داخل جهاز — وظيفة واحدة محددة — برامجها محفوظة مسبقاً من الشركة ولا يمكن إضافة برامج جديدة | مايكروويف، غسالة، تلفزيون |
| 9 | Smart Cards البطاقات الذكية | بطاقة بلاستيكية برقاقة إلكترونية — تمتلك ذاكرة صغيرة — تستطيع استقبال البيانات ومعالجتها وتخزينها — أمان عالٍ | بطاقات البنوك، الدفع الإلكتروني |
| 10 | Server Systems أنظمة المخدمات | يقدم خدمات عبر الشبكة (ملفات، ويب، طباعة) | مراكز الإنترنت |
🔵 الأنظمة الموزعة vs الأجهزة المجتمعة
الموزعة: بعيدة جداً (دول مختلفة) — مواصفات وأنظمة مختلفة
المجتمعة: قريبة في مكان واحد — مواصفات وأنظمة متطابقة
🟢 الأجهزة الكفية vs الأنظمة المضمنة
الكفية: هاتف ذكي — يدعم برامج متعددة قابلة للتثبيت
المضمنة: مايكروويف — وظيفة واحدة محددة، برامج ثابتة لا تتغير
Hardware — المكونات المادية (الجسد)
أجهزة ملموسة — موجودة لكن بلا روح بدون برامج
Software — المكونات البرمجية (الروح)
برامج غير ملموسة — تُحيي الأجهزة وتجعلها تعمل
GUI — الواجهة الرسومية (Graphical User Interface)
CLI — سطر الأوامر (Command Line Interface)
Single-task — مهمة واحدة
برنامج واحد فقط — المعالج ينتظر بلا عمل — DOS
Multiprogramming — تعدد البرامج
عدة برامج بالذاكرة — التبديل عند انتظار الإدخال/الإخراج (I/O) — أداء أفضل
Time Sharing — المشاركة الزمنية
فترة زمنية قصيرة (Time Slice — شريحة زمنية) لكل برنامج — يشعر المستخدم بالتزامن
إذا: آلاف المستخدمين + أمان عالٍ
→ Mainframe (الحاسبات المركزية)
البنوك، المستشفيات
إذا: مستخدم واحد / منزل / مكتب
→ Personal Computers (الحاسبات الشخصية)
Windows / Mac / Linux
إذا: أداء عالٍ + معالجات متعددة في جهاز واحد
→ Multiprocessors (متعددة المعالجات)
متماثلة (SMP) أو غير متماثلة
إذا: أجهزة في دول مختلفة
→ Distributed Systems (الأنظمة الموزعة)
مواصفات وأنظمة مختلفة
إذا: أجهزة في نفس المبنى
→ Clustered Systems (الأجهزة المجتمعة)
مواصفات متطابقة + شبكة محلية
إذا: أي تأخر = كارثة
→ Real-Time Systems (أنظمة الزمن الحقيقي)
طائرات، روبوتات، سيارات
إذا: جهاز محمول + تطبيقات متعددة
→ Handheld Systems (الأجهزة الكفية)
هاتف ذكي، شاشة لمس
إذا: وظيفة واحدة ثابتة داخل جهاز
→ Embedded Systems (الأنظمة المضمنة)
مايكروويف، غسالة، تلفزيون
إذا: أمان + معالجة وتخزين على بطاقة
→ Smart Cards (البطاقات الذكية)
بنوك، دفع إلكتروني
إذا: خدمات عبر الشبكة
→ Server Systems (أنظمة المخدمات)
ويب، ملفات، طباعة
معظم عمليات الحوسبة تتم في أربعة خطوات رئيسية:
| الخطوة | الوصف | المكون المطلوب | مثال |
|---|---|---|---|
| 1. الإدخال (Input) | إدخال البيانات والأوامر | Input Device — جهاز الدخل | كتابة على لوحة المفاتيح |
| 2. المعالجة (Processing) | تنفيذ العمليات الحسابية والمنطقية | CPU (المعالج) + RAM (الذاكرة الرئيسية) | حساب 5+3 |
| 3. الإخراج (Output) | إظهار نتائج المعالجة | Output Device — جهاز الخرج | عرض على الشاشة |
| 4. التخزين (Storage) | حفظ البيانات للاستخدام لاحقاً | Secondary Storage — التخزين الثانوي | حفظ الملف في القرص الصلب |
تنقسم المكونات المادية إلى أربعة أجزاء رئيسية — كل جزء مسؤول عن خطوة في عملية الحوسبة:
| المدير | الاسم العربي | المسؤولية |
|---|---|---|
| Memory Manager | مدير الذاكرة | توزيع مساحة الذاكرة على البرامج، تتبع من يستخدم أي جزء، تحرير الذاكرة عند الانتهاء |
| CPU Manager | مدير المعالج | مراقبة المكونات، تحديد من يستخدم ماذا ومتى وكيف، حجز المكونات وتحريرها في الوقت المناسب |
| File Manager | مدير الملفات | تنظيم طرق تخزين الملفات، البحث عنها، فتحها وإغلاقها |
| Device Manager | مدير الأجهزة | إدارة أجهزة الدخل/الخرج، معالجة المقاطعات من الأجهزة |
| Network Manager | مدير الشبكة | الاتصالات الخارجية، إدارة موارد الشبكة |
الحاسبات الحديثة تتكون من: معالج واحد أو أكثر + عدة متحكمات، جميعها تتصل بذاكرة مشتركة عبر ناقل بيانات (Bus).
كل متحكم يحتوي على ذاكرة خازن (Buffer) تساعد في نقل البيانات بين الذاكرة الرئيسية والجهاز الطرفي.
بعض المتحكمات تحتوي على معالج صغير خاص بها. مثال: متحكم الشاشة يحتوي على معالج يقوم بحساب النقاط والخطوط وإدارة عرض الصور والنصوص — بدلاً من إرهاق المعالج الرئيسي بهذه المهام.
↑ كل هذا يحدث في نفس اللحظة — التوازي يزيد كفاءة النظام بشكل كبير.
ينظم وصول المتحكمات والمعالج للذاكرة. آلية العمل: الجهاز يحتاج بيانات → المتحكم يطلب من متحكم الذاكرة (Memory Controller) → يجلب البيانات دفعة واحدة → تُخزن في Buffer المتحكم → ترسل للجهاز بسرعة مناسبة.
المقاطعة هي إشارة من جهاز طرفي للمعالج تطلب منه إيقاف عمله مؤقتاً لخدمتها.
| النوع | المصدر |
|---|---|
| مقاطعات الدخل/الخرج | من أجهزة الدخل والخرج |
| مقاطعات خارجية | من خارج النظام |
| مقاطعات المؤقت (Timer) | من المؤقت عند انتهاء الوقت |
| مقاطعات الأعطال | من أعطال في المكونات المادية |
| الوضع | قيمة البت | من يستخدمه | الصلاحيات |
|---|---|---|---|
| User Mode — وضع المستخدم | 1 | البرامج العادية | محدودة — لا وصول مباشر للأجهزة |
| Kernel Mode — وضع النواة | 0 | نظام التشغيل | كاملة — وصول مباشر لكل شيء |
الفوائد: منع احتكار المعالج | تحقيق العدالة بين البرامج | منع الحلقات اللانهائية
المعالج (3 نانو ثانية) أسرع من RAM (100 نانو ثانية) بـ 33 مرة. Cache تُوضع بينهما لتقليل الفجوة — تخزن البيانات الأكثر استخداماً قريباً من المعالج.
| الميزة | RAM | Disk |
|---|---|---|
| السرعة | 100 نانو ثانية | 15 ملي ثانية (أبطأ 150,000×) |
| السعة | صغيرة (GB) | كبيرة جداً (TB) |
| التطاير | متطايرة (تُمسح) | غير متطايرة (دائمة) |
| السعر | غالي | رخيص |
الحاسب يتعامل فقط بـ 0 و 1. كل البيانات (نص، صور، صوت) تُحوَّل لأصفار وآحاد.
A = 01000001 B = 01000010 1 = 00110001 "Hello" = 01001000 01100101 01101100 01101100 01101111 (5 بايتات)
EBCDIC: الشفرة الثنائية الموسعة للتبادل — تُستخدم في بعض الأنظمة القديمة.
Unicode: شفرة موحدة عالمية تدعم لغات متعددة (عربي، صيني، إلخ).
البت (Bit): أصغر وحدة = 0 أو 1. البايت (Byte): 8 بتات = 1 حرف.
1 KB (كيلو بايت) = 1024 Bytes 1 MB (ميجا بايت) = 1024 KB 1 GB (جيجا بايت) = 1024 MB 1 TB (تيرا بايت) = 1024 GB
المكونات والبرامج تكرر هذه الخطوات الأربعة باستمرار. ولإدارة الكل: نظام التشغيل.
4 أنواع مقاطعات: من أجهزة الدخل/الخرج | من خارج النظام | من المؤقت | من الأعطال
التبديل بينهما: برنامج يُرسل System Call — نداء النظام → Kernel Mode (وضع النواة) → OS ينفذ الخدمة → User Mode (وضع المستخدم)
Cache: وُضعت بين المعالج (3ns) والـ RAM (100ns) لتقليل الفجوة — أداء أفضل.
| الشفرة | الاستخدام | مثال |
|---|---|---|
| ASCII | معيار أمريكي لتمثيل الحروف | A = 01000001 |
| EBCDIC | تُستخدم في أنظمة قديمة | — |
| Unicode | شفرة عالمية تدعم كل اللغات | عربي، صيني، إلخ |
وحدات التخزين: 1 KB = 1024 Bytes | 1 MB = 1024 KB | 1 GB = 1024 MB | 1 TB = 1024 GB
العملية (Process): برنامج قيد التنفيذ (Program in Execution) — الوحدة الأساسية للعمل في OS.
| البرنامج (Program) | العملية (Process) |
|---|---|
| ملف ثابت على القرص الصلب | برنامج تم تحميله في الذاكرة الرئيسية |
| لا يستهلك موارد النظام | تستهلك المعالج (CPU) والذاكرة وموارد الإدخال/الإخراج |
| قد يكون غير مُشغَّل أبداً | قيد التنفيذ الآن بواسطة المعالج |
| Word.exe على القرص | فتح Word = عملية في الذاكرة |
كل عملية في الذاكرة تتكون من أربعة أجزاء:
بنية بيانات يحتفظ بها نظام التشغيل لكل عملية — يحتوي على جميع معلوماتها. تخيله "الملف الطبي" للعملية.
| المعلومة | الوصف |
|---|---|
| Process ID — معرف العملية (PID) | رقم فريد يُعرّف العملية — مثال: عملية أ لها PID=1234، عملية ب لها PID=5678 |
| Process State — حالة العملية | الحالة الحالية (New جديدة / Ready جاهزة / Running جارية / Waiting مجمدة / Terminated منتهية) |
| Program Counter — عداد البرنامج (PC) | يشير للتعليمة التالية — يُحفظ عند الإيقاف ويُستعاد عند الاستئناف |
| Registers — السجلات | محتويات جميع سجلات المعالج — تُحفظ عند تبديل السياق |
| Scheduling Info — معلومات الجدولة | الأولوية ومؤشرات قوائم الجدولة |
| Memory Info — معلومات الذاكرة | جداول الصفحات وحدود الذاكرة |
| Accounting Info — معلومات المحاسبة | وقت المعالج المستخدم، الوقت المنقضي الفعلي، التعرفة المالية (في الأنظمة التجارية) |
| I/O Status — حالة الإدخال/الإخراج | الملفات المفتوحة والأجهزة المخصصة |
| الحالة | المعنى | الانتقال إلى |
|---|---|---|
| New — جديدة | للتو أُنشئت، جاري إعدادها بواسطة نظام التشغيل | → Ready (جاهزة) |
| Ready — جاهزة | جاهزة للتنفيذ، تملك كل الموارد — تنتظر وقت المعالج فقط | → Running (جارية) عند الجدولة |
| Running — جارية | تنفذ الآن — في أي لحظة عملية واحدة فقط يمكنها أن تكون هنا | → Ready / Waiting / Terminated |
| Waiting — مجمدة | توقفت تنتظر حدث معين (إدخال/إخراج) — لن تنفذ حتى يحدث الحدث | → Ready (جاهزة) عند اكتمال الإدخال/الإخراج |
| Terminated — منتهية | انتهت، مواردها تُحرر | نهاية دورة حياة العملية |
| نوع الإنهاء | السبب | مثال |
|---|---|---|
| طبيعي (Normal Exit) | أكملت جميع التعليمات بنجاح | إغلاق Word بعد الحفظ |
| بخطأ (Error Exit) | خطأ حرج (قسمة على صفر مثلاً) | "البرنامج توقف بشكل غير متوقع" |
| قسري (Forced) | عملية أخرى أو المستخدم طلب الإنهاء | Task Manager (مدير المهام) → إنهاء المهمة |
خطوات الإنهاء (بالترتيب):
الانتقال من تنفيذ عملية إلى تنفيذ عملية أخرى — يسمح بتشغيل عدة عمليات على معالج واحد.
للإنسان يبدو أن A وB وC تعمل جميعاً معاً — بسبب سرعة المعالج الكبيرة جداً!
نفس البرنامج → عدة عمليات: Word.exe ملف واحد، 3 نوافذ = 3 عمليات مستقلة بموارد منفصلة.
| المعلومة | دورها |
|---|---|
| PID — معرف العملية | رقم فريد يُعرّف العملية |
| Process State — حالة العملية | الحالة الحالية (New جديدة / Ready جاهزة / Running جارية / Waiting مجمدة / Terminated منتهية) |
| Program Counter — عداد البرنامج | التعليمة التالية — يُحفظ عند الإيقاف ويُستعاد عند الاستئناف |
| Registers — السجلات | محتويات سجلات المعالج — تُحفظ عند تبديل السياق |
| Scheduling Info — معلومات الجدولة | الأولوية وقوائم الجدولة |
| Memory Info — معلومات الذاكرة | جداول الصفحات وحدود الذاكرة |
| Accounting Info — معلومات المحاسبة | وقت المعالج المستخدم، الوقت المنقضي الفعلي |
| I/O Status — حالة الإدخال/الإخراج | الملفات المفتوحة والأجهزة المخصصة |
التكلفة: وقت التبديل وقت ضائع — المعالج لا ينجز عملاً مفيداً خلاله. كلما زادت التبديلات، زاد الوقت الضائع → يجب التوازن في اختيار مدة الوقت المخصصة (Time Slice).
⚠️ المشكلة
المعالج واحد — العمليات كثيرة
كيف نختار أي عملية تنفذ أولاً؟
✅ الحل
جدولة المعالج تحدد ترتيب التنفيذ
الهدف: المعالج مشغول دائماً
💡 فائدة تعدد البرمجة
انتظار القرص (I/O): 10 ملي ثانية
في نفس الوقت: ملايين التعليمات!
CPU Burst — دفقة المعالج
فترة تقضيها العملية داخل المعالج
تقوم بحوسبة ومعالجة بيانات
I/O Burst — دفقة الإدخال/الإخراج
فترة تنتظرها العملية خارج المعالج
انتظار انتهاء عملية إدخال/إخراج
CPU Bound — مرتبط بالمعالج
CPU Burst طويلة — معظم الوقت بالحوسبة
مثال: البرامج العلمية والحسابية
I/O Bound — مرتبط بالإدخال/الإخراج
CPU Burst قصيرة — معظم الوقت في الانتظار
مثال: برامج التطبيقات التفاعلية
| المجدول | الاسم العربي | الوظيفة | المكان | السرعة |
|---|---|---|---|---|
| Long-term | المجدول طويل الأمد | تحميل من القرص للذاكرة — من New → Ready | بين القرص والذاكرة | بطيء جداً |
| Medium-term | المجدول متوسط الأمد | تعليق/استئناف العمليات عند نقص الموارد | في الذاكرة | متوسط |
| Short-term | المجدول قصير الأمد | اختيار من القائمة الجاهزة للتنفيذ | في الذاكرة | سريع جداً |
هو الآلية التي تنفذ قرار المجدول قصير الأمد. يقوم بأربع خطوات:
↑ زيادة
CPU Utilization — استغلال المعالج
نسبة استخدام المعالج — الهدف: 40-90%
↑ زيادة
Throughput — الإنتاجية
عدد العمليات المنجزة / الوقت
↓ تقليل
Turnaround Time — زمن الإكمال
زمن الانتهاء − زمن الدخول
↓ تقليل
Waiting Time — زمن الانتظار
Turnaround Time − Burst Time
↓ تقليل
Response Time — زمن الاستجابة
الزمن من الدخول لأول مخرج
الإنتاجية تقيس كم عملية أنجز النظام في كل وحدة زمن. كلما كانت أعلى كان النظام أكفأ.
| الخوارزمية | عدد العمليات | الزمن الكلي | الإنتاجية |
|---|---|---|---|
| FCFS | 3 | 30 ms | 0.10 عملية/ms |
| SJF | 4 | 18 ms | 0.22 عملية/ms |
| Priority | 5 | 19 ms | 0.26 عملية/ms |
| Round Robin | 3 | 30 ms | 0.10 عملية/ms |
المبدأ: تنفذ العمليات بترتيب وصولها إلى صف الانتظار.
✅ المميزات
❌ العيوب
| العملية | وقت الوصول | Burst Time |
|---|---|---|
| P1 | 0 | 24 |
| P2 | 3 | 3 |
| P3 | 0 | 3 |
ترتيب الوصول: P1, P3, P2
المبدأ: اختيار العملية ذات أقصر وقت تنفيذ من بين العمليات الجاهزة.
✅ المميزات
❌ العيوب
Non-preemptive — غير استباقية
بعد بدء العملية لا يمكن إيقافها حتى تنتهي
Preemptive — استباقية (SRTF)
إذا دخلت عملية أقصر من المتبقي، توقف الحالية وتنفذ الأقصر
| العملية | وقت الوصول | Burst Time |
|---|---|---|
| P1 | 0 | 10 |
| P2 | 2 | 3 |
| P3 | 4 | 1 |
| P4 | 5 | 4 |
المبدأ: لكل عملية رقم أولوية. تنفذ العملية ذات الأولوية الأعلى أولاً.
⚠️ مشكلة Starvation — تجويع العمليات
العمليات ذات الأولوية المنخفضة قد لا تنفذ أبداً إذا استمرت عمليات ذات أولوية عالية في الوصول
✅ الحل: Aging — تقادم الأولوية
كل عملية تنتظر لفترة → نرفع أولويتها تدريجياً → حتى تصبح عالية وتنفذ
| العملية | الأولوية | Burst Time |
|---|---|---|
| P2 | 1 ← أعلى | 1 |
| P5 | 2 | 5 |
| P1 | 3 | 10 |
| P3 | 3 | 2 |
| P4 | 4 ← أدنى | 1 |
المبدأ: كل عملية تأخذ حصة زمنية صغيرة (Quantum — الكم الزمني) ثم تعود لآخر الصف.
✅ المميزات
❌ العيوب
Quantum صغير جداً
استجابة سريعة ✓
Overhead ضخم ✗
Quantum متوسط (20ms)
توازن جيد ✓
Quantum كبير جداً
Overhead قليل ✓
استجابة بطيئة ✗
| العملية | Burst Time |
|---|---|
| P1 | 24 |
| P2 | 3 |
| P3 | 3 |
Long-term — المجدول طويل الأمد
القرص → الذاكرة | New → Ready
Medium-term — المجدول متوسط الأمد
تعليق/استئناف العمليات عند نقص الموارد
Short-term — المجدول قصير الأمد
يختار من Ready Queue | يعمل باستمرار
↑ نريد زيادتها
CPU Utilization — استغلال المعالج (40-90%)
Throughput — الإنتاجية (عمليات/وقت)
↓ نريد تقليلها
Turnaround Time — زمن الإكمال (انتهاء − دخول)
Waiting Time — زمن الانتظار (Turnaround − Burst)
Response Time — زمن الاستجابة (أول مخرج − دخول)
| الخوارزمية | الاسم العربي | المبدأ | الميزة | العيب |
|---|---|---|---|---|
| FCFS | الأول يُخدم أولاً | ترتيب الوصول | بسيطة وعادلة | Convoy Effect — تأثير القافلة |
| SJF | الأقصر أولاً | أقصر Burst أولاً | أقل متوسط انتظار | Starvation + تحتاج معرفة مسبقة |
| Priority | الأولوية | رقم الأولوية | ينفذ المهم أولاً | Starvation (حل: Aging) |
| Round Robin | المشاركة الزمنية | Quantum لكل عملية | عادلة — لا Starvation | Overhead من Context Switching |
إذا: البساطة هي الأهم
→ FCFS
الأول يُخدم أولاً
إذا: تريد أقل متوسط انتظار
→ SJF
الأقصر أولاً
إذا: بعض العمليات أهم من غيرها
→ Priority
مع Aging لمنع Starvation
إذا: تريد عدالة واستجابة سريعة
→ Round Robin
مع Quantum مناسب (20ms)
Starvation — تجويع العمليات
عملية لا تجد فرصة أبداً — تحدث في SJF و Priority
Aging — تقادم الأولوية
حل Starvation — ترفع أولوية العمليات التي تنتظر طويلاً
Convoy Effect — تأثير القافلة
عملية طويلة تحتجز المعالج وتجعل العمليات القصيرة تنتظر — مشكلة FCFS