iqraaPostsStyle6/random/3

المحاضرة 1 | نظم التشغيل - مفهوم نظام التشغيل ومكوناته وأنواعه بالتفصيل

الكاتب: Zeyad Eltmsahتاريخ النشر: آخر تحديث: وقت القراءة:
للقراءة
عدد الكلمات:
كلمة
عدد التعليقات: 0 تعليق
نبذة عن المقال: شرح كامل لمحاضرة نظم التشغيل الأولى: مفهوم نظام التشغيل، مكوناته الأساسية، الفرق بين النواة والصدفة، تطور أنظمة التشغيل عبر العصور،أنواع أنظمة التشغيل
نظم التشغيل

🤔 إزاي الكمبيوتر بيفهم اللي أنا عايزه؟ ومين اللي بيتحكم في كل حاجة من ورا؟

أهلاً بيك في المحاضرة الأولى من مادة نظم التشغيل! 🎓

أنا عارف إنك داخل المحاضرة دي ومتسائل: "إيه نظم التشغيل دي؟ وإيه اللي جابها في حياتي؟"

خلّيني أقولك الحقيقة: من غير نظام التشغيل، الكمبيوتر بتاعك مجرد قطعة حديد! 🖥️❌

تخيّل معايا: تشتري أغلى كمبيوتر في الدنيا، بأحدث معالج وأكبر رامات. تفتحه... وتلاقي شاشة سودا! ليه؟ عشان مفيش نظام تشغيل يقول للهاردوير إزاي يشتغل!

💡 معلومة صادمة

كل حاجة بتستخدمها - من ويندوز، لينكس، أندرويد، iOS، حتى نظام السيارة - ده نظام تشغيل! والمادة دي هتعلمك إزاي يشتغل من جوه.

⚠️ معلومات المنهجية

توزيع الدرجات: الميد ترم 30 - العملي والأنشطة 90 - الامتحان النهائي 60 (الحد الأقصى 150 درجة)

الكويزات: 3 كويزات أونلاين، كل طالب مسؤول عن موبايله ونته

المراجع: Silberschatz, Galvin, Gagne "Operating System Concepts" 10th Edition + S.Pal "Operating Systems" 2023

المشكلة؟ المادة دي صعبة! دفعات كتير فشلت فيها. ليه؟ عشان بيتعملوا إنهم فاهمين، وفي الامتحان بيتلخبطوا. 🚨

فـ في المحاضرة دي، هنشرح كل حاجة من الصفر، بطريقة بسيطة خالص، زي ما تكون قاعد مع صاحبك بيشرحلك! ☕

🎯 إيه اللي هتتعلمه في المحاضرة دي؟

الترتيب الموضوع الأهمية
1 مفهوم نظام التشغيل (What is an OS?) ⭐⭐⭐⭐⭐ أساسي جداً
2 أهداف نظام التشغيل (OS Goals) ⭐⭐⭐⭐⭐ في الامتحان
3 مكونات نظام الحاسوب (Computer System Structure) ⭐⭐⭐⭐⭐ رسم بياني مهم
4 تعريفات نظام التشغيل (Resource Allocator - Control Program) ⭐⭐⭐⭐⭐ سؤال مهم
5 مكونات نظام التشغيل (Kernel vs Shell) ⭐⭐⭐⭐⭐ الفرق بينهم مهم
6 وجهة نظر المستخدم vs وجهة نظر النظام (User View vs System View) ⭐⭐⭐⭐ سؤال نظري
7 تطور نظم التشغيل (Evolution of OS - 7 مراحل) ⭐⭐⭐⭐⭐ ترتيب الأجيال مهم
8 أنواع أنظمة التشغيل (8 أنواع مفصلة) ⭐⭐⭐⭐⭐ أسئلة كتيرة
9 وظائف نظام التشغيل (8 وظائف) ⭐⭐⭐⭐⭐ في كل امتحان

📚 الجزء الأول: مفهوم نظام التشغيل (Operating System)

🤔 إيه هو نظام التشغيل بالظبط؟

تعالى نفهمها بطريقة بسيطة:

📖 التعريف الرسمي

نظام التشغيل (Operating System) هو برنامج يعمل كوسيط (intermediary) بين المستخدم (user) وهاردوير الكمبيوتر (computer hardware).

