الفصل ١: مقدمة في أنظمة التشغيل

CS330 - أنظمة التشغيل

نسخة كاملة بجميع المواضيع

١.١ وش هو نظام التشغيل؟

نظام التشغيل هو برنامج يشتغل كوسيط بين مستخدمي الكمبيوتر والعتاد (Hardware). يوفّر بيئة يستطيع المستخدم من خلالها تشغيل البرامج بسهولة وكفاءة.

المكونات الرئيسية لنظام الكمبيوتر:

المستخدمون
(بشر، آلات، أجهزة كمبيوتر أخرى)
برامج التطبيقات
(معالجات نصوص، مترجمات، متصفحات، قواعد بيانات، ألعاب)
برامج النظام
(قذائف، محررات، مترجمات)
نظام التشغيل
(إدارة العمليات، الذاكرة، الإدخال/الإخراج)
عتاد الكمبيوتر
(المعالج، الذاكرة، أجهزة الإدخال/الإخراج)

النواة (Kernel)

النواة هي "البرنامج الوحيد اللي دايمًا شغال على الكمبيوتر"

  • الجزء الأساسي من نظام التشغيل ويشتغل في وضع privileged mode
  • يدير موارد النظام والعتاد
  • كل شيء ثاني هو:
    • برنامج نظام (يأتي مع نظام التشغيل، مو جزء من النواة)
    • برنامج تطبيقي (أي برنامج مو تابع لنظام التشغيل)

أهداف نظام التشغيل

أهداف نظام التشغيل تختلف حسب وجهة النظر:

  • وجهة نظر المستخدم: المستخدمين يبون سهولة وراحة - ما يهمهم استغلال الموارد
  • وجهة نظر النظام: نظام التشغيل لازم يخصص الموارد بكفاءة وعدالة
    • موزع موارد - يدير كل الموارد
    • برنامج تحكم - يتحكم بتنفيذ البرامج عشان يمنع الأخطاء
  • الأجهزة المشتركة (mainframe/minicomputer) لازم تخلّي كل المستخدمين سعيدين
  • الأنظمة المخصصة (مثل workstations) عندها موارد مخصصة لكن تستخدم موارد مشتركة من السيرفرات
  • أجهزة اليدوية (handheld) ضعيفة الموارد، محسنة لسهولة الاستخدام وعمر البطارية
  • بعض الأجهزة ما عندها واجهة مستخدم تقريبًا (الأنظمة المدمجة في السيارات والأجهزة)

١.٢ عمليات نظام التشغيل

التشغيل ثنائي الوضع (Dual-Mode Operation)

التشغيل ثنائي الوضع يخلّي نظام التشغيل يحمي نفسه والمكونات الأخرى:

  • وضع المستخدم (User mode) - النظام يشتغل لحساب تطبيق مستخدم
  • وضع النواة (Kernel mode) (يسمى كمان supervisor mode) - يحمي نظام التشغيل وهو شغال - التنفيذ لحساب نظام التشغيل
  • Mode bit يكون في العتاد (نواة (0) أو مستخدم (1))

الانتقال من وضع المستخدم إلى وضع النواة

عملية مستخدم (mode bit = 1)

عملية مستخدم تنفذ → تستدعي system call → رجوع من system call
↓ trap (mode bit = 0) ↑ رجوع (mode bit = 1)

النواة (mode bit = 0)

تنفيذ system call

آليات حماية رئيسية:

  • توفّر القدرة على التفريق بين وقت تشغيل كود المستخدم وكود النواة
  • بعض الأوامر اللي ممكن تضر النظام تسمى أوامر مميزة (privileged instructions)، تُنفّذ فقط في وضع النواة
  • System call يغيّر الوضع إلى نواة، والرجوع من الاستدعاء يعيده إلى وضع المستخدم

حماية المؤقت (Timer Protection)

نظام التشغيل لازم يحمي المعالج من سيطرة برنامج المستخدم (زي لو دخل في loop لا نهائي) باستخدام مؤقت:

  • يضبط مقاطعة بعد فترة زمنية محددة
  • نظام التشغيل ينقص العداد
  • لما العداد يوصل صفر، يولد مقاطعة
  • يضبط قبل جدولة العملية عشان يستعيد التحكم أو ينهي البرنامج اللي تعدّى وقته

