المحاضرة 05 · طبقة التشغيل

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

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

23 شريحة 1/6/2026 الفصل 7 Dr. Eng. Mohssen Abboud
01 · الصورة الكبرى

من مشاركة المورد إلى طبقة التشغيل الشرائح 1–4

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

دور Middleware

تستعملها التطبيقات بصفتها عملاء والخدمات بصفتها مديري موارد، وتتيح الاتصال البعيد بين كائنات أو عمليات العقد. ومن أشكال الاستدعاء المذكورة RPC وJava RMI وغيرها.

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

يقع تحت Middleware، يستولي على الموارد الفيزيائية لعقدة واحدة ويديرها، ثم يعرض تجريدات عبر system calls: ملفًا بدل كتل القرص مثلًا.

أمثلة أنظمة التشغيل الواردة: UNIX وتفرعاته مثل Linux وMac OS X، وWindows وتفرعاته المذكورة Windows 10 وWindows 11. وخلال تطور الأنظمة الموزعة ظهر مفهوما network operating system وdistributed operating system.

بيانات المصدر المحاضرة مأخوذة من الفصل 7 من كتاب Distributed Systems: Concepts and Design للمؤلفين G. Coulouris وJ. Dollimore وT. Kindberg وG. Blair، منشورات Addison Wesley/Pearson Education. موضوعاتها: المقدمة؛ طبقة نظام التشغيل؛ العمليات والخيوط؛ معمارية نظام التشغيل.
02 · نمطا التشغيل

نظام تشغيل موزع أم شبكي؟ الشرائح 5–7

المقارنة الكاملة
الجانبDistributed OSNetwork OS
صورة النظامصورة نظام واحدة؛ لا ينشغل المستخدم بمكان البرنامج أو المورد.آلات مستقلة لها أنظمتها، مع قدرة شبكية للوصول إلى موارد بعيدة.
التحكمنظام التشغيل يتحكم في جميع عقد النظام.تحافظ كل آلة والمستخدم على قدر من الاستقلال.
إنشاء العملياتيوضع البرنامج الجديد بشفافية في العقدة الأنسب لسياسات الجدولة.لا يفترض مجدولًا عالميًا يخفي كل مواقع العقد.
الانتشاردُرست أنظمة كثيرة، لكن لا يوجد منها ما هو عام/واسع الاستخدام وفق الشرائح؛ أمثلتها المذكورة HarmonyOS وBlueOS وMINIX.واسع الاستخدام؛ Unix وWindows هما المثالان المذكوران.
المقايضةشفافية عالية، لكن تبنّيه قد يصطدم بتوافق التطبيقات وباستقلال المستخدم.يحافظ على البرامج الموجودة واستقلال الآلة، وتضيف Middleware شفافية الخدمات.

لماذا انتشر Network OS أكثر؟

  1. لدى المستخدمين استثمار كبير في برمجياتهم؛ لن يتبنوا نظامًا جديدًا لا يشغّل تطبيقاتهم.
  2. يفضل المستخدمون درجة من الاستقلال لآلاتهم حتى داخل المؤسسة.
  3. هذه أسباب تقنية وغير تقنية معًا، كما تصف المحاضرة.
التوازن العملي يتيح Network OS تشغيل معالج النصوص والتطبيقات المستقلة المفضلة، بينما تتيح Middleware خدمات النظام الموزع. الجمع بينهما يوازن بين الاستقلال وشفافية الوصول إلى الموارد عبر الشبكة.
03 · طبقات النظام

كيف تتعاون عقدتان؟ الشرائح 8–10

تدعم طبقة نظام التشغيل في كل عقدة Middleware مشتركة، فتقدم بنية موزعة للتطبيقات والخدمات. النوى والعمليات الخادمة هي التي تدير الموارد وتعرض واجهة للعملاء.

إعادة بناء الشكل 1