أو تعريف آخر: مجموعة من برامج النظام (collection of system programs) التي تتحكم معاً في عمليات نظام الحاسوب.

يعني إيه كلام ده؟

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

  • بياخد الأمر منك (الضغطة)
  • بيوصله للمعالج (CPU)
  • بيحجز مكان في الذاكرة (RAM) للبرنامج
  • بيظهرلك النتيجة على الشاشة

من غيره؟ مفيش حاجة هتشتغل!

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

لا! نظام التشغيل في كل حاجة حوالينا:

CODE
أجهزة فيها نظام تشغيل:
├── الكمبيوتر (ويندوز، لينكس، ماك)
├── الموبايل (أندرويد، iOS)
├── السيارة (نظام التحكم في المحرك)
├── الطيارة (نظام الطيران والملاحة)
├── الطابعة (نظام إدارة الطباعة)
├── الغسالة (نظام التحكم في البرامج)
└── الأجهزة الذكية (IoT Devices)

✅ الفكرة الأساسية

أي جهاز فيه معالج (processor) وبيحتاج تعليمات عشان يشتغل، لازم يكون فيه نظام تشغيل!

📋 أمثلة على أنظمة التشغيل الشائعة:

UNIX, Mach, MS-DOS, MS-Windows, Windows/NT, Chicago, OS/2, MacOS, VMS, MVS, VM

🎯 الجزء الثاني: أهداف نظام التشغيل (Operating System Goals)

نظام التشغيل مش موجود عشان يزعجك! 😄 عنده 3 أهداف رئيسية:

الهدف الشرح المصطلح الإنجليزي
1. تنفيذ برامج المستخدم يساعدك تشغل البرامج اللي عايزها بسهولة Execute user programs and make solving user problems easier
2. تسهيل استخدام الكمبيوتر يخلي الكمبيوتر سهل الاستخدام مش معقد Make the computer system convenient to use
3. استخدام الهاردوير بكفاءة يستغل موارد الجهاز أحسن استغلال Use the computer hardware in an efficient manner

🏗️ الجزء الثالث: مكونات نظام الحاسوب (Computer System Components)

عشان تفهم نظام التشغيل، لازم تعرف نظام الحاسوب بيتكون من إيه:

CODE
نظام الحاسوب = Hardware + Software + Users

HARDWARE (الهاردوير - الجزء المادي):
├── Essentials (أساسيات):
│   ├── Processor(s) (المعالج/المعالجات)
│   ├── Buses (الناقلات)
│   └── Memory (الذاكرة):
│       ├── Registers (السجلات)
│       ├── ROM (ذاكرة القراءة فقط)
│       └── RAM (ذاكرة الوصول العشوائي - Volatile)
│
└── Optionals (اختياريات):
    ├── Secondary Memory (HDD/SSD) - التخزين الثانوي
    ├── Tertiary Memory (Tape, Flash drives) - التخزين الثالثي
    └── Peripherals (الأجهزة الطرفية):
        ├── Input (إدخال): Keyboard, Mouse, Scanner
        └── Output (إخراج): Monitor, Printer

SOFTWARE (السوفت وير - البرامج):
├── System Software (برامج النظام)
│   ├── Operating System (OS) ⭐ - نظام التشغيل
│   └── Utilities (أدوات النظام)
└── Application Software (برامج التطبيقات)
    └── Programs (by users) - برامج المستخدم

USERS (المستخدمون):
├── People (الناس)
├── Machines (الأجهزة)
└── Other Computers (كمبيوترات أخرى)

⚠️ ملاحظة مهمة!

نظام التشغيل (OS) هو System Software، مش Application Software! الفرق: النظام بيتحكم في الهاردوير، والتطبيق بيستخدم النظام.

🔀 التسلسل الهرمي للنظام (Four Components):

الطبقة الاسم الوظيفة
1 (الأعلى) Users (المستخدمين) الناس، الأجهزة، الكمبيوترات التانية
2 Application Programs (برامج التطبيقات) المترجمات (compilers)، المتصفحات، أدوات التطوير
3 Operating System (نظام التشغيل) ⭐ الوسيط بين البرامج والهاردوير - يتحكم وينسق استخدام الهاردوير
4 (الأخيرة) Computer Hardware (هاردوير الكمبيوتر) المعالج، الذاكرة، أجهزة الإدخال/الإخراج