📝 سؤال اختبار (على طريقة CS330):

السؤال: إذا كانت النواة single threaded، فإن أي thread على مستوى المستخدم ينفّذ system call يحجب (block) راح:

  • أ) يخلّي العملية كلها تشتغل مع الـ threads الثانية
  • ب) يخلّي الـ thread ينحجب والـ threads الثانية تشتغل
  • ج) يخلّي العملية كلها تنحجب حتى لو فيه threads ثانية جاهزة للتنفيذ
  • د) ولا شيء مما ذكر

١.٣ معمارية نظام الكمبيوتر

معمارية فون نيومان (Von Neumann Architecture)

معمارية فون نيومان تتكون من:

أجهزة الإدخال
وحدة المعالجة المركزية
(ALU + وحدة التحكم)
وحدة الذاكرة
(RAM + ROM)
أجهزة الإخراج
ناقل النظام (System Bus)

الخصائص الرئيسية:

  • مفهوم البرنامج المخزن: كل من البيانات والتعليمات تُخزّن في نفس الذاكرة
  • التنفيذ التسلسلي: التعليمات تُنفّذ واحدة تلو الأخرى
  • النظام الثنائي: كل البيانات والتعليمات تكون بصيغة ثنائية
  • مكونات المعالج: ALU للعمليات الحسابية/المنطقية، وحدة تحكم لتفسير التعليمات

نظام الكمبيوتر بشكل عام يتكون من مجموعة وحدات (معالج، وحدات تحكم أجهزة، ذاكرة وأجهزة إدخال/إخراج) مربوطة ببعضها بناقل النظام.

كل وحدة تحكم (device controller) مسؤولة عن نوع معين من أجهزة الإدخال/الإخراج

المكون الوظيفة أمثلة
المعالج (CPU) ينفذ التعليمات Intel Core i7, AMD Ryzen
الذاكرة تخزّن البيانات والبرامج RAM, Cache, Registers
أجهزة الإدخال/الإخراج تتعامل مع العالم الخارجي كيبورد، شاشة، قرص صلب
ناقل النظام مسار التواصل نواقل العناوين، البيانات، التحكم
وحدات تحكم الأجهزة تدير أنواع محددة من الأجهزة وحدة تحكم USB، وحدة تحكم القرص

أنظمة أحادية المعالج

  • معظم الأنظمة فيها معالجات خاصة أيضًا (معالج خاص بجهاز معين، مثل القرص، الكيبورد) اللي تشغل مجموعة محدودة من التعليمات ولا تشغل عمليات المستخدم
  • أجهزة كمبيوتر تقليدية بمعالج واحد للأغراض العامة
  • قد تحتوي على معالجات خاصة لمهام محددة

أنظمة متعددة المعالجات

الأنظمة متعددة المعالجات (وتسمى كمان الأنظمة المتوازية أو الأنظمة شديدة الترابط) في ازدياد من ناحية الاستخدام والأهمية.

خلال السنوات القليلة الماضية، الأنظمة متعددة المعالجات (أو أنظمة متعددة النوى) بدأت تهيمن على مجال الحوسبة.

مزايا الأنظمة متعددة المعالجات:

  1. زيادة الإنتاجية - شغل أكثر بوقت أقل
  2. اقتصاد الحجم - تكلفتها أقل من عدة أنظمة أحادية المعالج لأنها تشارك الأجهزة الطرفية، مصادر الطاقة، التخزين
  3. زيادة الموثوقية - التدهور التدريجي أو تحمل الأخطاء

أنواع الأنظمة متعددة المعالجات:

١. المعالجة غير المتماثلة (Asymmetric)

  • معالج رئيسي يتحكم ويوزع العمل على المعالجات التابعة
  • أكثر شيوعًا في الأنظمة الكبيرة جدًا
  • كل معالج مخصص لمهمة معينة