System layers
Applications & Services
التطبيقات والخدمات
Middleware مشتركة عبر العقد
الاستدعاء والاتصال البعيد
OS1
Processes · Threads · Communication
نواة + مكتبات + خوادم
OS2
Processes · Threads · Communication
نواة + مكتبات + خوادم
Computer & Network Hardware
العقدة 1
Computer & Network Hardware
العقدة 2
المنصة Platform في الرسم هي العتاد مع نظام التشغيل الخاص بالعقدة. وقد يختلف OS1 عن OS2، بينما تمتد Middleware منطقيًا فوقهما.

Encapsulation

تقديم واجهة خدمة مفيدة للمورد بدل كشف تفاصيله الفيزيائية.

Protection

حماية الموارد من الوصول غير المشروع.

Concurrent processing

إدارة مشاركة العملاء للمورد والوصول المتزامن إليه.

كيف يصل العميل إلى المورد؟ يذكر المصدر أن العميل يجري RMI على كائن خادم. آلية الاستدعاء هي بوابة الوصول إلى المورد المغلف؛ فهي لا تلغي الحماية بل تمر عبر الواجهة التي تفرضها.
04 · وظائف OS الأساسية

من يدير ماذا؟ الشرائح 11–12

المكونالمسؤولية المذكورة
Process managerإنشاء العمليات وتنفيذ العمليات/الإجراءات عليها.
Thread managerإنشاء الخيوط ومزامنتها وجدولتها.
Memory managerإدارة الذاكرة الفيزيائية والافتراضية.
Communication managerالاتصال بين الخيوط.
Supervisorتوزيع المقاطعات ونداءات النظام والاستثناءات الأخرى.

ترابط الوظائف كما في الشكل 2

Core OS functionality
Process manager
Communication manager
يتعامل مع الاتصال بين الخيوط
Thread manager
Memory manager
Supervisor · interrupts · system calls · exceptions
يقع Supervisor في قاعدة الرسم، وفوقه مديرا الخيوط والذاكرة، ويتداخل مدير الاتصال معهما، ويمتد مدير العمليات أعلى المجموعة. هذا ترابط وظائف، لا خمس طبقات مستقلة تمامًا.
05 · العمليات

العملية = بيئة تنفيذ + خيوط الشرائح 13–14

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

Process = Execution Environment + one or more Threads الخيط هو تجريد النشاط؛ وبيئة التنفيذ هي وحدة إدارة الموارد.

Address space

فضاء العناوين الذي تشترك فيه خيوط العملية.

موارد المزامنة والاتصال

مثل semaphores وsockets.

موارد أعلى مستوى

مثل الملفات والنوافذ المفتوحة.

بيئة التنفيذ هي مجموعة موارد محلية تديرها النواة وتستطيع خيوطها الوصول إليها. إنشاء هذه البيئة وإدارتها مكلفان عادة، لكن عدة خيوط تستطيع مشاركتها، وهذه هي نقطة الكفاءة.

06 · الخيوط

لماذا نعدد الخيوط؟ الشرائح 15–18

الخيوط أنشطة قابلة للجدولة ومرتبطة بالعمليات. وجود عدة خيوط يحقق ثلاثة أهداف:

تزامن أكبر

تعظيم درجة التنفيذ المتزامن بين العمليات/الطلبات.

تداخل الحساب وI/O

حين ينتظر خيط إدخالًا أو إخراجًا يستمر خيط آخر بالحساب.

معالجات متعددة

تمكين معالجة متزامنة فعلية على multiprocessors.

داخل الخادم

المعالجة المتزامنة لطلبات العملاء تقلل ميل الخادم لأن يصبح عنق زجاجة. قد يعالج خيط طلب عميل بينما ينتظر خيط آخر، يخدم طلبًا ثانيًا، اكتمال الوصول إلى القرص.

داخل العميل

في الشكل 3 يولد Thread 1 النتائج، بينما يرسل Thread 2 النتائج باستدعاءات طرق بعيدة ويتوقف منتظرًا؛ في الوقت نفسه يستطيع Thread 1 متابعة حساب نتائج جديدة.

عميل وخادم بخيوط متعددة

