Operating Systems Chapter #1 - Introduction

Operating Systems Chapter #1 - Introduction

مقدمة في نظم التشغيل

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

أهداف الشابتر

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

وظائف نظام التشغيل

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

إدارة الموارد وكفاءة النظام

  • ضرورة فهم كيفية إدارة الهارد وير من خلال نظام التشغيل لتحقيق كفاءة عالية.
  • تقديم واجهات سهلة الاستخدام للمستخدمين بفضل وجود نظام تشغيل فعال.
  • أهمية توزيع الموارد بشكل فعّال لضمان أداء جيد للبرامج.

هيكل الكمبيوتر ونظام التشغيل

  • تقسيم مكونات الكمبيوتر إلى مستخدمين، تطبيقات، ونظام تشغيل وهارد وير.
  • عرض العلاقة بين مكونات النظام من الأسفل للأعلى والعكس.

تحديات إدارة الأنظمة الكبيرة

  • كيف يضمن نظام التشغيل رضا جميع المستخدمين في بيئات متعددة الاستخدامات مثل السيرفرات الكبيرة.
  • التحديات التي تواجه المستخدمين عند استخدام نفس الخدمة وكيفية إدارتها بكفاءة.

نظام التشغيل وأهميته

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

تصميم أنظمة التشغيل

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

مكونات نظام التشغيل

  • الكيرنل هو الجزء الأساسي الذي يعمل معظم الوقت ولا يتوقف إلا عند إيقاف النظام بالكامل.
  • برامج إضافية تأتي مع نظام التشغيل لكنها ليست جزءًا من الكيرنل نفسه.
  • التطبيقات تتكون من طبقات فوق الكيرنل، تشمل برامج مثل الفوتوشوب وورد.

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

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

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

  • كل نوع من الهاردوير يحتاج تصميم خاص لنظام تشغيله، لكن هناك تشابهات عامة بين الأنظمة الحديثة.
  • في البداية كانت الأنظمة تعتمد على إعدادات محددة لتشغيل البرامج بشكل صحيح.

البرمجة المتعددة والتعدد المهام

  • ظهرت أنظمة تشغيل تدعم البرمجة المتعددة حيث يمكن تنفيذ عدة مهام بالتوازي.

نظام التشغيل والعمليات المتعددة

العمليات المتعددة

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

أنظمة التشغيل الزمن الحقيقي

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

التحكم في الأجهزة الطرفية

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

إدارة البيانات والطلبات

  • النظام يدير كيفية وصول البيانات للمعالج وتنفيذ المهام بكفاءة وأمان.
  • العلاقة بين الهاردوير والسوفت وير مهمة لفهم كيفية عمل النظام بشكل عام.

مقدمة حول المقاطعات

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

استجابة المعالج للمقاطعات

  • في حالة عدم قدرة المعالج على الاستجابة، يتوجه لنظام التشغيل للحصول على المساعدة.
  • نظام التشغيل يوجه المعالج لتنفيذ الأكواد المناسبة استنادًا إلى نوع المقاطعة.
  • هناك مقاطعات تأتي من المستخدم تُعرف بـ "سوفت وير انتبت".

أنواع الأخطاء والمقاطعات

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

التعامل مع المدخلات والمخرجات

  • هناك نوعان من المدخلات: الأول يتطلب الانتظار (سكرون)، والثاني لا يتطلب ذلك (لا سكرون).
  • النوع الأول يجعل البرنامج معلقًا حتى يتم الرد من الجهاز الخارجي.
  • النوع الثاني يسمح للبرنامج بالاستمرار في العمل أثناء انتظار الخدمة.

تطور الأجهزة والتقنيات الحديثة

  • تطور الأجهزة الطرفية جعلها أكثر ذكاءً وقدرةً على التواصل مباشرة مع المعالج.

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

  • يتم إرسال البيانات مباشرة إلى الذاكرة دون الحاجة لتشغيل المعالج، مما يزيد من الأداء.
  • تقنية "أوف لودينغ" تسمح للأجهزة بالتعرف على وجهتها بدون توجيه المعالج، مما يعزز الكفاءة.
  • نقل البيانات بشكل دفعة واحدة بدلاً من بايت واحد يقلل الضغط على المعالج.