٢. المعالجة المتماثلة (SMP)

  • كل معالج يؤدي كل المهام داخل نظام التشغيل
  • مافي علاقة رئيسي-تابع بين المعالجات
  • كل المعالجات نظراء

معمارية المعالجة المتماثلة SMP

CPU₀
مسجلات
cache
CPU₁
مسجلات
cache
CPU₂
مسجلات
cache
ذاكرة مشتركة

الأنظمة المجمعة (Clustered Systems)

مثل الأنظمة متعددة المعالجات، لكن أنظمة متعددة تشتغل مع بعض

  • عادةً تشارك التخزين عبر شبكة تخزين SAN ومرتبطة بشكل وثيق بشبكة LAN
  • توفر خدمة عالية التوفر تتحمل الأعطال

التجميع غير المتماثل

فيه جهاز واحد في وضع الاستعداد السريع يراقب السيرفر النشط بينما الآخر يشغل التطبيقات

التجميع المتماثل

فيه عدة عقد تشغل تطبيقات وتراقب بعضها البعض

ميزات إضافية للتجميع:

  • بعض المجموعات تكون لـ الحوسبة عالية الأداء (HPC)
  • التطبيقات لازم تكون مكتوبة لاستخدام التوازي (تقسيم البرنامج لمكونات منفصلة تشتغل بالتوازي على أجهزة منفصلة)
  • بعضها يحتوي مدير قفل موزع (DLM) لتجنب التعارض بين العمليات على البيانات المشتركة

١.٤ تشغيل نظام الكمبيوتر

عملية الإقلاع (Bootstrap)

برنامج الإقلاع (bootstrap program) يُحمّل عند تشغيل الطاقة أو إعادة التشغيل:

  1. عادةً يُخزّن في ROM أو EPROM، ويُعرف باسم firmware
  2. يجهّز كل جوانب النظام: من مسجلات المعالج إلى وحدات تحكم الأجهزة ومحتويات الذاكرة
  3. برنامج الإقلاع لازم يعرف كيف يحمّل نظام التشغيل وكيف يبدأ تنفيذ النظام
  4. يحمل نواة نظام التشغيل في الذاكرة
  5. يبدأ تنفيذ نظام التشغيل

آلية المقاطعة (Interrupt)

نقاط رئيسية عن المقاطعات:

  • المقاطعات أساسية لوظيفة أي نظام تشغيل
  • المقاطعات من العتاد أو البرمجيات تنبّه نظام التشغيل عند حدوث أحداث
  • أنظمة التشغيل الحالية مبنية على المقاطعات - نظام التشغيل ينتظر حدث
  • الأحداث تُعلن بحدوث مقاطعة أو trap
١. الجهاز يرسل إشارة مقاطعة
٢. المعالج يوقف المهمة الحالية
٣. يحفظ الحالة
٤. ينفذ ISR
٥. يستعيد الحالة

تفاصيل معالجة المقاطعة:

  • المقاطعات تنقل التحكم إلى روتين خدمة المقاطعة (ISR) عادةً من خلال جدول المقاطعات (interrupt vector)، اللي يحتوي عناوين كل روتينات الخدمة
  • معمارية المقاطعة لازم تحفظ عنوان التعليمات التي تمت مقاطعتها
  • trap أو exception هي مقاطعة ناتجة عن برمجيات بسبب خطأ أو طلب مستخدم

📝 سؤال اختبار (اختبار CS330 النهائي):

السؤال: الجدول اللي يشير إلى الروتينات اللي تتعامل مع المقاطعات يسمى:

  • أ) معالج مقاطعة
  • ب) مؤشر مقاطعة
  • ج) جدول المقاطعات
  • د) إشارة مقاطعة
// مثال مبسط لمعالج مقاطعة void interrupt_handler(int interrupt_number) { save_cpu_state(); switch(interrupt_number) { case KEYBOARD_INT: handle_keyboard(); break; case TIMER_INT: handle_timer(); break; case DISK_INT: handle_disk(); break; } restore_cpu_state(); return_from_interrupt(); }