📖 الجزء الرابع: تعريفات نظام التشغيل (Operating System Definitions)

فيه تعريفين رئيسيين لنظام التشغيل في المحاضرة:

1️⃣ Resource Allocator (موزع الموارد)

نظام التشغيل بيدير ويوزع موارد الكمبيوتر على البرامج المختلفة.

CODE
الموارد اللي بيديرها نظام التشغيل:
├── CPU (المعالج) - تنفيذ الأوامر
├── Memory (الذاكرة) - تخزين مؤقت
├── Files (الملفات) - تخزين دائم
├── I/O Devices (أجهزة الإدخال/الإخراج)
└── Network (الشبكة) - الاتصال بالخارج

التسلسل:
Users → Resource Request → Resource Allocator (OS) → Resources → Processes Use Resources

2️⃣ Control Program (برنامج التحكم)

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

CODE
وظائف Control Program:

User Program Execution (تنفيذ برامج المستخدم):
├── البرامج بتطلب خدمات باستخدام System Calls (نداءات النظام)
├── OS بيحمل البرامج في الذاكرة (load into memory)
├── OS بيحددها على CPU (schedule on CPU)
└── OS بيتحكم في التنفيذ باستخدام Process Scheduling و Context Switching

Control of I/O Devices (التحكم في أجهزة الإدخال/الإخراج):
├── OS بيدير كل عمليات الإدخال/الإخراج
├── يستخدم Device Drivers للتواصل مع الهاردوير
└── يخصص الأجهزة للبرامج ويتحكم فيها

دور OS:
├── واجهة بين برامج المستخدم والهاردوير
├── يضمن الاستخدام الفعال والآمن للـ CPU وأجهزة I/O
└── يمنع التعارض بين البرامج المتعددة

⚙️ الجزء الخامس: مكونات نظام التشغيل (Components of OS)

نظام التشغيل بيتكون من جزئين أساسيين:

⚠️ سؤال مهم في الامتحان!

الفرق بين Kernel وShell:

  • Kernel: جزء نشط، شغال طول الوقت، يتعامل مباشرة مع الهاردوير
  • Shell: مترجم أوامر، واجهة بين المستخدم والنظام

👁️ الجزء السادس: وجهة النظر - المستخدم vs النظام (Two Viewpoints)

نظام التشغيل ممكن نشوفه من زاويتين مختلفتين:

وجهة النظر الوصف الاهتمام الرئيسي
User View (وجهة المستخدم) المستخدم عايز يستخدم موارد الجهاز بسهولة، ويعمل أكبر قدر من الشغل، بأقل مجهود سهولة الاستخدام، الراحة، الإنتاجية، maximize the work
System View (وجهة النظام) نظام التشغيل هو برنامج تحكم (control program)، بيدير تنفيذ برامج المستخدم، ويمنع الأخطاء والاستخدام الغلط للكمبيوتر الكفاءة، الأمان، إدارة الموارد، operation and control of I/O devices

💡 مثال بسيط

المستخدم: "عايز أفتح وورد وأكتب" (سهل وبسيط)
النظام: "لازم أحجز مكان في الرام، أشغل البرنامج، أدير الـ CPU، أتحكم في الطابعة لو عايز يطبع..." (معقد ومحسوب)

⏳ الجزء السابع: تطور نظم التشغيل (Evolution of OS - مهم جداً!)

ده سؤال مهم في الامتحان! لازم تعرف الترتيب الزمني وخصائص كل جيل:

1️⃣ 1940s–1950s: No Operating System (مفيش نظام تشغيل)

CODE
الخصائص:
├── مفيش نظام تشغيل خالص
├── البرامج بتتنفذ يدوياً باستخدام Punch Cards (كروت مثقوبة)
├── برنامج واحد بس بيشتغل في نفس الوقت (one program at a time)
└── المبرمج هو المشغل (Programmer = Operator)

التسلسل: User → Machine Language (Punch Cards/Switch) → CPU+Memory+I/O → Hardware

2️⃣ 1950s–1960s: Mainframe Systems (أنظمة الحواسيب المركزية)