عملية بدء التشغيل

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

التعامل مع المقاطعات

  • كرت الشبكة يحتاج إلى برامج تعمل باستمرار لاستقبال الطلبات وتوجيهها بشكل صحيح.
  • نظام التشغيل يتعامل مع المقاطعات الواردة من الأجهزة أو البرمجيات عبر خدمات محددة.
  • المقاطعات تُرسل للمعالج الذي يوجهها لنظام التشغيل إذا لم يعرف كيفية التعامل معها.

نظام التشغيل وحماية العمليات

  • طلبات الخدمة تتم عبر "سيستم كول"، حيث يُمرر البرنامج المعلمات المطلوبة لنظام التشغيل.
  • يجب منع العمليات من التداخل لضمان عدم تأثير عملية على أخرى، مثل تجنب الانفجارات أو الدورات اللانهائية.
  • نظام التشغيل يحمي نفسه ويعزل بين التطبيقات المختلفة لمنع التداخل.

أنظمة المستخدم والكيرنل

  • الانتقال بين وضع المستخدم ووضع الكيرنل يتم عبر تغيير البت الخاص بالنظام لحماية مكونات النظام.

نظام التشغيل والمعالج

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

إدارة العمليات والتايمر

  • التتبع يتم عن طريق البت مود، حيث يشير الواحد إلى يوزر سبيس والصفر إلى كيرنل سبيس.
  • التايمر يبدأ العد التنازلي لتنفيذ التعليمات، وعند الوصول للصفر يتم إنهاء العملية الحالية.
  • يمنع التايمر البرامج من الاستحواذ على المعالج للأبد ويضمن إدارة فعالة للعمليات.

تحويل البرامج إلى عمليات نشطة

  • عند تشغيل برنامج، يتحول من حالة باسيف إلى اكتف ويصبح بروسيس.
  • نظام التشغيل يدير الموارد اللازمة لكل بروسيس لضمان التنفيذ السلس.
  • يجب تهيئة الموارد مثل الذاكرة والمعالجة قبل بدء تنفيذ البروسيس.

إنهاء العمليات وإعادة استخدام الموارد

  • بعد انتهاء البروسيس، يقوم نظام التشغيل بتحرير الموارد المستخدمة وإغلاقها بشكل آمن.
  • البيانات التي تم تعديلها تُحفظ وتُعاد كتابتها في المرة القادمة عند الحاجة إليها.

أنواع العمليات: ثريد واحد أو متعدد

  • يمكن أن تتكون البروسيس من ثريد واحد أو عدة ثريدات صغيرة لتحسين الأداء.
  • الثريدات المتعددة توفر أداءً أفضل ولكن إدارتها تكون أكثر تعقيدًا لنظام التشغيل.

التحديات في إدارة الثريدات المتعددة

  • إذا كان هناك معالج واحد فقط، ستعمل الثريدات بالتتابع بدلاً من التوازي.

نظام التشغيل وإدارة العمليات

  • الثريد الثاني يسمح بتدوير العمليات بين المعالجات لزيادة الأداء.
  • نظام التشغيل يدير إنشاء وحذف العمليات ويحتفظ ببيانات التنفيذ.
  • تنظيم الوقت بين العمليات يسمى السكشن تزامن، حيث يتم تنفيذ كل عملية في زمن معين.

إدارة الموارد والتواصل بين العمليات

  • نظام التشغيل ينظم التواصل بين العمليات ويمنع حدوث الديد لوك.
  • إدارة الذاكرة تعتبر جزءًا كبيرًا من مسؤوليات نظام التشغيل.
  • يجب أن تكون البرامج في الذاكرة الرئيسية لتنفيذها بشكل كامل.