الوصول المباشر للذاكرة (DMA)

الأجهزة البطيئة مثل الكيبورد تولّد مقاطعة للمعالج الرئيسي بعد كل بايت يتم نقله. لو جهاز سريع مثل القرص الصلب ولّد مقاطعة لكل بايت، راح يقضي نظام التشغيل معظم وقته في معالجة هالمقاطعات. لذلك الكمبيوتر النموذجي يستخدم الوصول المباشر للذاكرة (DMA) عشان يقلل هذا العبء.

هيكل الوصول المباشر للذاكرة

المعالج
وحدة تحكم DMA
الذاكرة الرئيسية

ناقل البيانات يربط كل المكونات

خصائص DMA:

  • يستخدم لأجهزة الإدخال/الإخراج عالية السرعة القادرة على نقل المعلومات بسرعات قريبة من سرعة الذاكرة
  • وحدة تحكم الجهاز تنقل كتل البيانات من مخزن مؤقت مباشرة إلى الذاكرة الرئيسية بدون تدخل المعالج
  • الوصول المباشر للذاكرة يعني أن المعالج يعطي وحدة الإدخال/الإخراج صلاحية القراءة أو الكتابة في الذاكرة بدون تدخله
  • وحدة DMA نفسها تتحكم في تبادل البيانات بين الذاكرة الرئيسية وجهاز الإدخال/الإخراج
  • المعالج يتدخل فقط في بداية ونهاية النقل ويتم مقاطعته فقط بعد نقل الكتلة كاملة
  • يتم توليد مقاطعة واحدة لكل كتلة، بدلاً من مقاطعة لكل بايت
نوع الإدخال/الإخراج تدخل المعالج المقاطعات أفضل لـ
I/O مبرمج عالي (مستمر) لا شيء أجهزة بطيئة جدًا
I/O مبني على المقاطعات متوسط واحدة لكل بايت أجهزة بطيئة (كيبورد)
DMA منخفض (بداية/نهاية فقط) واحدة لكل كتلة أجهزة سريعة (قرص، شبكة)

١.٥ هيكل التخزين والتسلسل الهرمي

تنظيم نظام التخزين:

  • أنظمة التخزين منظمة في تسلسل هرمي بناءً على:
    • السرعة
    • التكلفة
    • التطاير (volatility)
  • التخزين المؤقت (Caching) - نسخ المعلومات إلى نظام تخزين أسرع؛ يمكن اعتبار الذاكرة الرئيسية كـ cache للتخزين الثانوي
  • برنامج تشغيل الجهاز (Device Driver) لكل وحدة تحكم جهاز لإدارة الإدخال/الإخراج - يوفر واجهة موحدة بين وحدة التحكم والنواة

التخزين الأساسي

  • الذاكرة الرئيسية - وسيلة التخزين الكبيرة الوحيدة اللي يقدر المعالج يوصل لها مباشرة
    • وصول عشوائي
    • عادةً متطايرة (volatile)

التخزين الثانوي

  • التخزين الثانوي - امتداد للذاكرة الرئيسية يوفر سعة تخزين كبيرة غير متطايرة
  • الأقراص المغناطيسية - أقراص زجاجية أو معدنية صلبة مغطاة بمادة تسجيل مغناطيسية
    • سطح القرص مقسم منطقيًا إلى مسارات، والممرات مقسمة إلى قطاعات
    • وحدة تحكم القرص تحدد التفاعل المنطقي بين الجهاز والكمبيوتر
  • أقراص SSD - أسرع من الأقراص المغناطيسية، غير متطايرة
    • تقنيات متنوعة
    • تزداد شعبيتها

التسلسل الهرمي للتخزين (من الأسرع للأبطأ):

