CS330 - أنظمة التشغيل
نسخة كاملة بجميع المواضيع
نظام التشغيل هو برنامج يشتغل كوسيط بين مستخدمي الكمبيوتر والعتاد (Hardware). يوفّر بيئة يستطيع المستخدم من خلالها تشغيل البرامج بسهولة وكفاءة.
النواة هي "البرنامج الوحيد اللي دايمًا شغال على الكمبيوتر"
أهداف نظام التشغيل تختلف حسب وجهة النظر:
التشغيل ثنائي الوضع يخلّي نظام التشغيل يحمي نفسه والمكونات الأخرى:
عملية مستخدم (mode bit = 1)
النواة (mode bit = 0)
تنفيذ system call
نظام التشغيل لازم يحمي المعالج من سيطرة برنامج المستخدم (زي لو دخل في loop لا نهائي) باستخدام مؤقت:
السؤال: إذا كانت النواة single threaded، فإن أي thread على مستوى المستخدم ينفّذ system call يحجب (block) راح:
معمارية فون نيومان تتكون من:
نظام الكمبيوتر بشكل عام يتكون من مجموعة وحدات (معالج، وحدات تحكم أجهزة، ذاكرة وأجهزة إدخال/إخراج) مربوطة ببعضها بناقل النظام.
كل وحدة تحكم (device controller) مسؤولة عن نوع معين من أجهزة الإدخال/الإخراج
| المكون | الوظيفة | أمثلة |
|---|---|---|
| المعالج (CPU) | ينفذ التعليمات | Intel Core i7, AMD Ryzen |
| الذاكرة | تخزّن البيانات والبرامج | RAM, Cache, Registers |
| أجهزة الإدخال/الإخراج | تتعامل مع العالم الخارجي | كيبورد، شاشة، قرص صلب |
| ناقل النظام | مسار التواصل | نواقل العناوين، البيانات، التحكم |
| وحدات تحكم الأجهزة | تدير أنواع محددة من الأجهزة | وحدة تحكم USB، وحدة تحكم القرص |
الأنظمة متعددة المعالجات (وتسمى كمان الأنظمة المتوازية أو الأنظمة شديدة الترابط) في ازدياد من ناحية الاستخدام والأهمية.
خلال السنوات القليلة الماضية، الأنظمة متعددة المعالجات (أو أنظمة متعددة النوى) بدأت تهيمن على مجال الحوسبة.
مثل الأنظمة متعددة المعالجات، لكن أنظمة متعددة تشتغل مع بعض
فيه جهاز واحد في وضع الاستعداد السريع يراقب السيرفر النشط بينما الآخر يشغل التطبيقات
فيه عدة عقد تشغل تطبيقات وتراقب بعضها البعض
برنامج الإقلاع (bootstrap program) يُحمّل عند تشغيل الطاقة أو إعادة التشغيل:
نقاط رئيسية عن المقاطعات:
السؤال: الجدول اللي يشير إلى الروتينات اللي تتعامل مع المقاطعات يسمى:
الأجهزة البطيئة مثل الكيبورد تولّد مقاطعة للمعالج الرئيسي بعد كل بايت يتم نقله. لو جهاز سريع مثل القرص الصلب ولّد مقاطعة لكل بايت، راح يقضي نظام التشغيل معظم وقته في معالجة هالمقاطعات. لذلك الكمبيوتر النموذجي يستخدم الوصول المباشر للذاكرة (DMA) عشان يقلل هذا العبء.
ناقل البيانات يربط كل المكونات
| نوع الإدخال/الإخراج | تدخل المعالج | المقاطعات | أفضل لـ |
|---|---|---|---|
| I/O مبرمج | عالي (مستمر) | لا شيء | أجهزة بطيئة جدًا |
| I/O مبني على المقاطعات | متوسط | واحدة لكل بايت | أجهزة بطيئة (كيبورد) |
| DMA | منخفض (بداية/نهاية فقط) | واحدة لكل كتلة | أجهزة سريعة (قرص، شبكة) |
| نوع التخزين | السعة | زمن الوصول | التكلفة/جيجابايت | متطاير؟ |
|---|---|---|---|---|
| المسجلات | < ١ كيلوبايت | < ١ نانوثانية | الأعلى | نعم |
| Cache | ١-٣٢ ميجابايت | ١-١٠ نانوثانية | عالي جدًا | نعم |
| RAM | ٤-٦٤ جيجابايت | ١٠-١٠٠ نانوثانية | عالي | نعم |
| SSD | ٢٥٦ جيجابايت - ٤ تيرابايت | ١٠-١٠٠ ميكروثانية | متوسط | لا |
| HDD | ١-٢٠ تيرابايت | ٥-١٠ ملي ثانية | منخفض | لا |
أنظمة التشغيل المختلفة تختلف كثيرًا داخليًا لكن تشترك في ميزات كثيرة. تطور أنظمة التشغيل يظهر التقدم من أنظمة batch بسيطة إلى أنظمة حديثة معقدة.
تعدد البرمجة ضروري للكفاءة:
المشاركة الزمنية هي امتداد منطقي لتعدد البرمجة:
تذكر الفروق الرئيسية:
| النوع | الخصائص | أمثلة | الاستخدامات |
|---|---|---|---|
| أنظمة Batch | تجمّع وظائف متشابهة، بدون تفاعل مستخدم | IBM OS/360 | الرواتب، كشوفات البنك |
| أنظمة المشاركة الزمنية | عدة مستخدمين، زمن استجابة سريع | Unix, Linux | الحوسبة العامة |
| أنظمة الزمن الحقيقي | قيود زمنية محددة، متوقعة | VxWorks, RTLinux | أجهزة طبية، روبوتات |
| أنظمة موزعة | معالجات متعددة، مشاركة موارد | نظام جوجل، Amoeba | الحوسبة السحابية |
| أنظمة الجوال | كفاءة طاقة، واجهة لمس | Android, iOS | الهواتف الذكية، الأجهزة اللوحية |
السؤال: العملية لا تستطيع إبقاء كل من المعالج والإدخال/الإخراج مشغولين طوال الوقت. الأسلوب اللي يستخدم لاستغلال المعالج بكفاءة هو:
بيئات الحوسبة تطورت من الأنظمة التقليدية المستقلة إلى أنظمة موزعة معقدة وقائمة على السحابة.
السؤال: وحدة التحكم تستخدم _____ للمساعدة في عمليات النقل عند التعامل مع واجهات الشبكة.
استدعاءات النظام توفّر واجهة بين البرنامج الجاري ونظام التشغيل. عادةً تكون متاحة كتعليمات لغة تجميع.
س١. بسبب الذاكرة الافتراضية، يمكن مشاركة الذاكرة بين:
س٢. برنامج الإقلاع يُخزّن في:
س٣. أي من التالي ليس هدفًا لنظام التشغيل؟
س٤. في المعالجة المتعددة المتماثلة (SMP):
س٥. اشرح الفرق بين البرنامج والعملية (process). (٥ درجات)
س٦. اذكر وصف بإيجاز المكونات الأربعة الرئيسية لمعمارية فون نيومان. (٨ درجات)
س٧. ما هي مزايا الأنظمة متعددة المعالجات؟ اذكر على الأقل ثلاثة. (٦ درجات)
س٨. اشرح الفرق بين المعالجة المتعددة المتماثلة وغير المتماثلة. (٦ درجات)
س٩. نظام ترحيل صفحات (paging system) بعناوين منطقية ٣٢ بت، ذاكرة رئيسية ١ جيجابايت (٢^٣٠)، وحجم صفحة ١ ميجابايت (٢٠ بت). كم عدد المدخلات في جدول الصفحات؟
حجم الصفحة = ٢^٢٠ بايت
مساحة العناوين المنطقية = ٢^٣٢ بايت
عدد الصفحات = ٢^٣٢ / ٢^٢٠ = ٢^١٢ = ٤٠٩٦ مدخل
الإجابة: ٤,٠٩٦ مدخل
| المصطلح | التعريف |
|---|---|
| النواة (Kernel) | البرنامج الوحيد اللي دايمًا شغال على الكمبيوتر؛ الجزء الأساسي من نظام التشغيل ويشتغل في وضع privileged mode ويدير موارد النظام |
| القشرة (Shell) | واجهة المستخدم لنظام التشغيل (قد تكون CLI أو GUI) |
| استدعاء النظام | واجهة برمجية للخدمات التي يوفرها نظام التشغيل |
| المقاطعة | إشارة للمعالج أن حدثًا يحتاج اهتمامًا فوريًا |
| Trap/Exception | مقاطعة ناتجة عن برمجيات بسبب خطأ أو طلب مستخدم |
| تبديل السياق | حفظ واستعادة حالة العملية حتى يمكن استئناف التنفيذ لاحقًا |
| محمل الإقلاع | البرنامج الأولي المخزّن في ROM/EPROM الذي يحمّل نواة نظام التشغيل في الذاكرة |
| البرامج الثابتة (Firmware) | برمجيات مخزنة في ROM أو EPROM، تشمل برنامج الإقلاع |
| وحدة تحكم الجهاز | عتاد يدير نوعًا معينًا من الأجهزة |
| برنامج تشغيل الجهاز | برمجيات توفر واجهة بين نظام التشغيل ووحدة تحكم الجهاز |
| DMA | الوصول المباشر للذاكرة - يسمح للأجهزة بنقل البيانات مباشرة للذاكرة بدون تدخل المعالج |
| التشغيل ثنائي الوضع | دعم عتادي للتفريق بين تنفيذ وضع المستخدم ووضع النواة |
| Mode Bit | بت عتادي يشير للوضع الحالي: نواة (٠) أو مستخدم (١) |
| الأوامر المميزة | تعليمات يمكن تنفيذها فقط في وضع النواة |
| تعدد البرمجة | تقنية لزيادة استغلال المعالج لأقصى حد بالاحتفاظ بعدة برامج في الذاكرة |
| المشاركة الزمنية | امتداد منطقي لتعدد البرمجة حيث يبدل المعالج بين المستخدمين بسرعة |
| SMP | معالجة متعددة متماثلة - كل المعالجات نظراء وتؤدي كل مهام نظام التشغيل |
| النظام المجمع | أنظمة متعددة تعمل معًا، عادةً تشارك التخزين عبر SAN |