تنظيم الذاكرة والعمليات

  • نظام التشغيل ينظم الأولويات لتشغيل البرامج على المعالج.
  • استجابة سريعة للطلبات تعتمد على وجود البرنامج في الذاكرة.
  • إدارة الذاكرة تشمل تخصيص المساحات للبرامج ذات الأولوية.

إدارة التخزين والملفات

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

نظام الملفات والتحكم بالوصول

  • يجب أن تكون الملفات منظمة بطريقة تسهل الوصول إليها من قبل المستخدمين.
  • التحكم في الوصول يحدد من يمكنه رؤية وتعديل الملفات المختلفة.

نظام التشغيل وعمليات الربط

  • نظام التشغيل مسؤول عن ربط الملفات من الهارد ديسك إلى الذاكرة، خاصة إذا كانت مرتبطة بعملية معينة.
  • يهدف نظام التشغيل إلى إخفاء واجهة الهارد وير السيئة عن المستخدم.
  • يتولى نظام التشغيل إدارة الذاكرة والتعامل مع الأجهزة الطرفية.

الأنظمة الوهمية وتقنية الفيرشوال ماشين

  • تقنية الفيرشوال ماشين تعتمد على دعم أنظمة التشغيل لإنشاء بيئات وهمية.
  • يمكن تشغيل البرامج في بيئات وهمية دون الاعتماد على النظام الأصلي للجهاز.
  • الفيرشوال ماشين تعمل بشكل مستقل عن نظام التشغيل الأساسي.

محاكاة التعليمات البرمجية

  • تحتاج بعض البرامج إلى محاكاة التعليمات لتعمل على هارد وير مختلف.
  • المحاكاة تضمن تشغيل البرنامج بشكل صحيح على أنواع مختلفة من المعالجات.
  • هناك نوعان من الأنظمة: بدون فرز وبتقنية الفرز.

تقنيات هايبر فايزر

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

أنواع هايبر فايزر

  • النوع الأول من هايبر فايزر يعمل مباشرة على الهارد وير ويعتبر الأكثر كفاءة.
  • النوع الثاني يعتمد على نظام تشغيل مضيف ويستخدم في البيئات الافتراضية مثل VirtualBox.

تطور المعالجات

  • اللاب توب غير مرتبط بتفاصيل الهاردوير، مما يوفر أداءً عالياً.
  • نمو استخدام المعالجات المتعددة، حيث يمكن أن يحتوي المعالج على عدة أنوية.
  • تطور كبير في الهاردوير مع وجود معالجات تحتوي على أكثر من 24 نواة.

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

  • زيادة عدد الأنوية تعزز الأداء وتسمح بتشغيل مهام متعددة بشكل متزامن.
  • القدرة على توزيع المهام عبر الأنوية لتحسين الكفاءة وتقليل وقت التنفيذ.
  • كل نواة لها تردد خاص بها وإدارة حرارية مستقلة.

تصميم المعالجات واستخدام الطاقة

  • تصميمات مختلفة للمعالجات تشمل أنوية بسرعات مختلفة لتوفير الطاقة.
  • اختيار النوى المناسبة حسب الحاجة للأداء أو المراقبة البسيطة.
  • أهمية نظام التشغيل في إدارة الموارد والأداء العام للنظام.

هيكل البيانات في نظام التشغيل

  • إنشاء هياكل بيانات لمتابعة العمليات والموارد المستخدمة في النظام.
  • ضرورة وجود مصفوفات وقوائم مرتبطة لتخزين المعلومات المؤقتة عن العمليات.
  • حماية البيانات بحيث لا يمكن الوصول إليها إلا من قبل النواة نفسها.

أنظمة التشغيل ومصادرها المفتوحة

  • تنوع أنظمة التشغيل مثل ويندوز ولينكس، مع التركيز على المصادر المفتوحة.
  • إمكانية تطوير وتحسين الكود المصدر لأنظمة التشغيل المفتوحة.
Video description

Operating Systems Chapter #1 - Introduction