المسجلات (< ١ نانوثانية)
الذاكرة المخبئية Cache (L1, L2, L3) (١-١٠ نانوثانية)
الذاكرة الرئيسية RAM (١٠-١٠٠ نانوثانية)
أقراص SSD (١٠-١٠٠ ميكروثانية)
القرص الصلب HDD (٥-١٠ ملي ثانية)
الأقراص الضوئية/الأشرطة (ثواني)
نوع التخزين السعة زمن الوصول التكلفة/جيجابايت متطاير؟
المسجلات < ١ كيلوبايت < ١ نانوثانية الأعلى نعم
Cache ١-٣٢ ميجابايت ١-١٠ نانوثانية عالي جدًا نعم
RAM ٤-٦٤ جيجابايت ١٠-١٠٠ نانوثانية عالي نعم
SSD ٢٥٦ جيجابايت - ٤ تيرابايت ١٠-١٠٠ ميكروثانية متوسط لا
HDD ١-٢٠ تيرابايت ٥-١٠ ملي ثانية منخفض لا

التخزين المؤقت (Caching)

  • جلب التعليمات من الذاكرة الرئيسية يستغرق وقت - يبطئ النظام
  • مبدأ مهم، يتم على مستويات متعددة في الكمبيوتر (في العتاد، نظام التشغيل، البرمجيات)
  • فكرة التخزين المؤقت هي نسخ التعليمات والبيانات إلى cache للوصول الأسرع
  • لما عملية تحتاج بيانات، تفحص أولاً وتحاول الوصول إلى cache، وإلا توصل البيانات من المصدر
  • الـ cache أصغر من التخزين الذي يخزن مؤقتًا
  • التنقل بين مستويات التسلسل الهرمي للتخزين قد يكون صريحًا أو ضمنيًا

١.٦ تطور وأنواع أنظمة التشغيل

أنظمة التشغيل المختلفة تختلف كثيرًا داخليًا لكن تشترك في ميزات كثيرة. تطور أنظمة التشغيل يظهر التقدم من أنظمة batch بسيطة إلى أنظمة حديثة معقدة.

تطور أنظمة التشغيل

١. أنظمة Batch

  • أول أنظمة الكمبيوتر كانت أنظمة batch
  • استخدام منخفض للمعالج
  • الوظائف كانت تحضّر off-line وتجمع مع بعض
  • مافي تفاعل مع المستخدم أثناء التنفيذ

٢. تعدد البرمجة (Multiprogramming)

تعدد البرمجة ضروري للكفاءة:

  • مستخدم واحد لا يمكنه إبقاء المعالج وأجهزة الإدخال/الإخراج مشغولة طوال الوقت
  • تعدد البرمجة ينظّم الوظائف بحيث يكون للمعالج دائمًا واحدة ينفذها
  • وظيفة تُختار وتُشغّل عبر job scheduling
  • لما تضطر تنتظر (مثلاً للإدخال/الإخراج)، نظام التشغيل يتحول لوظيفة ثانية
  • يزيد استغلال المعالج لأقصى حد

٣. المشاركة الزمنية (Time-Sharing) - تعدد المهام

المشاركة الزمنية هي امتداد منطقي لتعدد البرمجة:

  • المعالج يبدل بين الوظائف بسرعة عالية بحيث يقدر المستخدمون يتفاعلون مع كل وظيفة وهي شغالة
  • يخلق حوسبة تفاعلية
  • عدة مستخدمين يقدرون يشاركون في الكمبيوتر في نفس الوقت
  • زمن الاستجابة لازم يكون < ١ ثانية
  • يقلل زمن الاستجابة للمستخدمين

⚠️ مهم للاختبارات:

تذكر الفروق الرئيسية:

  • تعدد البرمجة: يزيد استغلال المعالج لأقصى حد
  • المشاركة الزمنية: يقلل زمن الاستجابة للمستخدمين
النوع الخصائص أمثلة الاستخدامات
أنظمة Batch تجمّع وظائف متشابهة، بدون تفاعل مستخدم IBM OS/360 الرواتب، كشوفات البنك
أنظمة المشاركة الزمنية عدة مستخدمين، زمن استجابة سريع Unix, Linux الحوسبة العامة
أنظمة الزمن الحقيقي قيود زمنية محددة، متوقعة VxWorks, RTLinux أجهزة طبية، روبوتات
أنظمة موزعة معالجات متعددة، مشاركة موارد نظام جوجل، Amoeba الحوسبة السحابية
أنظمة الجوال كفاءة طاقة، واجهة لمس Android, iOS الهواتف الذكية، الأجهزة اللوحية