CODE
الخصائص:
├── تقليل وقت الإعداد (Reduce setup time) بتجميع المهام المتشابهة (batching similar jobs)
├── تسلسل المهام التلقائي (Automatic Job Sequencing)
│   └── بيحول التحكم من مهمة للتانية أوتوماتيكياً
├── أول نظام تشغيل بدائي (First rudimentary OS)
└── Resident Monitor: برنامج مقيم (initial control in monitor)

التسلسل: User → Input Devices (Card Reader) → Batch Monitor/OS → Mainframe CPU → Output Devices

المميزات: قوة معالجة عالية، قابلية التوسع، تحمل الأخطاء (Fault Tolerant)، أمان عالي
العيوب: غالي جداً، معقد، يحتاج متخصصين

3️⃣ 1960s–1970s: Batch Processing OS (معالجة الدُفعات)

CODE
الخصائص:
├── بيقبل أكتر من مهمة (Job)
├── المهام بتتجمّع (Batch) حسب التشابه
├── المشغل (Operator) هو اللي بيجمع المهام
├── لما الكمبيوتر يفضل، المهام بتتبعت للتنفيذ
├── الناتج بيرجع للمستخدم تدريجياً
├── برنامج واحد بس بيشتغل في نفس الوقت (only one program at a time)
└── مسؤول عن جدولة المهام حسب الأولوية والموارد

الـ OS بيعمل:
├── Job scheduling
├── Memory management
├── I/O management
└── Job sequencing

المميزات: كفاءة الموارد، إنتاجية عالية (High Throughput)، تقليل الأخطاء، إدارة مبسطة، توفير التكلفة، قابلية التوسع
العيوب: وظائف محدودة، مشاكل أمنية، انقطاعات متكررة، بطء

4️⃣ 1960s–1970s: Multiprogramming OS (البرمجة المتعددة) ⭐

CODE
الفكرة الأساسية (Concept):
├── كل المهام بتدخل النظام وتتخزن في Job Pool (في القرص - on disc)
├── OS بيحمل مجموعة من المهام من Job Pool للـ Main Memory
├── أثناء التنفيذ، المهمة ممكن تستنى حاجة (زي I/O)
├── OS بيحوّل للمهمة التانية على طول (switch to another job)
├── لما المهمة الأولى تخلص الانتظار، ترجع تاخد CPU
├── طول ما فيه مهمة محتاجة CPU، الـ CPU مش بيفضل فاضي (never idle)
└── بيستخدم Job Scheduling و CPU Scheduling

الهدف: زيادة استغلال CPU (increases CPU utilization)

المميزات: زيادة استغلال الموارد، دعم أكتر من مستخدم، تقليل وقت الانتظار، تحسين الاستجابة، موثوقية أعلى
العيوب: المهام الطويلة بتاخد وقت، محتاج إدارة ذاكرة معقدة، ممكن يسخن الجهاز، محتاج معرفة بـ Scheduling Algorithms:

⚠️ Scheduling Algorithms (مهم للامتحان):
├── Preemptive: لو أكتر من process عايزة تدخل critical section، بتدخل من غير مقاطعة
└── Non-Preemptive: لو process دخلت critical section، مش بتخرج لحد ما تخلص شغلها

✅ الفرق المهم!

Batch Processing: برنامج واحد بيشتغل في نفس الوقت
Multiprogramming: أكتر من برنامج في الذاكرة، والـ CPU بيتنقل بينهم (switching)

5️⃣ 1960s–1970s: Real-Time Operating Systems (RTOS) - أنظمة الوقت الحقيقي ⭐

CODE
الخصائص:
├── نظام multitasking بمواعيد محددة (fixed deadlines)
├── للتطبيقات اللي محتاجة استجابة فورية
├── تطور مع التكنولوجيا والحاجة للأداء في الوقت الحقيقي
└── أمثلة: الأنظمة المدمجة (embedded)، متحكمات محرك السيارة، الروبوتات الصناعية، المركبات الفضائية، التحكم الصناعي

التصنيفات (مهم جداً):

🔴 Hard Real-Time System (صارم):
├── بيضمن إن المهام الحرجة تتنفذ في معادها بالضبط
├── كل التأخيرات لازم تكون محدودة ومضمونة (bounded delays)
├── الـ Time Constraints بتحدد الـ Facilities المتاحة
└── أمثلة: فرامل السيارة، نظام الطيران، الأجهزة الطبية الحرجة