ClientThread 1 يولد النتائج
Thread 2 يرسل ويُحجب
Receipt & Queueثم التوزيع على N threads
وبعضها ينتظر I/O
الطلبات تصل إلى الاستقبال والصف، ثم تتوزع على خيوط الخادم. انتظار أحد الخيوط للقرص لا يمنع الآخرين من العمل.
07 · تصميم الخادم

معماريات تخصيص الخيوط الشريحة 16

المعماريةوحدة تخصيص الخيطمتى تناسب؟
Thread-per-requestخيط لطلب واحد.طلبات قصيرة مستقلة، مع ضبط كلفة الإنشاء أو استخدام تجمع خيوط.
Thread-per-connectionخيط لاتصال العميل.اتصال طويل يقدم عدة طلبات متتابعة.
Thread-per-remote-objectخيط لكائن بعيد؛ وردت في الشريحة بصياغة Thread-per-object remote.ربط نشاط التنفيذ بكائن الخدمة.

سؤال تطبيقي: خادم ينتظر القرص كثيرًا

لماذا يحسن تعدد الخيوط الإنتاجية إذا كانت بعض الطلبات تتوقف عند القرص؟

لأن الخيط المنتظر يصبح blocked وحده، بينما يستطيع المجدول تشغيل خيط آخر يعالج طلبًا آخر. إذا كانت العلاقة طويلة مع العميل فـthread-per-connection أقرب، وإذا كانت الطلبات قصيرة مستقلة فـthread-per-request أنسب غالبًا.

08 · المقارنة

Process أم Thread؟ الشريحة 19

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

اختر Thread

لمهمتين تحتاجان مشاركة ذاكرة كثيفة وسريعة، مع إضافة مزامنة صحيحة لأن العزل ضعيف.

اختر Process

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

لا توجد مسألة رقمية في الشرائح الأسئلة هنا مفاهيمية: وازن كلفة الإنشاء والتبديل وسهولة المشاركة مقابل العزل والحماية، ثم راقب ما إذا كان الانتظار يمكن تداخله مع عمل آخر.
09 · معمارية OS

Monolithic kernel مقابل Microkernel الشرائح 20–23

في الصورة المثالية توفر النواة الآليات الأساسية فقط، وتحمّل وحدات خادمة ديناميكيًا عند الحاجة لتنفيذ سياسات إدارة الموارد التي تتطلبها التطبيقات العاملة. معيار الاختلاف الرئيس: ما الوظائف التي تبقى داخل النواة، وما الذي يترك لعمليات خادمة قابلة للتحميل فوقها؟

نقل الخدمات عبر حد النواة

الشكل 4

Monolithic Kernel

S4 · خادم محمل ديناميكيًا
Kernel code & data
S1 · S2 · S3 داخل فضاء النواة
Hardware

Microkernel

S1 · S2 · S3 · S4
خوادم محملة ديناميكيًا
Microkernel
Address spaces · Threads · Local IPC
Hardware
في مفتاح الرسم الأصلي: الدائرة Server، واللون الفاتح كود وبيانات النواة، واللون البني برنامج خادم محمل ديناميكيًا.
الجانبMonolithic kernelMicrokernel
موضع الوظائفقدر كبير داخل فضاء عنوان النواة.نواة صغيرة بين العتاد وطبقة مكونات النظام الكبرى.
الخوادمقد تتضمن خوادم ملفات وبعض الشبكات؛ كودها جزء من إعداد النواة القياسي.كل الخدمات غير الأساسية تقدمها خوادم تحمل ديناميكيًا في الحواسيب التي تحتاجها.
ما تقدمه النواةكود وبيانات ووظائف نظام كثيرة.التجريدات الأساسية: فضاءات العناوين، الخيوط، والاتصال المحلي بين العمليات.
الفصلالوظائف مرتبطة أكثر بإعداد النواة.يفصل الآليات الأساسية عن سياسات الخدمات المحملة حسب الحاجة.
الأداء مقابل قابلية النقل إذا كان الأداء هو الهدف بدل portability، فقد تستخدم Middleware مرافق Microkernel مباشرة، فتتجنب طبقات عامة إضافية على حساب ارتباط أقوى بواجهات تلك النواة.
10 · التغطية الكاملة