📝 سؤال تطبيقي (على طريقة CS330):

السؤال: العملية لا تستطيع إبقاء كل من المعالج والإدخال/الإخراج مشغولين طوال الوقت. الأسلوب اللي يستخدم لاستغلال المعالج بكفاءة هو:

  • أ) تعدد الخيوط
  • ب) المشاركة الزمنية
  • ج) تعدد البرمجة
  • د) جدولة استباقية

١.٧ بيئات الحوسبة

بيئات الحوسبة تطورت من الأنظمة التقليدية المستقلة إلى أنظمة موزعة معقدة وقائمة على السحابة.

الحوسبة التقليدية

  • آلات مستقلة للأغراض العامة
  • أجهزة شبكة (thin clients)
  • الحدود غير واضحة بين الحوسبة التقليدية والجوالة

الحوسبة الجوالة

  • الهواتف الذكية والأجهزة اللوحية
  • ضعيفة الموارد - محسنة لسهولة الاستخدام وعمر البطارية
  • واجهة لمس
  • ذاكرة وقدرة معالجة محدودة

حوسبة العميل-خادم

  • الأطراف الطرفية استُبدلت بأجهزة كمبيوتر ذكية
  • الخوادم تستجيب للطلبات من العملاء
  • نظام خادم حوسبي
  • نظام خادم ملفات

حوسبة ند-لند

  • مافي خادم مركزي
  • كل ند يعمل كعميل وخادم في نفس الوقت
  • أمثلة: BitTorrent, Blockchain

الحوسبة السحابية

  • الحوسبة كخدمة
  • أنواع: سحابات عامة، خاصة، هجينة
  • خدمات: SaaS, PaaS, IaaS
  • موارد مرنة

الأنظمة المدمجة ذات الزمن الحقيقي

  • أجهزة كمبيوتر مدمجة في الأجهزة والسيارات
  • واجهة مستخدم قليلة أو معدومة
  • قيود زمن حقيقي
  • أمثلة: أجهزة إنترنت الأشياء، أنظمة السيارات

١.٨ خدمات نظام التشغيل

إدارة العمليات
إنشاء وحذف العمليات، تعليق واستئناف العمليات، توفير آليات لمزامنة وتواصل العمليات
إدارة الذاكرة
تتبع أجزاء الذاكرة المستخدمة، تحديد العمليات التي تُحمّل عندما تتوفر مساحة ذاكرة، تخصيص وتحرير مساحة الذاكرة
إدارة نظام الملفات
إنشاء وحذف الملفات والمجلدات، دعم التعليمات الأساسية للتعامل مع الملفات والمجلدات، ربط الملفات بالتخزين الثانوي
إدارة نظام الإدخال/الإخراج
إدارة الذاكرة للإدخال/الإخراج بما في ذلك التخزين المؤقت (buffering) والتخزين المخبئ (caching) والتخزين المؤقت للطباعة (spooling)، واجهة عامة لبرامج تشغيل الأجهزة، برامج تشغيل لأجهزة محددة
الحماية والأمان
الحماية تعني ضمان التحكم في كل وصول لموارد النظام. الأمان يدافع عن النظام من الهجمات الخارجية والداخلية

📝 سؤال تطبيقي (على طريقة CS330):

السؤال: وحدة التحكم تستخدم _____ للمساعدة في عمليات النقل عند التعامل مع واجهات الشبكة.

  • أ) مخزن مؤقت للإدخال
  • ب) معززات الإشارة
  • ج) دوائر جسر
  • د) كل ما ذكر

١.٩ استدعاءات النظام (System Calls)

استدعاءات النظام توفّر واجهة بين البرنامج الجاري ونظام التشغيل. عادةً تكون متاحة كتعليمات لغة تجميع.

أنواع استدعاءات النظام:

١. التحكم في العمليات

  • end, abort
  • load, execute
  • create process, terminate process
  • get process attributes, set process attributes
  • wait for time
  • wait event, signal event