🟡 Soft Real-Time System (مرن):
├── أقل تقييد من الـ Hard
├── المهام الحرجة ليها أولوية لحد ما تخلص
├── ممكن يتخلط مع أنظمة تانية
└── أقل أمان للتحكم الصناعي (risky) - أمثلة: تشغيل الفيديو، الألعاب

المميزات: استغلال أقصى للأجهزة، تبديل سريع للمهام (3 نانوثانية في الأنظمة الحديثة)، تركيز على التطبيقات النشطة، مناسب للـ Embedded Systems، خالي من الأخطاء، إدارة ممتازة للذاكرة
العيوب: مهام محدودة جداً، يستخدم موارد ثقيلة ومكلفة، خوارزميات معقدة، يحتاج Drivers وإشارات Interrupt خاصة، صعوبة في تحديد أولوية الـ Threads، تبديل مهام قليل (minimal task switching)

⚠️ الفرق المهم بين Hard وSoft Real-Time!

Hard: مفيش تأخير مسموح، لازم في المعاد بالضبط (مثل: فرامل السيارة، نظام الطيران)
Soft: تأخير بسيط مسموح، الأولوية للمهام الحرجة (مثل: تشغيل فيديو، ألعاب)

6️⃣ 1970s–1980s: Time-Sharing / Multitasking OS (المشاركة الزمنية)

CODE
الخصائص:
├── امتداد منطقي للـ Multiprogramming (logical extension)
├── تبديل أسرع بين المهام المتعددة (faster switching)
├── أكتر من مستخدم يقدروا يشاركوا نفس الكمبيوتر (multiple users)
├── المستخدمين يقدروا يتفاعلوا مع كل مهمة وهي شغالة (interact)
├── بيستخدم مفهوم الذاكرة الافتراضية (Virtual Memory)
├── مفيش مهام بتترمي - كل واحدة بتتنفذ باستخدام Virtual Memory
└── أمثلة: CTSS, MULTICS, CAL, UNIX

الـ OS بيعمل:
├── CPU scheduling
├── CPU Time Slicing (تقسيم وقت المعالج)
├── Memory management
├── I/O management
└── Security management

المميزات: كل مهمة ليها فرصة متساوية، فرص تكرار Software أقل، تقليل وقت CPU الفاضي
العيوب: مشاكل في الموثوقية (Reliability)، لازم اهتمام بالأمان وسلامة البيانات، مشاكل في اتصال البيانات

7️⃣ 1980s–1990s: Multiprocessor OS (أنظمة المعالجات المتعددة) ⭐

CODE
الأسماء التانية: Parallel OS, Tightly Coupled OS
الخصائص:
├── أكتر من معالج بيتواصلوا مع بعض (more than one processor)
├── بيشاركوا: Bus (الناقل)، Clock (الساعة)، Memory، Peripherals
├── بينفذوا أكتر من مهمة في نفس الوقت
└── أسرع في المعالجة

الـ 3 مميزات الرئيسية (Three Main Advantages):
1. Increased Throughput: شغل أكتر في وقت أقل (N processors)
2. Economy of Scale: توفير فلوس (مشاركة الأجهزة، التخزين، الكهرباء)
3. Increased Reliability: لو معالج وقع، الباقي يكملوا

مفاهيم مهمة:
├── Graceful Degradation: القدرة على الاستمرار في الخدمة حسب مستوى الهاردوير الباقي
└── Fault Tolerant: الأنظمة المصممة للـ Graceful Degradation

أنواع Multiprocessor (مهم جداً):

🔴 Symmetric Multiprocessing (SMP):
├── كل معالج شغل نسخة متطابقة من OS
├── كل المعالجات متساوية (equal)
├── أي معالج يقدر يعمل أي مهمة (scheduling, I/O)
├── العمليات بتتوزع ديناميكياً باستخدام CPU scheduling
├── كل المعالجات بيشاركوا نفس الذاكرة والـ I/O
└── اسم تاني: Shared-Memory Multiprocessing