خريطة الشرائح 1–23 الشرائح 1–23

ملخص موضعي لكل شريحة، بما في ذلك الأشكال الأربعة ومفاتيحها.

1 · العنوان والمصدر

Operating System Support، التاريخ، الفصل 7، الكتاب والمؤلفون والناشر والمدرس.

2 · الموضوعات

المقدمة، طبقة OS، العمليات والخيوط، معمارية OS.

3 · مشاركة الموارد وMiddleware

موارد في عقدة/عملية أخرى، العملاء ومديرو الموارد، الاتصال البعيد، RPC وJava RMI وغيرها.

4 · طبقة OS

UNIX/Linux/Mac OS X وWindows 10/11، الملفات بدل كتل القرص، system calls، ومفهوما Network OS وDistributed OS.

5 · Distributed OS

إخفاء المواقع، صورة واحدة، تحكم بكل العقد، جدولة شفافة، عدم الانتشار العام، وأمثلة HarmonyOS وBlueOS وMINIX.

6 · Network OS

قدرة شبكية، الانتشار، استثمار التطبيقات، استقلال الآلة، وUnix وWindows.

7 · التوازن العملي

Middleware + Network OS، التطبيقات المستقلة المفضلة، وخدمات النظام الموزع.

8 · دعم Middleware

OS في كل عقدة يدعم طبقة مشتركة؛ النوى والخوادم تدير الموارد وتقدم واجهات.

9 · الشكل 1: الطبقات

التطبيقات والخدمات، Middleware، OS1/OS2، العمليات والخيوط والاتصال، العتاد، وتعريف OS والمنصة.

10 · وظائف OS الثلاث

التغليف والحماية والمعالجة المتزامنة، RMI إلى كائن خادم، والاستدعاء للوصول إلى المورد المغلف.

11 · المدراء

Process وThread وMemory وCommunication وSupervisor مع مسؤولية كل واحد.

12 · الشكل 2

Supervisor في الأسفل، Thread/Memory، Communication في الوسط، وProcess manager في الأعلى.

13 · تعريف العملية والخيط

قصور النشاط الواحد، كلفة المشاركة، العملية متعددة الخيوط، وبيئة التنفيذ كوحدة إدارة موارد.

14 · محتويات بيئة التنفيذ

فضاء العناوين، semaphores/sockets، الملفات والنوافذ المفتوحة، وارتفاع كلفة البيئة وإمكان مشاركتها.

15 · أهداف الخيوط

أنشطة قابلة للجدولة، تعظيم التزامن، تداخل الحساب وI/O، والعمل على multiprocessors.

16 · خيوط الخادم

منع عنق الزجاجة، مثال انتظار القرص، وthread-per-request/connection/remote-object.

17 · خيوط العميل

Thread 1 يولد النتائج وThread 2 يجري RMI ويتوقف، مع استمرار الأول في الحساب.

18 · الشكل 3

عميل بخيطين، الطلبات، Receipt & queuing، خادم N threads، والإدخال/الإخراج.

19 · Processes vs Threads

كلفة الإنشاء والتبديل، سهولة مشاركة البيانات والموارد، وعدم حماية الخيوط من بعضها.

20 · سؤال حد النواة

نواة بآليات أساسية، خوادم ديناميكية لسياسات التطبيقات، والمعماريتان الرئيسيتان.

21 · Monolithic kernel

خوادم داخل فضاء النواة، ومنها الملفات وبعض الشبكات، والكود في الإعداد القياسي.

22 · الشكل 4 ومفتاحه

Server كدائرة، Kernel code/data بلون فاتح، والبرنامج المحمل ديناميكيًا بلون بني، مع المقارنة البصرية.

23 · Microkernel

طبقة بين العتاد والمكونات، فضاءات العناوين والخيوط وIPC المحلي، خدمات ديناميكية في العقد المطلوبة، ووصول Middleware المباشر عند تفضيل الأداء.