٢. إدارة الملفات

  • create file, delete file
  • open, close
  • read, write, reposition
  • get file attributes, set file attributes

٣. إدارة الأجهزة

  • request device, release device
  • read, write, reposition
  • get device attributes, set device attributes

٤. صيانة المعلومات

  • get time or date, set time or date
  • get system data, set system data
  • get process, file, or device attributes
  • set process, file, or device attributes

٥. الاتصالات

  • create, delete communication connection
  • send, receive messages
  • transfer status information
  • attach or detach remote devices

٦. الحماية

  • get/set permissions
  • allow/deny user access
// مثال: استدعاء نظام في لغة C (لينكس) #include <unistd.h> #include <sys/types.h> #include <stdio.h> #include <sys/wait.h> int main() { pid_t pid; // استدعاء نظام fork ينشئ عملية جديدة pid = fork(); if (pid == 0) { // العملية الابنة printf("العملية الابنة: PID = %d\n", getpid()); exit(0); // استدعاء نظام exit } else if (pid > 0) { // العملية الأم printf("العملية الأم: PID = %d\n", getpid()); wait(NULL); // استدعاء نظام wait } else { // فشل fork perror("فشل fork"); exit(1); } return 0; }

١.١٠ تمارين اختبار شاملة

أسئلة اختيار من متعدد (من اختبارات CS330 سابقة)

س١. بسبب الذاكرة الافتراضية، يمكن مشاركة الذاكرة بين:

  • أ) العمليات
  • ب) الخيوط
  • ج) التعليمات
  • د) لا شيء مما ذكر

س٢. برنامج الإقلاع يُخزّن في:

  • أ) RAM
  • ب) ROM/EPROM
  • ج) القرص الصلب
  • د) الذاكرة المخبئية

س٣. أي من التالي ليس هدفًا لنظام التشغيل؟

  • أ) تنفيذ برامج المستخدم
  • ب) جعل الكمبيوتر سهل الاستخدام
  • ج) استخدام العتاد بكفاءة
  • د) ترجمة الكود المصدري

س٤. في المعالجة المتعددة المتماثلة (SMP):

  • أ) كل معالج يؤدي كل المهام داخل نظام التشغيل
  • ب) معالج واحد يعمل كرئيسي
  • ج) المعالجات مرتبة في تسلسل هرمي
  • د) معالج واحد فقط يستطيع الوصول للذاكرة في كل مرة

أسئلة إجابة قصيرة

س٥. اشرح الفرق بين البرنامج والعملية (process). (٥ درجات)

نموذج الإجابة:

  • البرنامج: كيان خامل مخزّن على القرص (ملف تنفيذي)
  • العملية: كيان نشط مع عداد برنامج يحدد التعليمات التالية لتنفيذها
  • العملية تشمل: كود البرنامج، النشاط الحالي، المكدس (stack)، قسم البيانات، heap
  • برنامج واحد يمكن أن يكون له عدة عمليات
  • للعملية حالة (جديد، جاهز، قيد التشغيل، في انتظار، منتهية)

س٦. اذكر وصف بإيجاز المكونات الأربعة الرئيسية لمعمارية فون نيومان. (٨ درجات)

نموذج الإجابة:

  • وحدة المعالجة المركزية (CPU):
    • وحدة التحكم: تجلب وتفك تشفير التعليمات
    • ALU: تنفذ العمليات الحسابية والمنطقية
  • وحدة الذاكرة: تخزّن البيانات والتعليمات معًا (مفهوم البرنامج المخزن)
  • أجهزة الإدخال: تسمح بإدخال البيانات للنظام (كيبورد، فأرة)
  • أجهزة الإخراج: تعرض النتائج (شاشة، طابعة)

س٧. ما هي مزايا الأنظمة متعددة المعالجات؟ اذكر على الأقل ثلاثة. (٦ درجات)