المميزات: فشل معالج واحد مبيأثرش على الباقي، توزيع متساوي للشغل، استغلال موارد محسن
العيوب: معقد، غالي، محتاج مزامنة (synchronization) بين المعالجات

🟡 Asymmetric Multiprocessing:
├── المعالجات مش متساوية
├── معالج واحد Master يتحكم في معالجات Slave (master-slave relationship)
├── الـ Master بيعمل scheduling و memory management و I/O
├── الـ Slaves بينفذوا المهام اللي الـ Master بيوزعها
└── الـ Master بيحافظ على الـ Ready Queue ويوزع العمليات

المميزات: أوفر تكلفة، سهل التصميم والإدارة، مرن
العيوب: توزيع غير متساوي للشغل، المعالجات مش بيشاركوا نفس الذاكرة، النظام كله بيوقع لو الـ Master وقع

8️⃣ 2000–present: Distributed Operating Systems (أنظمة التوزيع)

CODE
الخصائص:
├── أجهزة مختلفة متصلة في شبكة (connected in a network)
├── كل جهاز له معالجه وذاكرته المحلية (local memory)
├── أنظمة التشغيل على كل الأجهزة بتشتغل مع بعض
└── بتدير الشبكة ككل (manage the collective network)

التصنيفات:
├── Client-Server Systems: العميل بيطلب، السيرفر بيستجيب
└── Peer-to-Peer Systems: كل جهاز عميل وسيرفر في نفس الوقت

المميزات (Advantages):
├── Resources Sharing: مشاركة الموارد
├── Computation Speed-up: توزيع الحمل (load sharing)
├── Reliability: الموثوقية - لو جهاز وقع، الباقي يكمل
└── Communications: التواصل بين الأجهزة

المتطلبات: Network Infrastructure (LAN أو WAN)

9️⃣ Desktop / Personal Computer Systems

CODE
الخصائص:
├── مصمم لراحة المستخدم والاستجابة السريعة (user convenience)
├── مش Multi-User في الأصل (مستخدم واحد)
├── مش Multitasking في الأصل (تطور بعدين)
└── أمثلة:
    ├── Microsoft Windows (أخذت مكان MS-DOS، وتطورت لـ Windows/NT)
    ├── OS/2 (من IBM - multitasking)
    └── Apple Macintosh (تطور لـ MacOS مع Virtual Memory)
الجيل الفترة النوع الخصائص الرئيسية
1 1940s–1950s No OS مفيش OS، Punch Cards، برنامج واحد، Programmer=Operator
2 1950s–1960s Mainframe Resident Monitor، Automatic Job Sequencing، غالي ومعقد
3 1960s–1970s Batch Processing تجميع المهام، برنامج واحد، Operator يجمع
4 1960s–1970s Multiprogramming أكتر من برنامج في الذاكرة، Job Pool، CPU never idle
5 1960s–1970s Real-Time OS Hard vs Soft، مواعيد محددة، embedded systems
6 1970s–1980s Time-Sharing أكتر من مستخدم، Virtual Memory، CTSS, UNIX
7 1980s–1990s Multiprocessor Symmetric vs Asymmetric، Graceful Degradation
8 2000–present Distributed شبكة، Client-Server، Peer-to-Peer

🖥️ الجزء الثامن: أنواع أنظمة التشغيل (Types of Operating Systems) - ملخص سريع

⚙️ الجزء التاسع: وظائف نظام التشغيل (Functions of OS)

ده أهم جزء في المحاضرة! سؤال في كل امتحان:

1️⃣ Process Management (إدارة العمليات)

CODE
المسؤوليات:
├── إنشاء وحذف العمليات (Process creation and deletion)
├── تعليق واستئناف العمليات (Process suspension and resumption)
├── جدولة العمليات (Scheduling) لوقت CPU
├── التواصل والتنسيق بين العمليات المتعاونة
├── حل النزاعات بين العمليات المتنافسة
└── توفير آليات لـ:
    ├── Process Synchronization (تزامن العمليات)
    └── Process Communication (تواصل العمليات)

ملاحظة: العملية (Process) = برنامج قيد التنفيذ يحتاج موارد (CPU, Memory, Files, I/O)

2️⃣ Main-Memory Management (إدارة الذاكرة الرئيسية)