نموذج الإجابة:

  1. زيادة الإنتاجية: بزيادة عدد المعالجات، نتوقع إنجاز عمل أكثر بوقت أقل
  2. اقتصاد الحجم: الأنظمة متعددة المعالجات قد تكلف أقل من عدة أنظمة أحادية المعالج لأنها تشارك الأجهزة الطرفية، مصادر الطاقة، والتخزين
  3. زيادة الموثوقية: إذا تم توزيع الوظائف بشكل مناسب بين عدة معالجات، فإن فشل معالج واحد لن يوقف النظام، فقط سيبطئه (التدهور التدريجي/تحمل الأخطاء)

س٨. اشرح الفرق بين المعالجة المتعددة المتماثلة وغير المتماثلة. (٦ درجات)

نموذج الإجابة:

  • المعالجة المتعددة غير المتماثلة:
    • معالج رئيسي يتحكم ويوزع العمل على المعالجات التابعة
    • كل معالج مخصص لمهمة محددة
    • أكثر شيوعًا في الأنظمة الكبيرة جدًا
  • المعالجة المتعددة المتماثلة:
    • كل معالج يؤدي كل المهام داخل نظام التشغيل
    • مافي علاقة رئيسي-تابع بين المعالجات
    • كل المعالجات نظراء

مسألة حسابية

س٩. نظام ترحيل صفحات (paging system) بعناوين منطقية ٣٢ بت، ذاكرة رئيسية ١ جيجابايت (٢^٣٠)، وحجم صفحة ١ ميجابايت (٢٠ بت). كم عدد المدخلات في جدول الصفحات؟

الحل:

حجم الصفحة = ٢^٢٠ بايت

مساحة العناوين المنطقية = ٢^٣٢ بايت

عدد الصفحات = ٢^٣٢ / ٢^٢٠ = ٢^١٢ = ٤٠٩٦ مدخل

الإجابة: ٤,٠٩٦ مدخل

١.١١ المصطلحات الرئيسية والتعريفات

المصطلح التعريف
النواة (Kernel) البرنامج الوحيد اللي دايمًا شغال على الكمبيوتر؛ الجزء الأساسي من نظام التشغيل ويشتغل في وضع privileged mode ويدير موارد النظام
القشرة (Shell) واجهة المستخدم لنظام التشغيل (قد تكون CLI أو GUI)
استدعاء النظام واجهة برمجية للخدمات التي يوفرها نظام التشغيل
المقاطعة إشارة للمعالج أن حدثًا يحتاج اهتمامًا فوريًا
Trap/Exception مقاطعة ناتجة عن برمجيات بسبب خطأ أو طلب مستخدم
تبديل السياق حفظ واستعادة حالة العملية حتى يمكن استئناف التنفيذ لاحقًا
محمل الإقلاع البرنامج الأولي المخزّن في ROM/EPROM الذي يحمّل نواة نظام التشغيل في الذاكرة
البرامج الثابتة (Firmware) برمجيات مخزنة في ROM أو EPROM، تشمل برنامج الإقلاع
وحدة تحكم الجهاز عتاد يدير نوعًا معينًا من الأجهزة
برنامج تشغيل الجهاز برمجيات توفر واجهة بين نظام التشغيل ووحدة تحكم الجهاز
DMA الوصول المباشر للذاكرة - يسمح للأجهزة بنقل البيانات مباشرة للذاكرة بدون تدخل المعالج
التشغيل ثنائي الوضع دعم عتادي للتفريق بين تنفيذ وضع المستخدم ووضع النواة
Mode Bit بت عتادي يشير للوضع الحالي: نواة (٠) أو مستخدم (١)
الأوامر المميزة تعليمات يمكن تنفيذها فقط في وضع النواة
تعدد البرمجة تقنية لزيادة استغلال المعالج لأقصى حد بالاحتفاظ بعدة برامج في الذاكرة
المشاركة الزمنية امتداد منطقي لتعدد البرمجة حيث يبدل المعالج بين المستخدمين بسرعة
SMP معالجة متعددة متماثلة - كل المعالجات نظراء وتؤدي كل مهام نظام التشغيل
النظام المجمع أنظمة متعددة تعمل معًا، عادةً تشارك التخزين عبر SAN