CODE
خصائص الذاكرة:
├── الذاكرة = مجموعة كبيرة من الكلمات أو البايتات (words or bytes)
├── كل بايت له عنوان ثابت (Memory Address)
├── مستودع للبيانات السريعة (shared by CPU and I/O devices)
├── ذاكرة مؤقتة (Volatile) - بتضيع لو حصل فشل في النظام
└── CPU بيسحب التعليمات من عناوين الذاكرة (instruction-fetch cycle)

المسؤوليات:
├── متابعة أي أجزاء من الذاكرة مستخدمة وبمين (Keep track)
├── قرار أي عمليات تحمل لما يكون فيه مساحة فاضية
└── تخصيص وتحرير مساحة الذاكرة (Allocate and de-allocate)

🔺 Storage Device Hierarchy (هرم التخزين) - رسم مهم!

CODE
الهرم (من فوق لتحت - من سريع لبطئ، من صغير لكبير):

Primary Storage (Volatile - مؤقت):
├── Registers (أسرع، أصغر)
├── Cache
└── Main Memory (RAM)

Secondary Storage (Nonvolatile - دائم):
├── Nonvolatile Memory
├── Hard-Disk Drives
├── Optical Disk
└── Magnetic Tapes (أبطأ، أكبر)

ملاحظة: كل ما ننزل في الهرم، السعة بتزيد (larger) والسرعة بتقل (slower)!

3️⃣ File Management (إدارة الملفات)

CODE
تعريف الملف: مجموعة من المعلومات المرتبطة معرفة بصانعها (defined by its creator)

المسؤوليات:
├── إنشاء وحذف الملفات (File creation and deletion)
├── إنشاء وحذف المجلدات (Directory creation and deletion)
├── دعم العمليات الأساسية للتعامل مع الملفات والمجلدات
├── ربط الملفات بالتخزين الثانوي (Mapping files onto secondary storage)
└── نسخ احتياطي للملفات على تخزين مستقر (Nonvolatile backup)

4️⃣ I/O System Management (إدارة نظام الإدخال/الإخراج)

CODE
أجهزة I/O المتنوعة:
├── Keyboard, Mouse, Touchpad, Stylus Pen
├── Monitor, Scanner, Printer
└── External Disk

التحدي: كل جهاز مصنوعة من مواد مختلفة، محتاجة طرق تعامل مختلفة (different handling techniques)

المسؤوليات:
├── الـ Drivers بتتعامل مع الـ Device Controllers
├── إدارة الأجهزة
└── توفير واجهات بسيطة للمستخدمين

مكونات نظام I/O:
├── Memory Management Module: للـ Buffer, Cache, Spool
├── General Device-Driver Interface
└── Drivers لأجهزة Hardware معينة

5️⃣ Secondary-Storage Management (إدارة التخزين الثانوي)

CODE
ليه محتاجين تخزين ثانوي؟
├── الذاكرة الرئيسية (Primary) مؤقتة (Volatile)
├── صغيرة ومش كافية لكل البيانات والبرامج
└── محتاجين تخزين دائم للـ Backup

التخزين الثانوي الشائع:
└── Disks (الأقراص) - الوسيط الرئيسي للبرامج والبيانات (principle on-line storage)

المسؤوليات:
├── إدارة المساحة الفارغة (Free Space Management)
├── تخصيص التخزين (Storage Allocation)
└── جدولة القرص (Disk Scheduling)

6️⃣ Networking - Distributed Systems (الشبكات - الأنظمة الموزعة)

CODE
النظام الموزع (Distributed System):
├── مجموعة من المعالجات مش بيشاركوا نفس الذاكرة أو الساعة (don't share memory or clock)
├── كل معالج له ذاكرته المحلية (local memory)
├── المعالجات متصلة بـ Communication Network
└── التواصل بيتم بـ Message Passing

المميزات:
├── الوصول لموارد مشتركة (access to shared resource)
├── تسريع الحسابات (Computation Speed-up)
├── زيادة توفر البيانات (Increased Data Availability)
└── تحسين الموثوقية (Enhanced Reliability)

7️⃣ Protection System (نظام الحماية)

CODE
الحماية (Protection):
├── آلية للتحكم في الوصول (mechanism for controlling access) بواسطة البرامج، العمليات، أو المستخدمين
├── للموارد الخاصة بالنظام والمستخدم (system and user resources)

المتطلبات:
├── التمييز بين الاستخدام المصرح به وغير المصرح به (authorized vs unauthorized)
├── تحديد الضوابط المفروضة (specify the controls)
└── توفير وسيلة للإنفاذ (Enforcement)

8️⃣ Command-Interpreter System (نظام مترجم الأوامر)

CODE
الأوامر المتعلقة بنظام التشغيل (Control Statements):
├── إنشاء وإدارة العمليات
├── التعامل مع I/O
├── إدارة التخزين الثانوي
├── إدارة الذاكرة الرئيسية
├── الوصول لنظام الملفات
├── الحماية
└── الشبكات

أسماء الـ Command-Interpreter:
├── Command-Line Interpreter
└── Shell (في UNIX/Linux)

الوظيفة: جلب وتنفيذ الأمر التالي (Get and execute the next command)

✅ خلاصة الوظائف الثمانية

  1. Process Management: إدارة العمليات
  2. Main-Memory Management: إدارة الذاكرة الرئيسية
  3. File Management: إدارة الملفات
  4. I/O System Management: إدارة الإدخال/الإخراج
  5. Secondary-Storage Management: إدارة التخزين الثانوي
  6. Networking: الشبكات والأنظمة الموزعة
  7. Protection System: نظام الحماية
  8. Command-Interpreter System: مترجم الأوامر

🎓 الخلاصة النهائية - جاهز للامتحان!

المفهوم الخلاصة
نظام التشغيل وسيط بين المستخدم والهاردوير - Intermediary
الأهداف تنفيذ البرامج، تسهيل الاستخدام، كفاءة الهاردوير
Kernel الجزء النشط، يتعامل مع الهاردوير مباشرة، شغال طول الوقت
Shell مترجم الأوامر، واجهة المستخدم
تطور OS 8 مراحل: No OS → Mainframe → Batch → Multiprogramming → Real-Time → Time-Sharing → Multiprocessor → Distributed
أنواع OS 8 أنواع: Mainframe, Batch, Multiprogramming, Real-Time, Time-Sharing, Multiprocessor, Distributed, Desktop
الوظائف 8 وظائف: Process, Memory, File, I/O, Storage, Network, Protection, Command
Storage Hierarchy Registers → Cache → RAM → Disk → Tape (من سريع لبطئ)
Scheduling Preemptive (يمكن مقاطعته) vs Non-Preemptive (لا يمكن مقاطعته)
Graceful Degradation الاستمرار في العمل رغم فشل جزء من النظام

❓ أسئلة الامتحان المتوقعة - مع الإجابات!

📚 المصادر والمراجع

  • المحاضرة الأولى - مادة نظم التشغيل CS-DS-AIT203
  • إعداد: د. عبير حسن البكلي (Dr. Abeer Hassan El Bakly)
  • الجامعة التكنولوجية الدولية بحلوان (Helwan International Technological University)
  • المراجع:
    • A. Silberschatz, P.B. Galvin, G. Gagne. "Operating System Concepts", 10th Edition, Wiley
    • S. Pal, "Operating Systems", All India Council for Technical Education, 2023

💬 شاركنا رأيك!

هل الشرح كان واضح؟ عندك سؤال محيرك؟ اكتب لنا في التعليقات! 👇

👍 لو استفدت من المحاضرة دي، شاركها مع زمايلك! العلم بينتشر بالمشاركة.

📥 تحميل ملف المحاضرة

عايز تذاكر من الملف الأصلي؟ حمله من هنا:

📄 تحميل PDF

شارك المقال لتنفع به غيرك

قد تُعجبك هذه المشاركات

إرسال تعليق

الأخوة الاحبة ، قراء مدونتنا الكرام ، عند التعليق علي اي مشاركة من مشاركات صفحتنا نرجو ان تأخذو بعين الاعتبار القواعد التالية :
1. يجب ان يحترم كل شخص تعليقات واراء الشخص الاخر.
2. يجب الابتعاد عن اي استخدام لصور مخلة او مسيئة للشكل العام.

ليست هناك تعليقات

1939067757258576657

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

قائمة العلامات المرجعية فارغة ... قم بإضافة مقالاتك الآن

    البحث