ALL Operatin System
ALL Operatin System
Operating Systems
Lecture # 1
Department of Computer
4th Class
By
المقدمة Introduction
يتكون نظام الحاسب اآللي من معالج أو عدة معالجات باإلضافة إلي الذاكرة الرئيسية واألقراص والطابعات ولوحة المفاتيح
وجهاز العرض ومحوالت الشبكة والتي تسمي مجتمعه بالمكونات المادية , Hardwareوتشكل هذه المكونات مجتمعه نظاما ً
معقدا ً في التعامل ,مما أستوجب كتابة برامج تتحكم في أدارة جميع هذه المكونات وتستخدمها استخداما صحيحا ً ,وتسمي هذه
البرامج ببرامج النظام والتي من أهم وظائفها أدارة جميع هذه األجهزة ( المكونات المادية ) باإلضافة إلي تقديم واجهة بسيطة
للمستخدم لكي يتمكن من التعامل مع المكونات المادية.
ونظام التشغيل : Operating Systemهو مجموعة من البرمجيات المسؤولة عن إدارة الموارد( عتاد الحاسوب
،Hardwareوبرمجيات الحاسوب ،) Softwareويمثل وسيط بين المستخدم ،وعتاد الحاسوب ،وبتعريف آخر يمثل نظام
التشغيل جسر لتشغيل برامج المستخدم ،ويقوم بالمهام األساسية مثل :إدارة وتخصيص موارد الحاسوب ) الذاكرة ،القرص
الصلب ،الوصول لألجهزة الملحقة إلخ ،)...وترتيب أولوية التعامل مع األوامر ،والتحكم في أجهزة اإلدخال ،واإلخراج مثل :لوحة
المفاتيح ،وكذلك لتسهيل التعامل مع الشبكات ،وإدارة الملفات
يأتي هذا النوع من أنظمة التشغيل في المرتبة الثانية والتي تعمل على المخدمات وهي عادة ما تتكون من أجهزة شخصية كبيرة
جدا أو محطات عمل أو أجهزة كبيرة Main frameكما أنها تخدم عدة مستخدمين في نفس الوقت على الشبكة وتسمح للمستخدمين
بالمشاركة في الموارد المادية والبرمجية .باإلضافة إلى أنها تقدم خدمات طباعة الملفات وخدمات الويب ،كما أن مواقع الويب
تستخدم المخدمات لتخزين صفحات الويب.
من الطرق الشائعة للحصول على طاقة حسابيه كبيرة توصيل عده معالجات CPUفي نظام واحد وتسمي هذه األنظمة أما
بالحواسيب المتوازية Parallel Computersأو الحواسيب المتعددة Multi Computersأو المعالجات المتعددة Multi-
Processorوذلك حسب طريقة أتصال المعالجات مع بعضها البعض والموارد المشتركة بينها .وتحتاج هذه األنظمة إلى
أنظمة تشغيل خاصة لكنها في العادة تكون أنظمة تشغيل مخدمات معدله لها مزاّيا خاصة لتحقيق االتصال بين المعالجات.
تنحصر مهمتها في تقديم واجهة جيده للمستخدم .كما تستخدم هذه األنظمة بشكل واسع لمعالجة النصوص والجداول الممتدة
والوصول لألنترنت ومن األمثلة الشهيرة لهذا النوع هو نظام Linux & Windows
تعمل مع حواسيب تتحكم بأجهزة ال تصنف بشكل عام علي أنها حواسيب مثل أجهزة التلفاز ،أفران الميكروويف والهواتف النقالة
.كما أنها تمتاز في غالب األحيان بنفس مزايا أنظمة الزمن الحقيقي لكنها لها قيود أخري بالنسبة للحجم ومتطلبات الذاكرة والقوة
الحسابية مما يجعلها مميزة
يمتاز هذا النوع بأنه يعتمد على الزمن كوسيط أساسي) أنظمة التحكم بالعمليات الصناعية ( ,تقوم حواسيب الزمن الحقيقي بجمع
جميع البيانات عن عمليه اإلنتاج ثم بعد ذلك تستخدمها للتحكم في أآلت المصنع.
توفر الذاكرة الرئيسية تخزينًا سري ًعا يمكن الوصول إليه مباشرة بواسطة وحدة المعالجة المركزية .لذلك لكي يتم تنفيذ البرنامج،
يجب أن يكون في الذاكرة الرئيسية.
-1يحتفظ بمسارات الذاكرة األساسية ( )Keeps tracks of primary memoryأي جزء منها يستخدمه وما الجزء غير
المستخدم.
-2في البرمجة المتعددة ( )multiprogrammingيقرر نظام التشغيل العملية التي ستحصل على الذاكرة و متى و كم .
-4يلغي تخصيص الذاكرة ( )De-allocates the memoryعندما ال تعود العملية بحاجة إليها أو عندما يتم إنهاؤها
في بيئة البرمجة المتعددة ،يقرر نظام التشغيل العملية التي يحصل عليها المعالج ومتى وكم من الوقت .تسمى هذه الوظيفة جدولة
العملية .يقوم نظام التشغيل باألنشطة التالية إلدارة المعالج:
-1يحتفظ بمسارات المعالج وحالة العملية ( ) Keeps tracks of processor and status of processيُعرف البرنامج
المسؤول عن هذه المهمة باسم مراقب حركة المرور.
-2يخصص المعالج وحدة المعالجة المركزية ( )CPUلعملية ما ( ) Allocates the processor (CPU) to a process
يقوم نظام التشغيل بإدارة اتصال الجهاز عبر برامج التشغيل الخاصة بهم .يقوم نظام التشغيل باألنشطة التالية إلدارة الجهاز:
-1يحتفظ بتتبع جميع األجهزة ( )Keeps tracks of all devicesيُعرف البرنامج المسؤول عن هذه المهمة باسم وحدة التحكم
.l / 0
-2يقرر أي عملية يحصل عليها الجهاز ومتى وكم من الوقت ( ) which process gets the device
-3يخصص الجهاز بطريقة فعالة ( ) Allocates the device in the efficient way
عادة ما يتم تنظيم نظام الملفات في دالئل لتسهيل التنقل واالستخدام .قد تحتوي هذه األدلة على ملفات وتوجيهات أخرى .يقوم
نظام التشغيل باألنشطة التالية إلدارة الملفات:
-1يتتبع المعلومات والموقع واالستخدامات والحالة وما إلى ذلك ( Keeps track of information, location, uses,
) status etcغالبًا ما تُعرف المرافقات الجماعية باسم نظام الملفات.
.1األمان : Securityعن طريق كلمة المرور وتقنيات أخرى مماثلة ،تمنع الوصول غير المصرح به إلى البرامج
والبيانات.
.2التحكم في أداء النظام :Control over system performanceتسجيل التأخيرات بين طلب الخدمة واالستجابة
من النظام.
.3حساب المهمة : Job accountingتتبع الوقت والموارد المستخدمة من قبل مختلف الوظائف والمستخدمين.
.4أدوات الكشف عن األخطاء : Error detecting aidsإنتاج عمليات تفريغ وتتبع ورسائل الخطأ وغيرها من أدوات
تصحيح األخطاء واكتشاف األخطاء.
.5التنسيق بين البرامج والمستخدمين اآلخرين : Coordination between other software and usersالتنسيق
وتخصيص المجمعين Accumulatorوالمترجمين الفوريين Interpretersوالبرامج األخرى لمختلف مستخدمي
أنظمة الكمبيوتر.
Operating Systems
Lecture # 2
Department of Computer
4th Class
By
نظام الكمبيوتر هو في األساس آلة تبسط المهام المعقدة .يجب أن يزيد األداء إلى أقصى حد ويقلل من التكاليف باإلضافة إلى
استهالك الطاقة .المكونات المختلفة في بنية نظام الكمبيوتر هي وحدة اإلدخال ووحدة اإلخراج ووحدة التخزين ووحدة المنطق
الحسابي ووحدة التحكم وما إلى ذلك.
الرسم البياني الذي يوضح تدفق البيانات بين هذه الوحدات هو كما يلي :
تنتقل بيانات اإلدخال من وحدة اإلدخال إلى ALU.وبالمثل تنتقل البيانات المحسوبة من ALUإلى وحدة اإلخراج .تنتقل البيانات
باستمرار من وحدة التخزين إلى ALUوتعود مرة أخرى .وذلك ألن البيانات المخزنة يتم حسابها قبل تخزينها مرة أخرى.
تتحكم وحدة التحكم في جميع الوحدات األخرى باإلضافة إلى بياناتها.
توفر وحدة اإلدخال البيانات لنظام الكمبيوتر من الخارج .لذلك فهو يربط بشكل أساسي البيئة الخارجية بالكمبيوتر .يأخذ البيانات
من أجهزة اإلدخال ويحولها إلى لغة اآللة ثم يقوم بتحميلها في نظام الكمبيوتر وتعتبر لوحة المفاتيح والماوس وما إلى ذلك هي
أجهزة اإلدخال األكثر استخدا ًما.
توفر وحدة اإلخراج نتائج عمليات الكمبيوتر للمستخدمين أي أنها تربط الكمبيوتر بالبيئة الخارجية .معظم بيانات اإلخراج هي
شكل صوت أو فيديو .أجهزة اإلخراج المختلفة هي الشاشات والطابعات ومكبرات الصوت وسماعات الرأس وما إلى ذلك.
تحتوي وحدة التخزين على العديد من مكونات الكمبيوتر التي تُستخدم لتخزين البيانات .يتم تقسيمها تقليديًا إلى تخزين أساسي
وتخزين ثانوي .يُعرف التخزين األساسي أيضًا باسم الذاكرة الرئيسية وهي الذاكرة التي يمكن الوصول إليها مباشرة بواسطة
وحدة المعالجة المركزية .ال يمكن الوصول إلى وحدة التخزين الثانوية أو الخارجية مباشرة بواسطة وحدة المعالجة المركزية.
يجب إحضار البيانات من التخزين الثانوي إلى وحدة التخزين األساسية قبل أن تتمكن وحدة المعالجة المركزية من استخدامها.
يحتوي التخزين الثانوي على كمية كبيرة من البيانات بشكل دائم.
يتم تنفيذ جميع العمليات الحسابية المتعلقة بنظام الكمبيوتر بواسطة وحدة المنطق الحسابي .يمكنه إجراء عمليات مثل الجمع
والطرح والضرب والقسمة وما إلى ذلك .تنقل وحدة التحكم البيانات من وحدة التخزين إلى وحدة المنطق الحسابي عند الحاجة
إلى إجراء العمليات الحسابية .تشكل وحدة المنطق الحسابي ووحدة التحكم معًا وحدة المعالجة المركزية.
تتحكم هذه الوحدة في جميع الوحدات األخرى لنظام الكمبيوتر ومن ثم تُعرف باسم الجهاز العصبي المركزي .ينقل البيانات عبر
الكمبيوتر كما هو مطلوب بما في ذلك من وحدة التخزين إلى وحدة المعالجة المركزية والعكس صحيح .تحدد وحدة التحكم أيضًا
كيفية تصرف الذاكرة وأجهزة اإلدخال واإلخراج ووحدة المنطق الحسابي وما إلى ذلك.
سجل عدد الكلمات Word count registerيحتوي على عدد الكلمات المراد نقلها. •
سجل التحكم Control registerيحدد وضع النقل. •
تظهر كافة السجالت في DMAإلى وحدة المعالجة المركزية كسجالت واجهة اإلدخال /اإلخراج .لذلك يمكن لوحدة المعالجة
المركزية القراءة والكتابة في سجالت DMAتحت تحكم البرنامج عبر ناقل البيانات.
توضيح Explanation
تقوم وحدة المعالجة المركزية ) (CPUبتهيئة DMAعن طريق إرسال المعلومات المعطاة عبر ناقل البيانات.
•عنوان بداية كتلة الذاكرة حيث تكون البيانات متاحة (للقراءة) أو مكان تخزين البيانات (للكتابة).
•يرسل أيضًا عدد الكلمات وهو عدد الكلمات في الذاكرة المراد قراءتها أو كتابتها.
•التحكم في تحديد طريقة النقل مثل القراءة أو الكتابة.
•عنصر تحكم لبدء نقلDMA.
بمعنى اخر انه يتم استخدام جزء محدد من الذاكرة إلرسال البيانات مباشرة من جهاز طرفي إلى اللوحة األم دون إشراك
المعالج الدقيق ،بحيث ال تتداخل العملية مع التشغيل الكلي للكمبيوتر .وفي أجهزة الكمبيوتر القديمة ،تم ترقيم أربع قنوات
0,1,2,3الى DMAعندما تم تقديم ) 16-bit industry standard architecture (ISAتمت إضافة القنوات
5و 6و .7وكان ISAعبارة عن معيار ناقل كمبيوتر ألجهزة الكمبيوتر المتوافقة مع ، IBMمما يسمح للجهاز ببدء
المعامالت (ناقل رئيسي) بسرعة أكبر .وتحتوي وحدة تحكم ISA DMAعلى 8قنوات ، DMAكل واحدة منها مرتبطة
بعنوان 16بت.
بعدها تم استبدال ISAبمنفذ رسومات ) accelerated graphics port (AGPوبطاقات peripheral
) component interconnect (PCIوهي أسرع بكثير .وينقل كل DMAحوالي 2ميغابايت من البيانات في
الثانية وتُستخدم أدوات موارد نظام الكمبيوتر لالتصال بين األجهزة والبرامج .األنواع األربعة لموارد النظام هي:
عناوينI / O. •
عناوين الذاكرة. •
أرقام طلب المقاطعة(IRQ). •
قنوات الوصول المباشر للذاكرة(DMA). •
تُستخدم قنوات DMAلتوصيل البيانات بين الجهاز المحيطي وذاكرة النظام .تعتمد جميع موارد النظام األربعة على خطوط
معينة في الحافلة .ت ُستخدم بعض الخطوط على الناقل لـ ، IRQsوبعضها للعناوين (عناوين اإلدخال /اإلخراج وعنوان
الذاكرة) وبعضها لقنواتDMA.
تم ّكن قناة DMAالجهاز من نقل البيانات دون تعريض وحدة المعالجة المركزية لحمل عمل زائد .بدون قنوات ، DMA
تنسخ وحدة المعالجة المركزية كل جزء من البيانات باستخدام ناقل طرفي من جهاز اإلدخال /اإلخراج .يشغل استخدام ناقل
طرفي وحدة المعالجة المركزية أثناء عملية القراءة /الكتابة وال يسمح بتنفيذ أي أعمال أخرى حتى تكتمل العملية.
باستخدام ، DMAيمكن لوحدة المعالجة المركزية معالجة المهام األخرى أثناء إجراء نقل البيانات .يبدأ نقل البيانات أوالً
بواسطة وحدة المعالجة المركزية ويمكن نقل كتلة البيانات من وإلى الذاكرة بواسطة DMACبثالث طرق:
: Burst modeال يتم تحرير ناقل النظام إال بعد اكتمال نقل البيانات. -
: Cycle stealingأثناء نقل البيانات بين قناة DMAوجهاز اإلدخال /اإلخراج ،يتم التخلي عن ناقل النظام -
لبضع دورات على مدار الساعة حتى تتمكن وحدة المعالجة المركزية من أداء مهام أخرى .عند اكتمال نقل البيانات
،تتلقى وحدة المعالجة المركزية طلب مقاطعة من وحدة تحكم DMA.
: Transparent modeيمكن لـ DMACتولي مسؤولية ناقل النظام فقط عندما ال يطلبه المعالج. -
يوجد وضعان للتشغيل في نظام التشغيل للتأكد من أنه يعمل بشكل صحيح .هذه هي وضع المستخدم User modeوضع النواة
. Kernel mode
يكون النظام في وضع المستخدم عندما يقوم نظام التشغيل بتشغيل تطبيق مستخدم مثل التعامل مع محرر نصوص .يحدث االنتقال
من وضع المستخدم إلى وضع kernelعندما يطلب التطبيق مساعدة نظام التشغيل أو تحدث مقاطعة أو مكالمة نظام ويتم ضبط
بت الوضع على 1في وضع المستخدم ويتم تغييره من 1إلى 0عند التبديل من وضع المستخدم إلى وضعkernel.
يبدأ النظام في وضع kernelعند بدء التشغيل وبعد تحميل نظام التشغيل يقوم بتنفيذ التطبيقات في وضع المستخدم .هناك بعض
التعليمات المميزة التي ال يمكن تنفيذها إال في وضع kernel.مثل تعليمات المقاطعة ،وإدارة المدخالت والمخرجات وما إلى
ذلك وإذا تم تنفيذ التعليمات ذات التعليمات في وضع المستخدم User modeفهذا غير قانوني .
يتم تعيين بت الوضع على 0في وضع kernel.يتم تغييره من 0إلى 1عند التبديل من وضع kernelإلى وضع المستخدم
والصورة ادناه توضح االنتقال من وضع المستخدم إلى وضع kernelوالعودة مرة أخرى .
يتم تنفيذ عملية المستخدم في وضع المستخدم حتى يتلقى استدعاء نظام System call.ثم يتم إنشاء اعتراض النظام وتعيين بت
األسلوب على الصفر .يتم تنفيذ استدعاء النظام في وضع kernel.بعد اكتمال التنفيذ ،يتم إنشاء اعتراض النظام مرة أخرى
وتعيين بت الوضع إلى .1يعود التحكم في النظام إلى وضع kernelويستمر تنفيذ العملية.
هناك ضرورة كبير للوضع المزدوج (وضع المستخدم ووضع النواة) في نظام التشغيل ويمكن أن يتسبب عدم وجود وضع
مزدوج ،أي وضع المستخدم Userووضع kernelفي نظام التشغيل ،في حدوث مشكالت خطيرة حيث يمكن لبرنامج مستخدم
قيد التشغيل محو نظام التشغيل بطريق الخطأ عن طريق الكتابة فوقه ببيانات المستخدم.
Operating Systems
Lecture # 3
Department of Computer
4th Class
By
استدعاء النظام هو وسيلة لبرنامج مستخدم للتفاعل مع نظام التشغيل .يطلب البرنامج العديد من الخدمات ويستجيب نظام التشغيل
من خالل استدعاء سلسلة من استدعاءات النظام لتلبية الطلب ويمكن كتابة استدعاء النظام بلغة التجميع أو لغة عالية المستوى
مثل Cأو Pascal.استدعاءات النظام هي وظائف محددة مسبقًا قد يستدعيها نظام التشغيل مباشرةً إذا تم استخدام لغة عالية
المستوى.
استدعاء النظام هو طريقة لبرنامج الكمبيوتر لطلب خدمة من نواة نظام التشغيل Kernelالتي تعمل عليها استدعاء النظام هو
طريقة للتفاعل مع نظام التشغيل عبر البرامج .بمعنى ان استدعاء النظام هو طلب من برنامج الكمبيوتر إلى نواة نظام التشغيل.
تعمل واجهة برمجة التطبيقات ) Application Program Interface (APIعلى توصيل وظائف نظام التشغيل ببرامج
المستخدم ويعمل كحلقة وصل بين نظام التشغيل والعملية مما يسمح للبرامج على مستوى المستخدم بطلب خدمات نظام التشغيل
وال يمكن الوصول إلى نظام kernelإال باستخدام استدعاءات النظام واستدعاءات النظام مطلوبة ألية برامج تستخدم الموارد.
كيف يتم إجراء استدعاءات النظام How are system calls made
عندما يحتاج برنامج الكمبيوتر إلى الوصول إلى نواة نظام التشغيل فإنه يقوم بإجراء استدعاء للنظام ويستخدم استدعاء النظام
APIلعرض خدمات نظام التشغيل لبرامج المستخدم وهي الطريقة الوحيدة للوصول إلى نظام النواة ويجب أن تستخدم جميع
البرامج أو العمليات التي تتطلب موارد للتنفيذ استدعاءات النظام ألنها تعمل كواجهة بين نظام التشغيل وبرامج المستخدم.
فيما يلي بعض األمثلة على كيفية اختالف استدعاء النظام من وظيفة المستخدم system call varies from a user function
.1قد تقوم وظيفة استدعاء النظام بإنشاء واستخدام عمليات kernelلتنفيذ المعالجة غير المتزامنة.
.2استدعاء النظام له سلطة أكبر من روتين فرعي قياسي .يتم تنفيذ استدعاء نظام بامتياز وضع kernelفي مجال حماية
kernel.
.3ال يُسمح الستدعاءات النظام باستخدام المكتبات المشتركة أو أي برامج غير موجودة في مجال حمايةkernel.
.4يتم تخزين برامج وبيانات استدعاءات النظام في ذاكرة kernel
لماذا تحتاج إلى استدعاءات النظام في نظام التشغيل ?Why do you need system calls in Operating System
تعمل التطبيقات في منطقة من الذاكرة تُعرف باسم مساحة المستخدم User Spaceيتصل استدعاء النظام بنواة نظام التشغيل
والتي يتم تنفيذها في مساحة kernelعندما يقوم أحد التطبيقات بإنشاء استدعاء نظام فيجب أوالً الحصول على إذن من ال
kernelويحقق ذلك باستخدام طلب مقاطعة والذي يوقف العملية الحالية مؤقتًا وينقل التحكم إلى الkernel.
قد يستغرق استدعاء النظام البسيطة بضع من النانو ثانية لتقديم النتيجة مثل استرداد تاريخ النظام ووقته وقد تستغرق مكالمة النظام
ثوان وتطلق معظم أنظمة التشغيل مؤشر ترابط kernelمميز لكل استدعاء للنظام
ٍ األكثر تعقيدًا مثل االتصال بجهاز الشبكة بضع
لتجنب االختناقات .أنظمة التشغيل الحديثة متعددة الخيوط مما يعني أنها تستطيع التعامل مع مكالمات النظام المختلفة في نفس
الوقت.
.1التحكم في العمليات :Process Controlالتحكم في العملية هو استدعاء النظام المستخدم لتوجيه العمليات .تتضمن
بعض أمثلة التحكم في العملية اإلنشاء ،التحميل ،اإلحباط ،اإلنهاء ،التنفيذ ،المعالجة ،إنهاء العملية ،إلخ.
.2إدارة الملفات : File Managementإدارة الملفات هي استدعاء نظام يتم استخدامه للتعامل مع الملفات .تتضمن
بعض أمثلة إدارة الملفات إنشاء الملفات وحذفها وفتحها وإغالقها وقراءتها وكتابتها وما إلى ذلك.
.3إدارة الجهاز : Device Managementإدارة الجهاز هي مكالمة نظام تُستخدم للتعامل مع األجهزة .تتضمن بعض
أمثلة إدارة الجهاز القراءة ،والجهاز ،والكتابة ،والحصول على سمات الجهاز ،وإصدار الجهاز ،وما إلى ذلك.
.4صيانة المعلومات : Information Maintenanceصيانة المعلومات هي استدعاء نظام يتم استخدامه للحفاظ على
المعلومات .هناك بعض األمثلة على صيانة المعلومات ،بما في ذلك الحصول على بيانات النظام ،وتعيين الوقت أو
التاريخ
.5االتصاالت : Communicationاالتصال هو مكالمة نظام يتم استخدامها لالتصال .هناك بعض األمثلة على االتصال
،بما في ذلك إنشاء اتصاالت االتصال وحذفها وإرسال الرسائل واستالمها وما إلى ذلك.
There are various examples of Windows and Unix system calls. These are as listed below
in the table:
CreateProcess() Fork()
Process Control ExitProcess() Exit()
WaitForSingleObject() Wait()
CreateFile() Open()
File ReadFile() Read()
Manipulation WriteFile() Write()
CloseHandle() Close()
SetConsoleMode() Ioctl()
Device
ReadConsole() Read()
Management
WriteConsole() Write()
GetCurrentProcessID() Getpid()
Information
SetTimer() Alarm()
Maintenance
Sleep() Sleep()
CreatePipe() Pipe()
Communication CreateFileMapping() Shmget()
MapViewOfFile() Mmap()
ً
أشكاال مختلفة من حماية أو فصل الذاكرة وفي حماية الذاكرة يتعين علينا حماية نظام التشغيل أن أنظمة التشغيل المختلفة تستخدم
من عمليات المستخدم والتي يمكن القيام بها باستخدام relocation registerبسجل حد limit registerهنا يحتوي سجل
relocation registerعلى قيمة أصغر عنوان فعلي physical addressبينما يحتوي limit registerعلى نطاق العناوين
المنطقية logical addressesهذان السجالن لهما بعض الشروط مثل كل عنوان منطقي يجب أن يكون أقل من .limit register
وتُستخدم وحدة إدارة الذاكرة memory management unitلترجمة العنوان المنطقي logical addressبالقيمة الموجودة في
relocation registerديناميكيًا وبعد ذلك يتم إرسال العنوان المترجم (أو المعين) إلى الذاكرة.
في الرسم البياني أعاله عندما يحدد المجدول schedulerعملية لعملية التنفيذ ، execution processيكون المرسل dispatcher
من ناحية أخرى مسؤوالً عن تحميل سجالت relocation and limit registersبالقيم الصحيحة كجزء من تبديل السياق
context switchمثل كل عنوان تم إنشاؤه بواسطة وحدة المعالجة المركزية CPUيتم فحصه مقابل هذين المسجلين ،وقد نحمي
نظام التشغيل والبرامج وبيانات المستخدمين من التغيير من خالل هذه العملية قيد التشغيل.
تمنع حماية الذاكرة العملية من الوصول إلى الذاكرة غير المخصصة unallocated memoryفي نظام التشغيل ألنها تمنع
البرنامج من السيطرة على مقدار زائد من الذاكرة وقد يتسبب في تلف يؤثر على البرامج األخرى المستخدمة حاليًا أو قد يؤدي
إلى فقدان البيانات المحفوظة .تساعد موارد حماية الذاكرة هذه أيضًا في اكتشاف التطبيقات الضارة malicious or harmful
applicationsوالتي قد تتلف بعد عمليات نظام التشغيل.
هناك طرق مختلفة للحماية من الوصول إلى الذاكرة التي لم يتم تخصيصها وبعض الطرق شائعة االستخدام مذكورة أدناه:
يمكن العثور على مفهوم استخدام حماية الذاكرة مع المفاتيح في معظم أجهزة الكمبيوتر الحديثة بغرض تنظيم الذاكرة المقسمة
إلى صفحات paged memoryوللتوزيع الديناميكي بين برامج التشغيل المتوازية تعتمد المفاتيح على استخدام رموز خاصة
حيث يمكننا التحقق من التوافق بين استخدام مصفوفات خاليا الذاكرة وعدد البرامج قيد التشغيل وتمنح هذه الطريقة األساسية
المستخدمين عملية لفرض الحماية على أساس الصفحة page-based protectionsدون أي تعديل في جداول الصفحات.
في علم الكمبيوتر تسمى المجاالت domainsالمتعلقة بالحماية المطلوبة حلقات الحماية Protection Ringsتساعد هذه الطريقة
ً
امتيازا إلى في تحسين التسامح مع الخطأ fault toleranceوتوفر األمان .يتم ترتيب هذه الحلقات في تسلسل هرمي من األكثر
األقل امتيا ًزا most privileged to least privilegedفي نظام تشغيل المشاركة أحادي المستوى single-level sharing OS
يحتوي كل جزء على حلقة حماية لعملية القراءة والكتابة وتنفيذ العمليات فإذا كان هناك استخدام لرقم حلقة أعلى من خالل العملية
،فإن رقم الحلقة الخاص بالمقطع يؤدي إلى حدوث خطأ لكن لدينا بعض الطرق الستدعاء اإلجراءات بأمان والتي يمكن تشغيلها
برقم رنين أقل ثم العودة إلى رقم الحلقة األعلى.
هي طريقة لحماية الذاكرة ال يمكن رؤيتها في أجهزة الكمبيوتر التجارية الحديثة .هنا يتم استعادة المؤشرات ( pointersالتي
تتكون من عنوان ذاكرة) بواسطة كائنات القدرات capabilities objectsالتي ال يمكن إنشاؤها إال من خالل التعليمات المحمية
ويمكن تنفيذها فقط من خالل نواة Kernelأو من خالل عملية أخرى مصرح لها بالتنفيذ ،وبالتالي فهي تمنح ميزة للتحكم في
العمليات غير المصرح بها في إنشاء مساحات عناوين منفصلة إضافية في الذاكرة.
تستخدم األقنعة في حماية الذاكرة أثناء تنظيم الصفحات organization of pagingفي هذه الطريقة ،قبل التنفيذ تتم اإلشارة إلى
أرقام الصفحات لكل برنامج ويتم حجزها لوضع توجيهاتها .هنا يتم منح الصفحات المخصصة للبرنامج اآلن التحكم في نظام
التشغيل في شكل رمز قناع (رمز ثنائي بت) والذي يتم تشكيله لكل برنامج عمل يتم تحديده بواسطة عدد البت
هي طريقة لتقسيم ذاكرة النظام إلى أجزاء مختلفة .تُستخدم هياكل البيانات الخاصة بمعمارية x86لنظام التشغيل مثل جدول
واصف محلي local descriptorوجدول واصف عالمي global descriptorفي حماية الذاكرة.
حماية الذاكرة باستخدام التجزئة المحاكاة Memory Protection using Simulated segmentation -
باستخدام هذه التقنية ،يمكننا مراقبة البرنامج لتفسير تعليمات كود اآللة الخاصة بهياكل النظام ويمكن للمحاكاة المساعدة في
حماية الذاكرة باستخدام التجزئة باستخدام المخطط والتحقق من صحة العنوان الهدف لكل تعليمات في الوقت الفعلي.
حماية األجهزة ونوع حماية األجهزة Hardware Protection and Type of Hardware Protection
أن نظام الكمبيوتر يحتوي على األجهزة مثل المعالج والشاشة وذاكرة الوصول العشوائي وغيرها الكثير ،وشيء واحد يضمنه
نظام التشغيل أن هذه األجهزة ال يمكن للمستخدم الوصول إليها مباشرة.
بشكل أساسي ،يتم تقسيم حماية األجهزة إلى 3فئات :حماية وحدة المعالجة المركزية وحماية الذاكرة وحماية اإلدخال /اإلخراج.
على النحو التالي.
يشار إلى حماية وحدة المعالجة المركزية ألننا ال نستطيع إعطاء وحدة المعالجة المركزية لعملية ما إلى األبد ،يجب أن يكون
ذلك لبعض الوقت المحدود وإال فلن تحصل العمليات األخرى على فرصة للتنفيذ .لذلك يتم استخدام عداد الوقت timerللخروج
قدرا معينًا من الوقت للعملية وبعد تنفيذ الموقت ،سيتم إرسال إشارة إلى العملية لمغادرة
من هذا الموقف والذي يمنح بشكل أساسي ً
وحدة المعالجة المركزية .ومن ثم لن تحتفظ العملية بوحدة المعالجة المركزية لمزيد من الوقت.
في حماية الذاكرة ،نتحدث عن هذا الموقف عندما تكون هناك عمليتان أو أكثر في الذاكرة وقد تصل إحدى العمليات إلى ذاكرة
العملية األخرى .ولمنع حدوث هذا الموقف ،نستخدم سجلين على النحو التالي:
يقوم مسجل Base registerبتخزين عنوان بدء البرنامج starting addressوتخزين السجل الحد limit registerلحجم العملية
لذلك عندما تريد إحدى العمليات الوصول إلى الذاكرة ،يتم التحقق من إمكانية الوصول إلى الذاكرة أو عدم قدرتها على الوصول
إليها.
عندما نضمن حماية اإلدخال /اإلخراج I/O protectionفلن تحدث بعض الحاالت مطلقًا في النظام مثل:
تشير الحماية إلى آلية تتحكم في وصول البرامج أو العمليات أو المستخدمين إلى الموارد المحددة بواسطة نظام الكمبيوتر .يمكننا
أن نأخذ الحماية كمساعد لنظام تشغيل متعدد البرمجة multi programmingبحيث يمكن للعديد من المستخدمين مشاركة مساحة
اسم منطقي مشتركة بأمان مثل الدليل أو الملفات.
يتمثل دور الحماية في توفير آلية لتنفيذ السياسات mechanismالتي تحدد استخدامات الموارد في نظام الكمبيوتر ويتم تحديد
بعض السياسات وقت تصميم النظام وبعضها تم تصميمه بواسطة إدارة النظام والبعض اآلخر يتم تحديده بواسطة مستخدمي
النظام لحماية ملفاتهم وبرامجهم.
يحتوي كل تطبيق على سياسات مختلفة الستخدام الموارد وقد تتغير بمرور الوقت لذا فإن حماية النظام ليست فقط من اهتمامات
مصمم نظام التشغيل ويجب على مبرمج التطبيق أيضًا تصميم آلية الحماية لحماية نظامهم من سوء االستخدام.
السياسة تختلف عن اآللية Policy is different from mechanismتحدد اآلليات كيف سيتم عمل شيء ما ،وتحدد السياسات
ما سيتم القيام به .تتغير السياسات بمرور الوقت والمكان المناسب .الفصل بين اآللية والسياسة مهم لمرونة النظام.
في أنظمة الكمبيوتر ،يتم تخزين الكثير من معلومات المستخدم والهدف من نظام التشغيل هو الحفاظ على أمان بيانات المستخدم
من الوصول غير الصحيح إلى النظام ويمكن توفير الحماية بعدة طرق
تحتاج الملفات التي لها وصول مباشر ألي مستخدم إلى الحماية وال تتطلب الملفات التي ال يمكن الوصول إليها من قبل المستخدمين
اآلخرين أي نوع من الحماية .توفر آلية الحماية تسهيل الوصول المتحكم فيه فقط من خالل الحد من أنواع الوصول إلى الملف.
يمكن منح حق الوصول أو عدم منحه ألي مستخدم بنا ًء على عدة عوامل أحدها هو نوع الوصول المطلوب .يمكن التحكم في عدة
أنواع مختلفة من العمليات:
• Execute – Loading the file and after loading the execution process starts.
• Append – Writing the new information to the already existing file, editing must be end at the
end of the existing file.
• Delete – Deleting the file which is of no use and using its space for another data.
كل آلية منها لها. هناك العديد من آليات الحماية.عمليات مثل إعادة التسمية وتحرير الملف الحالي والنسخ يمكن أيضًا التحكم فيها
.مزايا وعيوب مختلفة ويجب أن تكون مناسبة للتطبيق المقصود
Operating Systems
Lecture # 4
Department of Computer
4th Class
Virtual Machine
By
اآللة االفتراضية ) (VMهي بيئة افتراضية تعمل كنظام كمبيوتر افتراضي مع وحدة المعالجة المركزية والذاكرة وواجهة الشبكة
والتخزين الخاصة بها والتي تم إنشاؤها على نظام أجهزة فعلي.
يتم عزل األجهزة الظاهرية عن باقي النظام ويمكن أن توجد أجهزة افتراضية متعددة على قطعة واحدة مثل الخادم Server
وهذا يعني أنها صورة محاكاة لبرنامج التطبيق ونظام التشغيل الذي يتم تنفيذه على كمبيوتر مضيف أو خادم ولديها نظام التشغيل
والبرامج الخاصة بها والتي من شأنها تسهيل الموارد ألجهزة الكمبيوتر االفتراضية.
تستخدم أنظمة تشغيل متعددة نفس موارد األجهزة واألقسام بين أجهزة الكمبيوتر االفتراضية. •
توجد بيئات أنظمة التشغيل المتعددة في نفس الوقت على نفس الجهاز وهي معزولة عن بعضها البعض. •
باستخدام األجهزة االفتراضية هناك سهولة في الصيانة وتوفير التطبيقات والتوافر واالسترداد المريح •
القدرة على نقل أجهزة الكمبيوتر االفتراضية بين أجهزة الكمبيوتر المضيفة المادية كملفات متكاملة بشكل كلي. •
يوضح الرسم البياني أدناه الفرق بين نظام التشغيل الفردي بدون VMونظام التشغيل المتعدد معVM -
يحقق نظام التشغيل المحاكاة االفتراضية بمساعدة برنامج متخصص يسمى Hypervisorوالذي يحاكي عميل الكمبيوتر
الشخصي أو وحدة المعالجة المركزية للخادم والذاكرة والقرص الصلب والشبكة وموارد األجهزة األخرى تما ًما مما يتيح لألجهزة
االفتراضية مشاركة الموارد.
يمكن لبرنامج Hypervisorمحاكاة العديد من األنظمة األساسية لألجهزة االفتراضية المعزولة عن بعضها البعض مما يسمح
لألجهزة االفتراضية بتشغيل أجهزة تشغيل Linuxوخادم النوافذ Windowsعلى نفس المضيف الفعلي األساسي.
ال يختلف الجهاز االفتراضي الذي يُختصر عادةً إلى VMفقط عن أي جهاز كمبيوتر مادي آخر مثل الكمبيوتر المحمول أو
الهاتف الذكي أو الخادم فهو يحتوي على وحدة معالجة مركزية وذاكرة وأقراص لتخزين ملفاتك ويمكنه االتصال باإلنترنت إذا
لزم األمر في حين أن األجزاء التي يتكون منها جهاز الكمبيوتر الخاص بك (تسمى األجهزة) مادية وملموسة وغالبًا ما يُنظر إلى
األجهزة االفتراضية على أنها أجهزة كمبيوتر افتراضية أو أجهزة كمبيوتر معرفة بالبرامج داخل خوادم فعلية موجودة فقط كرمز .
المحاكاة االفتراضية هي عملية إن شاء إصدار قائم على البرامج أو إصدار "افتراضي" من جهاز كمبيوتر مع كميات مخصصة
من وحدة المعالجة المركزية والذاكرة والتخزين "المستعارة" من جهاز كمبيوتر مضيف فعلي -مثل جهاز الكمبيوتر الشخصي
-و /أو خادم بعيد -مثل خادم في مركز بيانات موفر السحابة .الجهاز الظاهري هو ملف كمبيوتر ،يسمى عادة ً صورة يتصرف
مثل جهاز كمبيوتر حقيقي .يمكن تشغيله في نافذة كبيئة حوسبة منفصلة غالبًا لتشغيل نظام تشغيل مختلف -أو حتى للعمل كتجربة
الكمبيوتر الكاملة للمستخدم -كما هو شائع في أجهزة كمبيوتر عمل العديد من األشخاص .يتم تقسيم الجهاز الظاهري عن باقي
النظام مما يعني أن البرنامج الموجود داخل الجهاز الظاهري ال يمكن أن يتداخل مع نظام التشغيل األساسي للكمبيوتر المضيف.
تطوير بيئة جديدة لجعلها أبسط وأسرع للمطورين لتشغيل سيناريوهات اختبار التطوير. •
الوصول إلى البيانات المصابة بالفيروسات أو تشغيل تطبيق قديم عن طريق تثبيت نظام تشغيل أقدم. •
تشغيل البرامج أو التطبيقات على أنظمة تشغيل لم تكن مخصصة لها في األصل. •
بينما تعمل األجهزة االفتراضية مثل أجهزة الكمبيوتر الفردية مع أنظمة التشغيل والتطبيقات الفردية فإنها تتمتع بميزة البقاء مستقلة
تما ًما عن بعضها البعض وعن الجهاز المضيف الفعلي .يتيح لك برنامج يسمى برنامج Hypervisorأو مدير الجهاز الظاهري
تشغيل أنظمة تشغيل مختلفة على أجهزة افتراضية مختلفة في نفس الوقت .هذا يجعل من الممكن تشغيل Linux VMsعلى
سبيل المثال ،على نظام تشغيل ، Windowsأو تشغيل إصدار سابق من Windowsعلى نظام تشغيل Windowsأحدث.
وألن األجهزة االفتراضية مستقلة عن بعضها البعض فهي أيضًا محمولة للغاية .يمكنك نقل جهاز VMعلى برنامج
Hypervisorإلى برنامج Hypervisorآخر على جهاز مختلف تما ًما على الفور تقريبًا.
توفير التكاليف :تشغيل بيئات افتراضية متعددة من جزء واحد من البنية التحتية يعني أنه يمكنك تقليل أثر البنية التحتية •
المادية بشكل كبير .يعمل هذا على تعزيز أرباحك النهائية -تقليل الحاجة إلى صيانة العديد من الخوادم تقريبًا وتوفير تكاليف
الصيانة والكهرباء.
أمرا سهالً وسري ًعا نسبيًا وهو أبسط بكثير من توفير بيئة جديدة كاملة .
السرعة :يعد تشغيل جهاز افتراضي ً •
تقليل وقت التوقف عن العمل :أجهزة VMمحمولة للغاية ويسهل نقلها من جهاز مراقبة إلى آخر على جهاز مختلف •
وهذا يعني أنها تمثل حالً رائعًا للنسخ االحتياطي ،في حالة تعطل المضيف بشكل غير متوقع.
قابلية التوسع :تسمح لك أجهزة VMبتوسيع نطاق تطبيقاتك بسهولة أكبر عن طريق إضافة المزيد من الخوادم المادية •
أو االفتراضية لتوزيع عبء العمل عبر أجهزة افتراضية متعددة .نتيجة لذلك ،يمكنك زيادة توافر وأداء تطبيقاتك.
نظرا أل ن األجهزة االفتراضية تعمل في أنظمة تشغيل متعددة ،فإن استخدام نظام تشغيل ضيف على
ً مزايا األمان : •
جهاز افتراضي يسمح لك بتشغيل تطبيقات ذات أمان مشكوك فيه ويحمي نظام التشغيل المضيف .تسمح األجهزة االفتراضية
أيضًا بتحسين األدلة الجنائية األمنية ،وغالبًا ما تُستخدم لدراسة فيروسات الكمبيوتر بأمان ،وعزل الفيروسات لتجنب المخاطرة
بجهاز الكمبيوتر المضيف.
يمكن تشغيل العديد من األجهزة االفتراضية في وقت واحد على نفس الكمبيوتر الفعلي ويتم إدارتها جميعًا بواسطة برنامج
Hypervisor.وهو البرنامج الذي يدمج األجهزة المادية و "األجهزة" االفتراضية لـ VM.هذا مشابه جدًا لكيفية عمل نظام
التشغيل في جهاز كمبيوتر نموذجي :يشبه إلى حد كبير حارس عبور المدرسة الذي يساعد العديد من الطالب على التحرك بأمان
ذهابًا وإيابًا عبر تقاطع مزدحم ويتأكد المشرف على كل جهاز افتراضي من حصول كل جهاز افتراضي على الموارد التي
يحتاجها من الخادم الفعلي في بطريقة منظمة وفي الوقت المناسب.
تعد أجهزة Spot VMجز ًءا من الخدمات التي يقدمها موفر السحابة Cloud serverمثل ، Microsoft Azureوالتي توفر
سعة حوسبة قابلة للتطوير بتخفيضات كبيرة وتُعد أجهزة Spot VMsمثالية ألحمال العمل التي يمكن مقاطعتها ،مثل:
حدد سيناريوهات الحوسبة عالية األداء ،أو مهام المعالجة المجمعة ،أو تطبيقات العرض المرئي. •
بيئات التطوير /االختبار ،بما في ذلك التكامل المستمر وأعباء عمل التسليم المستمر. •
بعد تحديد مفهوم اآللة االفتراضية وكشف بعض وظائفها من الضروري معرفة خصائصها الرئيسية:
.1يمكن تثبيت كل نظام تشغيل تقريبًا في غالبية األجهزة االفتراضية مثل Windowsأو Linuxأو Androidأو Mac
.OS Xعلى الرغم من وجود أنظمة تشغيل أخرى تسمح بعرض نظام تشغيل واحد فقط.
.2كل نظام تشغيل يتم تحويله إلى واقع افتراضي مستقل تما ًما عن باقي أنظمة التشغيل .لذلك إذا عانى جهاز افتراضي من
أي مشكلة أو توقف عن العمل بشكل مباشر فلن يتأثر اآلخرون وسيواصلون مسارهم وعملهم.
.3يتطابق وضع استخدام أنظمة التشغيل من جهاز افتراضي مع نظام التشغيل المثبت على أي جهاز كمبيوتر.
.4العناصر المكونة لجهاز افتراضي هي نفس العناصر المتوفرة في جهاز كمبيوتر فعلي من ذاكرة الوصول العشوائي
والقرص الصلب إلى محرك األقراص المضغوطة وبطاقة الفيديو وبطاقة الشبكة ويتم تضمينها في جهاز ظاهري ،
وتعتبر المحاكاة االفتراضية لجميع هذه العناصر هي االختالف الوحيد فيما يتعلق بجهاز كمبيوتر حقيقي.
.5يتم تضمين جميع العناصر الموجودة في الجهاز الظاهري في مجموعة من الملفات .بهذه الطريقة يمكن الحصول على
نسخة من نظام تشغيل افتراضي من كمبيوتر إلى آخر وكذلك إنشاء نسخ احتياطية .يتم تنفيذ كلتا العمليتين بسرعة
وسهولة ويتم تجنب المشاكل الفنية أيضًا.
Operating Systems
Lecture # 5
Department of Computer
4th Class
By
وفر نظام التشغيل بيئة عمل لتنفيذ البرامج ،فهو يقدم خدمات للبرامج ولمستخدِمي تلك البرامج .وتختلف هذه
الخدمات من نظام تشغيل إلى آخر ،بيد أنه يمكن تمييز بعض التصنيفات العامة لها ،تجعل هذه الخدمات
المبرمجين أكثر مقدرة على البرمجة وتسهل عليهم عملهم.
فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بإدارة البرنامج:
فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بعملية االدخال /االخراج :
➢ تعني عملية االدخال /االخراج قراءة أو كتابة عملية باستخدام أي ملف أو أي جهاز إدخال /إخراج محدد .
➢ قد يتطلب البرنامج أي جهاز ادخال /اخراج أثناء التشغيل .
➢ يوفر نظام التشغيل الوصول إلى جهاز االدخال /االخراج المطلوب عند الحاجة .
عادة ما يتم تنظيم نظام الملفات في أدلة لسهولة التصفح واالستخدام .قد تحتوي هذه األدلة على ملفات وتوجيهات
أخرى .
فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بإدارة الملفات .
االتصاالت Communication
في حالة األنظمة الموزعة التي هي عبارة عن مجموعة من المعالجات التي ال تشترك في الذاكرة أو األجهزة
الطرفية أو الساعة ،يقوم نظام التشغيل بإدارة االتصاالت بين العمليات .عمليات متعددة مع بعضها البعض من
خالل خطوط االتصال في الشبكة .يتعامل نظام التشغيل مع استراتيجيات التوجيه واالتصال ،ومشكالت الخالف
واألمن .
فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق باالتصاالت :
فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بمعالجة األخطاء:
فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بإدارة الموارد:
➢ يدير نظام التشغيل جميع أنواع الموارد باستخدام أدوات الجدولة .
➢ يتم استخدام خوارزميات جدولة وحدة المعالجة المركزية لتحسين استخدام وحدة المعالجة المركزية .
الحماية Protection
بالنظر إلى أن أنظمة الكمبيوتر التي لديها عدة مستخدمين هي التنفيذ المتزامن لعمليات متعددة ،فيجب حماية
العمليات المختلفة من أنشطة بعضها البعض .تشير الحماية إلى آلية أو طريقة للتحكم في وصول البرامج أو
العمليات أو المستخدمين إلى الموارد التي تحددها أنظمة الكمبيوتر .
فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بالحماية :
➢ يضمن نظام التشغيل التحكم في الوصول إلى موارد النظام بالكامل .
➢ يضمن نظام التشغيل حماية أجهزة االدخال /االخراج الخارجية من محاوالت الوصول غير الصالحة.
➢ يوفر نظام التشغيل ميزة المصادقة لكل مستخدم عن طريق كلمة مرور.
Operating Systems
Lecture # 6
Department of Computer
4th Class
By
سم نظام التشغيل من حيث قدرته على تشغيل أكثر من برنامج للمستخدم إلى قسمين :
يُق َ
نظام متعدد المهام : Multi-Taskingهنا يُتيح للمستخدم التعامل مع أكثر من برنامج في الوقت نفسه. •
نظام أحادي المهام : Single-Taskingهذا النظام ال يُس َمح للمستخدم بتشغيل أكثر من برنامجٍ واح ٍد في الوقت ذاته. •
أبسط أنواع نظم التشغيل تخدم مستخدما واحدا في الوقت الواحد وهو منفرد المهمة ) (Single-Taskingبمعنى آخر ويمكنه أن
ينفذ برنامجا واحدا فقط في الوقت الواحد ومن األمثلة عليه نظام MS-DOS
هذا النظام لديه القدرة على تنفيذ أكثر من برنامج واحد بشكل متزامن ،حيث تنتقل الوحدة المعالجة المركزية ) (CPUبين المهمات
بسرعة كبيرة .ومن أمثلته Windows
يسمح هذا النظام لعدد من األشخاص بتنفيذ كل منهم برنامجا ً واحدا ّ في الوقت نفسه .ويزود كل مستخدم بمحطة إدخال وإخراج
تتصل مع الحاسوب المركزي ويسمى هذا التنظيم بنظام المشاركة الزمنية ) (Timesharingوذلك ألن نظام التشغيل يأمر
الحاسوب باالنتقال بسرعة كبيرة بين المستخدمين بعد إعطائهم فترات زمنية ثابتة الستخدام CPUوتسمى هذه الفترات بالشرائح
الزمنية ) (Time Slicesوهي قصيرة جدا ً (حوالي ألوف جزئية من الثانية) بحيث يتوهم كل مستخدم أنه يمتلك انتباه الحاسوب
كلية ومن امثلتهWindows NT.
هو عباره عن نظم التشغيل الحديثة حيث تتيح للمستخدم تشغيل عدة برامج حتى إن كان تعدد المعالجات ) (CPUغير كافية لذلك.
تقوم نظم التشغيل بتوزيع وقت المعالج بين هذه البرامج بحيث يأخذ كل برنامج وقت محدد من المعالج من ثم يقوم بإيقاف مؤقت
للبرنامج وإعطاء برنامج اخر هذا الوقت .هذا يعني ان خالل اللحظة الواحدة برنامج واحد يعمل على المعالج ونظام التشغيل يقوم
بالتغيير بسرعة كبيرة جدا ً كأجزاء من الثانية .عملية توزيع وقت المعالج تسمى بالجدولة ) (schedulingحيث يحتفظ نظام
التشغيل بقائمة من البرامج التي قام ال ُمستخدم بتشغيلها وتقوم عملية الجدولة بتوزيع وقت لكل برنامج موجود في هذه القائمة
ليستفيد من ال ُمعالج في هذا الوقت.
ويمكن تصنيف األنواع المختلفة ألنظمة من حيث طريقة العمل وفيما يلي بعض األنواع المهمة من أنظمة التشغيل األكثر استخدا ًما.
ال يتفاعل مستخدمو نظام التشغيل الدفعي مع الكمبيوتر بشكل مباشر .يقوم كل مستخدم بإعداد وظيفته على جهاز غير متصل
باإلنترنت مثل البطاقات المثقوبة وإرسالها إلى مشغل الكمبيوتر .لتسريع المعالجة ،يتم تجميع المهام ذات االحتياجات المماثلة
معًا وتشغيلها كمجموعة .وهكذا ،ترك المبرمجون برامجهم مع المشغل .يقوم المشغل بعد ذلك بفرز البرامج إلى دفعات بمتطلبات
مماثلة .
تعد مشاركة الوقت تقنية تمكن العديد من األشخاص الموجودين في محطات طرفية مختلفة من استخدام نظام كمبيوتر معين في
نفس الوقت .تعد مشاركة الوقت أو تعدد المهام امتدادًا منطقيًا للبرمجة المتعددة .يُطلق على وقت المعالج الذي يتم مشاركته بين
عدة مستخدمين في وقت واحد اسم مشاركة الوقت .يتمثل االختالف الرئيسي بين أنظمة الدُفعات متعددة البرامج وأنظمة مشاركة
الوقت في أنه في حالة أنظمة الدُفعات متعددة البرامج ،يكون الهدف هو تعظيم استخدام المعالج ،بينما يتمثل هدف أنظمة مشاركة
الوقت في تقليل وقت االستجابة .يتم تنفيذ مهام متعددة بواسطة وحدة المعالجة المركزية ) (CPUعن طريق التبديل بينها ،لكن
كثيرا .وبالتالي ،يمكن للمستخدم تلقي استجابة فورية .على سبيل المثال ،في معالجة المعامالت ،يقوم المعالج
ً التبديل يحدث
بتنفيذ كل برنامج مستخدم في دفعة قصيرة أو كمية من الحساب .هذا إذا كان nمستخدمين موجودين ،يمكن لكل مستخدم الحصول
ثوان على األكثر .يستخدم نظام التشغيل جدولة
ٍ على الوقت الكمي .عندما يرسل المستخدم األمر ،يكون وقت االستجابة بضع
وحدة المعالجة المركزية ) (CPUوالبرمجة المتعددة لتزويد كل مستخدم بجزء صغير من الوقت .تم تعديل أنظمة الكمبيوتر التي
تم تصميمها بشكل أساسي كنظم دفعات إلى أنظمة مشاركة الوقت .
العيوب المزايا
مشكلة الموثوقية . - توفر ميزة االستجابة السريعة . -
مسألة أمن وسالمة برامج وبيانات المستخدم . - يتجنب ازدواجية البرامج . -
مشكلة اتصال البيانات . - يقلل وقت خمول وحدة المعالجة المركزية . -
تستخدم األنظمة الموزعة معالجات مركزية متعددة لخدمة تطبيقات متعددة في الوقت الفعلي ومستخدمين متعددين .يتم توزيع
وظائف معالجة البيانات بين المعالجات وفقًا لذلك يمكن للمرء أداء كل وظيفة بكفاءة أكبر .تتواصل المعالجات مع بعضها البعض
من خالل خطوط اتصال مختلفة (مثل الحافالت عالية السرعة أو خطوط الهاتف) .ويشار إلى هذه على أنها أنظمة مقترنة بشكل
فضفاض أو أنظمة موزعة .قد تختلف المعالجات في النظام الموزع من حيث الحجم والوظيفة .يشار إلى هذه المعالجات باسم
المواقع والعقد وأجهزة الكمبيوتر وما إلى ذلك .
مع إمكانية مشاركة الموارد ،قد يتمكن المستخدم في موقع ما من استخدام الموارد المتاحة في موقع آخر. -
تسريع تبادل البيانات مع بعضها البعض عبر البريد اإللكتروني . -
إذا فشل أحد المواقع في نظام موزع ،فمن المحتمل أن تستمر المواقع المتبقية في العمل . -
خدمة أفضل للعمالء. -
تقليل الحمل على الكمبيوتر المضيف. -
الحد من التأخير في معالجة البيانات . -
يعمل نظام تشغيل الشبكة على خادم ويوفر للخادم القدرة على إدارة البيانات والمستخدمين والمجموعات واألمن والتطبيقات
ووظائف الشبكات األخرى .الغرض األساسي من نظام تشغيل الشبكة هو السماح بالوصول المشترك للملفات والطابعة بين أجهزة
كمبيوتر متعددة في شبكة ،وعادة ً ما تكون شبكة محلية ) (LANأو شبكة خاصة أو شبكات أخرى .من أمثلة أنظمة تشغيل
Mac OS X , Linux , UNIX , الشبكة Microsoft Windows Server
العيوب المزايا
ارتفاع تكلفة شراء وتشغيل الخادم. - الخوادم المركزية مستقرة للغاية . -
االعتماد على موقع مركزي لمعظم العمليات . - يتم إدارة األمن بواسطة الخادم . -
مطلوب صيانة وتحديثات منتظمة . - يمكن دمج الترقيات للتقنيات واألجهزة الجديدة -
بسهولة في النظام .
الوصول عن بعد إلى الخوادم ممكن من مواقع -
وأنواع مختلفة من األنظمة.
صغيرا
ً ُعرف نظام الوقت الحقيقي بأنه نظام معالجة بيانات يكون فيه الفاصل الزمني المطلوب لمعالجة المدخالت واالستجابة لها
ي ّ
جدًا لدرجة أنه يتحكم في البيئة .تكون المعالجة في الوقت الفعلي دائ ًما عبر اإلنترنت بينما ال يلزم أن يكون النظام عبر اإلنترنت
في الوقت الفعلي .يُطلق على الوقت الذي يستغرقه النظام لالستجابة إلدخال وعرض المعلومات المحدثة المطلوبة وقت االستجابة.
لذا في هذه الطريقة يكون وقت االستجابة أقل بكثير مقارنة بالمعالجة عبر اإلنترنت .تُستخدم أنظمة الوقت الفعلي عندما تكون
هناك متطلبات زمنية صارمة لتشغيل المعالج أو تدفق البيانات ويمكن استخدام أنظمة الوقت الفعلي كجهاز تحكم في تطبيق
مخصص .يحتوي نظام التشغيل في الوقت الفعلي على قيود زمنية محددة جيدًا وثابتة وإال سيفشل النظام .على سبيل المثال ،
التجارب العلمية وأنظمة التصوير الطبي وأنظمة التحكم الصناعية وأنظمة األسلحة والروبوتات وأجهزة التحكم في األجهزة
المنزلية ونظام التحكم في الحركة الجوية وما إلى ذلك .
تضمن أنظمة الوقت الفعلي الصلب إكمال المهام الحرجة في الوقت المحدد .في أنظمة الوقت الفعلي الصعب ،يكون التخزين
الثانوي محدودًا أو مفقودًا مع البيانات المخزنة في ذاكرة القراءة فقط .في هذه األنظمة ،لم يتم العثور على الذاكرة االفتراضية
أبدًا .
أنظمة الوقت الحقيقي الناعمة أقل تقييدًا .تحظى المهام الحرجة في الوقت الفعلي باألولوية على المهام األخرى وتحتفظ
باألولوية حتى تستجيب .تتمتع أنظمة الوقت الفعلي اللينة بفائدة محدودة عن أنظمة الوقت الفعلي الصعبة .على سبيل المثال
،الوسائط المتعددة ،والواقع االفتراضي ،والمشاريع العلمية المتقدمة مثل االستكشاف تحت سطح البحر ومركبات الكواكب
وما إلى ذلك.
صا للقيام بمهمة محددة أو عدد من المهمات المحددة ،أي أنه مصمم
تعني ارتباط شي بشيء آخر ،وهذا النظام صمم خصي ً
ألغراض محددة ،وهو المتحكم أو المعالج القائم على النظام الذي تم تصميمه ليؤدي مهمة محددة أو عدة مهمات محددة .على
سبيل المثال :إنذار الحريق هو نظام مدمج ،واآلالت الصناعية ،واألجهزة الزراعية والمعدات الطبية والكاميرات واألجهزة
ً
فضال عن األجهزة النقالة (المحمول) ،وأيضًا أجهزة الراوتر ( )Routersوأمثلة على األنظمة المدمجة في منتج المنزلية،
أكبر وهو الحاسوب ( )Computerالـ DVD Playerوكارت الـ .LANواألنظمة المدمجة بعضها يحتوي على واجهة
مستخدم ( )UIوآخر ال ..على سبيل المثال األجهزة التي صممت ألداء مهمة واحدة ال تحتوي على واجهة مستخدم في كثير
من األحيان ،واألخرى األكثر تعقيدًا والتي صممت ألداء عدد أكبر من المهمات مثل األجهزة النقالة (المحمول) صممت
بواجهة مستخدم رسومية ( .)GUIيحتوي النظام المدمج على ثالث مكونات أساسية هي الجزء المادي ()Hardware
وتطبيقات برمجية ( )Application Softwareو RTOSوهو اختصار لـ .Real Time Operating system
Operating Systems
Lecture # 7
Department of Computer
4th Class
By
العملية Process
هي في األساس برنامج قيد التنفيذ .وان تنفيذ العملية يجب أن يتقدم بطريقة متسلسلة .ويتم تعريف العملية على أنها كيان يمثل
وحدة العمل األساسية التي سيتم تنفيذها في النظام ،وبعبارات بسيطة ،نكتب برامج الكمبيوتر الخاصة بنا في ملف نصي وعندما
نقوم بتنفيذ هذا البرنامج ،تصبح عملية تؤدي جميع المهام المذكورة في البرنامج وعندما يتم تحميل أي برنامج في الذاكرة فانه
يصبح عملية ويمكن تقسيمه إلى أربعة أقسام
1 Stack: The process Stack contains the temporary data such as method/function
parameters, return address and local variables.
يتحتوي ال Stackعلى البيانات المؤقتة الدوال والمتغيرات المحلية
2 Heap: This is dynamically allocated memory to a process during its run time.
هي ذاكرة مخصصة ديناميكيًا لعملية ما أثناء وقت تشغيلها
3 Text: This includes the current activity represented by the value of Program Counter and
the contents of the processor's registers.
عداد البرامج ومحتويات سجالت المعالج
4 Data: This section contains the global and static variables.
يحتوي هذا القسم على المتغيرات العامة والثابتة
البرنامج Program
>#include <stdio.h
{ )(int main
} ;return 0
ي عرف جزء من برنامج الكمبيوتر الذي يؤدي مهمة محددة باسم الخوارزمية .يشار إلى مجموعة من برامج الكمبيوتر والمكتبات
والبيانات ذات الصلة بالبرمجيات.
عندما يتم تنفيذ العملية ،فإنها تمر عبر حاالت مختلفة .قد تختلف هذه المراحل في أنظمة التشغيل المختلفة ،كما أن أسماء هذه
الحاالت ليست موحدة وبشكل عام ،يمكن أن تشتمل العملية على إحدى الحاالت التالية في كل مرة.
البرنامج الذي سوف يحمله نظام التشغيل في الذاكرة الرئيسية يسمى عملية جديدة.
عندما يتم إنشاء عملية ،فإنها تدخل مباشرة في حالة االستعداد ،حيث تنتظر تعيين وحدة المعالجة المركزية ويختار نظام التشغيل
العمليات الجديدة من الذاكرة الثانوية ويضعها جميعًا في الذاكرة الرئيسية.
تسمى العمليات الجاهزة للتنفيذ والموجودة في الذاكرة الرئيسية عمليات الحالة الجاهزة .يمكن أن يكون هناك العديد من العمليات
الموجودة في حالة االستعداد.
سيتم اختيار إحدى العمليات من حالة االستعداد بواسطة نظام التشغيل اعتمادًا على خوارزمية الجدولة .ومن ثم ،إذا كان لدينا
وحدة معالجة مركزية واحدة فقط في نظامنا ،فسيكون عدد العمليات الجارية لوقت معين دائ ًما واحدًا .إذا كان لدينا معالجات n
في النظام ،فيمكننا تشغيل عمليات nفي وقت واحد.
من حالة التشغيل ،يمكن لعملية االنتقال إلى حالة الحظر أو االنتظار اعتمادًا على خوارزمية الجدولة أو السلوك الجوهري للعملية.
وعندما تنتظر إحدى العمليات تعيين مورد معين أو إدخال من المستخدم ،يقوم نظام التشغيل بنقل هذه العملية إلى حالة الحظر أو
االنتظار وتعيين وحدة المعالجة المركزية إلى العمليات األخرى.
عندما تنتهي العملية من تنفيذها ،فإنها تأتي في حالة اإلنهاء .سيتم أيضًا حذف كل سياق العملية (كتلة التحكم في العملية) وسيتم
إنهاء العملية بواسطة نظام التشغيل.
يتم استدعاء العملية في حالة االستعداد ،والتي يتم نقلها إلى الذاكرة الثانوية من الذاكرة الرئيسية بسبب نقص الموارد (الذاكرة
األساسية بشكل أساسي) في حالة االستعداد المرحلي.
إذا كانت الذاكرة الرئيسية ممتلئة وتأتي عملية ذات أولوية أعلى للتنفيذ ،فيجب على نظام التشغيل توفير مساحة للعملية في الذاكرة
ا لرئيسية عن طريق التخلص من العملية ذات األولوية المنخفضة في الذاكرة الثانوية .تظل العمليات الجاهزة للتعليق في الذاكرة
الثانوية حتى تتوفر الذاكرة الرئيسية.
بدالً من إزالة العملية من قائمة االنتظار الجاهزة ،من األفضل إزالة العملية المحظورة التي تنتظر بعض الموارد في الذاكرة
نظرا ألنه ينتظر بالفعل توفر بعض الموارد ،فمن األفضل أن ينتظر في الذاكرة الثانوية ويفسح المجال لعملية األولوية
الرئيسيةً .
األعلى .تكمل هذه العمليات تنفيذها بمجرد توفر الذاكرة الرئيسية وينتهي انتظارها.
بمجرد إنشاء العملية ،ستكون جاهزة وستدخل في قائمة االنتظار الجاهزة (الذاكرة الرئيسية) وستكون جاهزة للتنفيذ.
من بين العديد من العمليات الموجودة في قائمة االنتظار الجاهزة ،يختار نظام التشغيل عملية واحدة ويبدأ في تنفيذها .يعرف
اختيار العملية التي سيتم تنفيذها بعد ذلك باسم الجدولة.
بمجرد جدولة العملية للتنفيذ ،يبدأ المعالج في تنفيذها .قد تصل العملية إلى حالة الحظر أو االنتظار أثناء التنفيذ ،وفي هذه الحالة
يبدأ المعالج في تنفيذ العمليات األخرى.
بمجرد انتهاء الغرض من العملية ،سيقتل نظام التشغيل العملية .سيتم حذف سياق العملية ( )PCBويتم إنهاء العملية بواسطة نظام
التشغيل.
Process State: The current state of the process i.e., whether it is ready, running, waiting,
1
or whatever.
3 Process ID (PID): Unique identification for each of the process in the operating system.
Program Counter: Program Counter is a pointer to the address of the next instruction to
5
be executed for this process.
CPU registers: Various CPU registers where process need to be stored for execution for
6
running state.
CPU Scheduling Information: Process priority and other scheduling information which
7
is required to schedule the process.
Accounting information: This includes the amount of CPU used for process execution,
9
time limits, execution ID etc.
10 IO status information: This includes a list of I/O devices allocated to the process.
ويتم االحتفاظ بـ. بشكل كامل على نظام التشغيل وقد تحتوي على معلومات مختلفة في أنظمة تشغيل مختلفةPCB تعتمد بنية
هنا رسم تخطيطي مبسط كتلة التحكم في العمليات. ويتم حذفها بمجرد انتهاء العملية، للعملية على طوال عمرهاPCB
Process Control Block (PCB)
نظام العمليات يسمح بإنشاء العديد من العمليات الجديدة بواسطة استدعاء النظام ) (Call Systemطيلة فترة التطبيق لهذه العملية
وأن إنشاء العملية يطلق عليها Process Parentوهذا ما يقصد به األب للعملية والعملية الجديدة يطلق عليه Process Child
وهو االبن الذي تم انشائه من قبل العملية األب.
وكل تلك العلميات الجديدة (األبناء) قد تستطيع إنشاء عمليات جديدة أخرى وباإلمكان تجميعها بالشكل الشجري للعمليات ،قد تكون
هناك أشياء مشتركة بين األب واال بن حيث أن االبن قد يكون نسخه طبق األصل عن األب أو يشتركان في بعض الموارد أو أن
ال يكون بينهما أي موارد مشتركة وفي وقت التنفيذ إما أن ينفذا في وقت متزامن أو أن ينتظر األب حتى تنتهي عمليات التطبيق
الخاصة باألبناء ويوجد أيضا احتماالت لمكان وجود العملية الجديدة (االبن).
االبن عملية مزدوجة من العملية األم واالبن له برنامجه الخاص ومكان جديد يوجد به والكثير من أنظمة التشغيل بما في ذلك
اللينكس والويندوز تقوم بتعريف العمليات تبعا لمعرف العملية Identifier Processالخاص الذي يظهر عادة كرقم صحيح.
الخروج الطبيعي : Exist Normalوتكون العملية في هذه الح الة قد أنهت عملها وتم إنهاءها •
الخروج بسبب خطأ : Exist Errorفي هذه الحالة تكتشف العملية خطأ فادح Fatal Errorمثال على ذلك محاولة •
تأليف compileلبرنامج غير موجود.
خطأ فادح : Error Fatalوهنا يكون إنهاءها ناتج عن خطأ قامت به العملية: ،مثل تنفيذها ألمر غير مسموح به •
كالقسمة على صفر أو اإلحالة إلى مكان غير موجود في الذاكرة
قتلها killبواسطة عملية أخرى •
وهي العملية المستقلة التي ال تتأثر أو تأثر في تنفيذ عملية أخرى في النظام وإنما تعمل مستقلة بذاتها
وهي العملية المتعاونة والتي يمكن أن تأثر أو تتأثر بتنفيذ عملية أخرى في النظام
تبادل الرسائل : Message passingحيث يتم تبادل الرسائل بين العمليات عن طريق االتصال مع بعضها دون وجود مكان
مشترك لتخزين الرسائل ويكون حجم هذه الرسائل ثابت أو متغير و تمر هذه الرسائل على لب النظام Kernelوتحتاج إلى
اتصال بين العمليات
حيث يوجد بين العمليات مكان ذاكره مشتركة لكل منهم ويتم وضع الملفات الذاكرة المشتركة ): (Shared memory
المشتركة بداخلها مثالً العملية أ تنتج بيانات والعملية ب تريد أن تقرأ هذه البيانات من العملية أ فإن الذاكرة المشتركة تقوم بهذه
المهمة لتسهل على العملية ب الوصول للمعلومات التي تريدها من العملية أ فهذه بيانات مشتركة يمكن لجميع العمليات االستفادة
منها عند وضعها في الذاكرة المشتركة.
Operating Systems
Lecture # 8
Department of Computer
4th Class
By
في هذه المحاضرة سوف يتم التطرق الى الخصائص المختلفة لنظام التشغيل.
نظام التشغيل هو واجهة تجعل األمور أكثر بساطة للمستخدمين .يوفر الخدمات لكل من المستخدم والنظام إلجراء التفاعل بينهما.
كما أن لها خصائص مختلفة .تعد خصائص نظام التشغيل هذه من أكثر المهام التي يقوم بها نظام التشغيل اهمية كونها ميزة تجعل
النظام سهل االستخدام.
سوف نتعرف على خصائص نظام التشغيل .هناك خصائص مختلفة لنظام التشغيل .بعض خصائص نظام التشغيل هي كما يلي:
هي تقنية يجمع فيها نظام التشغيل برامج وبيانات واحدة معًا في دفعة قبل بدء المعالجة .ويقوم نظام التشغيل باألنشطة التالية
المتعلقة بمعالجة الدُفعات:
يحدد نظام التشغيل وظيفة لها تسلسل محدد مسبقًا من األوامر والبرامج والبيانات كوحدة واحدة. •
يحتفظ نظام التشغيل بعدد من المهام في الذاكرة وينفذها دون أي معلومات يدوية. •
تتم معالجة الوظائف بترتيب التقديم ،أي بطريقة من يأتي أوالً يخدم أوالً. •
عندما تنتهي المهمة من تنفيذها ،يتم تحرير الذاكرة الخاصة بها •
المزايا Advantages
زيادة األداء عند بدء عمل جديد بمجرد انتهاء الوظيفة السابقة دون أي تدخل يدوي. •
العيوب Disadvantages
يشير مصطلح "تعدد المهام" الى تنفيذ مهام متعددة بواسطة وحدة المعالجة المركزية في وقت واحد عن طريق التبديل بينها.
تحدث المحوالت بشكل متكرر لدرجة أن المستخدمين قد يتفاعلون مع كل برنامج أثناء تشغيله.
يعطي المستخدم التعليمات لنظام التشغيل أو البرنامج مباشرة ،ويتلقى استجابة فورية. -
يتعامل نظام التشغيل مع المهام المتعددة multitaskingبالطريقة التي يمكنه من خاللها التعامل مع عمليات متعددة -
/ multiple operationsتنفيذ برامج متعددة multiple programsفي نفس الوقت.
تُعرف أنظمة التشغيل متعددة المهام أيضًا باسم أنظمة مشاركة الوقت Time-sharing systems -
تم تطوير أنظمة التشغيل هذه لتوفير االستخدام التفاعلي لنظام الكمبيوتر بتكلفة معقولة. -
يستخدم نظام التشغيل المشترك الوقت مفهوم جدولة وحدة المعالجة المركزية والبرمجة المتعددة CPU scheduling -
and multiprogrammingلتزويد كل مستخدم بجزء صغير من وحدة المعالجة المركزية المشتركة الوقت.
كل مستخدم لديه برنامج منفصل واحد على األقل في الذاكرة. -
يشار إلى البرنامج Codeالذي يتم تحميله في الذاكرة ويتم تنفيذه على أنه عملية Process -
حتى تكتمل .خالل هذا الوقت يمكن استخدام وحدة المعالجة المركزية من خالل عملية أخرى. -
نظرا ألن كل إجراء أو أمر في نظام مشترك زمنيًا
ً يسمح نظام التشغيل للمستخدمين بمشاركة الكمبيوتر في وقت واحد. -
قصيرا ،فال يلزم سوى القليل من وقت وحدة المعالجة المركزية لكل مستخدم.
ً يميل إلى أن يكون
نظرا ألن النظام يقوم بتبديل وحدة المعالجة المركزية بسرعة من مستخدم /برنامج إلى آخر يتم إعطاء كل مستخدم انطباعًا
ً -
بأن لديه /لديها وحدة المعالجة المركزية الخاصة به /بها بينما في الواقع تتم مشاركة وحدة المعالجة المركزية الواحدة بين
العديد من المستخدمين.
تعدد البرمجة Multiprogramming
عند وجود برنامجين أو أكثر في الذاكرة في نفس الوقت تكون مشاركة المعالج تشير إلى البرمجة المتعددة .تفترض البرمجة
المتعددة وجود معالج واحد مشترك .تزيد البرمجة المتعددة من استخدام وحدة المعالجة المركزية عن طريق تنظيم الوظائف بحيث
يكون لدى وحدة المعالجة المركزية دائ ًما واحدًا لتنفيذه.
بمعنى اخر يمكن تحميل برامج متعددة في الذاكرة الرئيسية لتنفيذها في نظام متعدد البرمجة .قد يستخدم برنامج أو عملية واحدة
فقط وحدة المعالجة المركزية لتنفيذ التعليمات في وقت واحد ،بينما يجب على اآلخرين انتظار وقتهم .الهدف الرئيسي من استخدام
نظام متعدد البرامج هو التغلب على نقص استخدام وحدة المعالجة المركزية والذاكرة األساسية وإدارة موارد النظام بالكامل.
المكونات الرئيسية لنظام متعدد البرمجة هي نظام التحكم في اإلدخال /اإلخراج ومعالج األوامر والمنطقة المؤقتة ونظام الملفات.
المزايا Advantages
تمثل أنظمة الوقت الفعلي عادةً أنظمة مدمجة مخصصة .في مثل هذه األنظمة تقرأ أنظمة التشغيل عادة ً من بيانات المستشعر
وتتفاعل معها و يجب أن يضمن نظام التشغيل االستجابة لألحداث خالل فترات زمنية محددة لضمان األداء الصحيح.
تشير البيئة الموزعة إلى العديد من وحدات المعالجة المركزية المستقلة أو المعالجات في نظام الكمبيوتر.
( Spoolingو معناه التخزين المؤقت) هو اختصار للعمليات الطرفية المتزامنة .يشير التخزين المؤقت إلى وضع بيانات وظائف
االدخال /االخراج المختلفة في مخزن مؤقت .هذا المخزن المؤقت هو منطقة خاصة في الذاكرة أو القرص الصلب يمكن الوصول
إليها من قبل أجهزة االدخال واإلخراج Input/Output
➢ يتعامل نظام التشغيل مع التخزين المؤقت لبيانات جهاز اإلدخال /اإلخراج ألن األجهزة لها معدالت وصول مختلفة إلى
البيانات.
➢ يحافظ نظام التشغيل على المخزن المؤقت للتخزين المؤقت الذي يوفر محطة انتظار حيث يمكن للبيانات أن تستريح أثناء
اللحاق بالجهاز األبطأ.
➢ يحا فظ نظام التشغيل على الحساب المتوازي بسبب عملية التخزين المؤقت حيث يمكن لجهاز الكمبيوتر تنفيذ عمليات
االخال /االخراج بطريقة متوازية .يصبح من الممكن أن يقوم الكمبيوتر بقراءة البيانات من شريط وكتابة البيانات على
القرص والكتابة إلى طابعة شريط أثناء قيامه بمهمة الحوسبة.
Operating Systems
Lecture # 9
Department of Computer
4th Class
Process Schedulers
By
جدولة العملية Process schedulingهي نشاط مدير العملية الذي يتولى إزالة العملية الجارية من وحدة المعالجة المركزية
واختيار عملية أخرى على أساس إستراتيجية معينة.
وتعد جدولة العمليات جز ًءا أساسيًا من أنظمة تشغيل البرمجة المتعددة Multiprogramming operating systemsوتسمح
أنظمة التشغيل هذه بتحميل أكثر من عملية واحدة في الذاكرة القابلة للتنفيذ في وقت واحد ،وتشارك العملية المحملة وحدة المعالجة
المركزية باستخدام مضاعفة الوقت.
.1غير استباقي : Non-preemptiveهنا ال يمكن أخذ المورد resourceمن العملية حتى تكتمل العملية التنفيذ.
ويحدث تبديل الموارد عندما تنتهي العملية الجارية وتنتقل إلى حالة االنتظار Waiting
.2استباقية : Preemptiveهنا يخصص نظام التشغيل الموارد لعملية لفترة محددة من الوقت .أثناء تخصيص الموارد
،تنتقل العملية من حالة التشغيل Runningإلى حالة االستعداد Readyأو من حالة االنتظار Waitingإلى حالة
االستعداد .Readyيحدث هذا التبديل ألن وحدة المعالجة المركزية قد تعطي األولوية للعمليات األخرى وتستبدل العملية
بأولوية أعلى بالعملية الجارية.
يدير نظام التشغيل أنواعًا مختلفة من قوائم االنتظار لكل حالة من حاالت العملية .يتم أيضًا تخزين PCBالمتعلق بالعملية في قائمة
االنتظار من نفس الحالة .إذا تم نقل العملية من حالة إلى حالة أخرى ،فسيتم أيضًا إلغاء ربط PCBالخاص بها من قائمة االنتظار
المقابلة وإضافتها إلى قائمة انتظار الحالة األخرى التي يتم فيها االنتقال.
في البداية ،يتم تخزين جميع العمليات في قائمة انتظار المهام ويتم االحتفاظ بها في الذاكرة الثانوية ثم يقوم برنامج الجدولة طويلة
المدى (برنامج جدولة المهام) باختيار بعض المهام ووضعها في الذاكرة األساسية.
يتم االحتفاظ بقائمة االنتظار الجاهزة في الذاكرة األساسية .يقوم برنامج الجدولة قصير المدى باختيار المهمة من قائمة االنتظار
الجاهزة وإرسالها إلى وحدة المعالجة المركزية للتنفيذ.
عندما تحتاج العملية إلى بعض عمليات اإلدخال /اإلخراج إلكمال تنفيذها ،يقوم نظام التشغيل بتغيير حالة العملية من التشغيل إلى
االنتظار .ثم يتم تخزين ال PCBالمرتبط بالعملية في قائمة االنتظار التي سيستخدمها المعالج عندما تنتهي العملية من اإلدخال /
اإلخراج.
1 Running: When a new process is created, it enters into the system as in the running state.
2 Not Running: Processes that are not running are kept in queue, waiting for their turn to
execute. Each entry in the queue is a pointer to a particular process. Queue is implemented
by using linked list. Use of dispatcher is as follows. When a process is interrupted, that
process is transferred in the waiting queue. If the process has completed or aborted, the
process is discarded. In either case, the dispatcher then selects a process from the queue to
execute.
يتم االحتفاظ بالعمليات التي ال تعمل في قائمة االنتظار ،في انتظار دورها للتنفيذ .كل إدخال في قائمة االنتظار هو مؤشر
لعملية معينة .يتم تطبيق قائمة االنتظار باستخدام القائمة المرتبطة .عند مقاطعة عملية ما ،يتم نقل هذه العملية في قائمة
االنتظار .إذا اكتملت العملية أو تم إحباطها ،يتم تجاهل العملية .في كلتا الحالتين ،يقوم المرسل بعد ذلك بتحديد عملية من
قائمة االنتظار ليتم تنفيذها.
المجدوالت Schedulers
المجدوالت هي برنامج نظام خاص يتعامل مع جدولة العمليات بطرق مختلفة .مهمتهم الرئيسية هي تحديد الوظائف التي سيتم
تقديمها في النظام وتحديد العملية التي سيتم تشغيلها .المنظمون من ثالثة أنواع-
ويسمى أيضًا بجدولة المهام ويقوم المجدول طويل األجل بتحديد البرامج التي يتم قبولها في النظام للمعالجة .وكذلك يقوم بتحديد
العمليات من قائمة االنتظار وتحميلها في الذاكرة للتنفيذ .ثم يتم تحميل العملية في الذاكرة لجدولة وحدة المعالجة المركزية.CPU
الهدف األساسي لجدولة الوظائف job schedulerهو توفير مزيج متوازن من المهام ،مثل ربط اإلدخال /اإلخراج والمعالج.
كما يتحكم في درجة البرمجة المتعددة multiprogrammingإذا كانت درجة البرمجة المتعددة مستقرة ،فيجب أن يكون متوسط
معدل إنشاء العملية مساويًا لمتوسط معدل المغادرة للعمليات التي تغادر النظام.
ً
ضئيال كما ال تحتوي أنظمة تشغيل مشاركة الوقت على برنامج في بعض األنظمة ،قد ال يكون المجدول طويل المدى متا ًحا أو
جدولة طويل المدى وعندما تتغير حالة العملية من جديد إلى جاهز ،يكون هناك استخدام جدولة طويلة المدى.
ويسمى أيضًا باسم جدولة وحدة المعالجة المركزية CPU schedulerهدفها الرئيسي هو زيادة أداء النظام وفقًا لمجموعة
المعايير المختارة .إنه تغيير من حالة االستعداد ready stateإلى حالة تشغيل العملية running stateيحدد برنامج جدولة وحدة
المعالجة المركزية عملية من بين العمليات الجاهزة للتنفيذ ويخصص وحدة المعالجة المركزية إلحدى هذه العمليات.
يقوم المجدول على المدى القصير باتخاذ قرار بشأن العملية التي سيتم تنفيذها بعد ذلك .يعتبر المجدول على المدى القصير أسرع
من المجدول على المدى الطويل.
الجدولة متوسطة المدى هي جزء من المبادلة swappingيقوم بإزالة العمليات من الذاكرة ويقلل من درجة البرمجة المتعددة
. multiprogrammingان المجدول على المدى المتوسط هو المسؤول عن التعامل مع العمليات الخارجية المبادلة.
قد يتم تعليق العملية الجارية suspendedإذا قدمت طلب إدخال /إخراج وال يمكن للعمليات المعلقة إحراز أي تقدم نحو االنتهاء.
في هذه الحالة ،إلزالة العملية من الذاكرة وإفساح المجال spaceللعمليات األخرى ،يتم نقل العملية المعلقة إلى التخزين الثانوي
secondary storageتسمى هذه العملية بالمبادلة swappingويقال إن العملية يتم تبديلها أو طرحها swapped out or
rolled outوقد يكون التبادل ضروريًا لتحسين مزيج العملية.
Dr. Ahmed Khudhair Abbas
Computer Department
Process Schedulers 5
يُطلق على الوقت الذي تدخل فيه العملية إلى قائمة االنتظار الجاهزة ready queueبوقت الوصول.
يُطلق على إجمالي الوقت الذي تتطلبه وحدة المعالجة المركزية لتنفيذ العملية بأكملها اسم Burst Time.هذا ال يشمل وقت
االنتظار waiting time
يسمى الوقت الذي تدخل فيه العملية في حالة اإلكمال completion stateأو الوقت الذي تكمل فيه العملية تنفيذها بوقت االنتهاء.
يُطلق على إجمالي الوقت الذي تقضيه العملية من وصولها إلى اكتمالها بوقت التحول.
يُطلق على إجمالي الوقت الذي تنتظره العملية حتى يتم تعيين وحدة المعالجة المركزية ) (CPUلها بوقت االنتظار.
يسمى الفرق بين وقت الوصول arrival timeوالوقت الذي تحصل فيه العملية على وحدة المعالجة المركزية ألول مرة بوقت
االستجابة.
تبديل السياق هو آلية لتخزين واستعادة حالة أو سياق وحدة المعالجة المركزية في كتلة التحكم في العملية PCBبحيث يمكن
استئناف تنفيذ العملية من نفس النقطة في وقت الحق .باستخدام هذه التقنية ،يتيح مبدل السياق عمليات متعددة لمشاركة وحدة
معالجة مركزية واحدة ويعد تبديل السياق جز ًءا أساسيًا من ميزات نظام التشغيل متعدد المهام multitasking operating
.system
عندما يقوم المجدول بتحويل وحدة المعالجة المركزية من تنفيذ عملية إلى أخرى ،يقوم مبدل السياق بحفظ محتوى جميع سجالت
المعالج processor registersللعملية التي تتم إزالتها من وحدة المعالجة المركزية ،في واصف العملية الخاص بها ويتم تمثيل
نظرا ألن أجهزة الكمبيوتر
سياق العملية في كتلة التحكم في العملية PCBويمكن أن يؤثر تبديل السياق بشكل كبير على األداء ً
الحديثة بها الكثير من السجالت العامة وسجالت الحالة التي يتعين حفظها.
الشكل أعاله يمثل تنفيذ عمليتين ( ) Process 1 and Process 2داخل وحدة المعالجة المركزية CPUوالية التبديل بينهما وكذلك يبين
الشكل عملية حفظ وتحميل ال PCBالخاصة بكل عملية
عملية الجدولة من أهم الخصائص في تشغيل العمليات حيث ينظم دخول العمليات المراد تنفيذها إلى وحده المعالجة
المركزية ) (CPUوتعتمد هذه العملية على العديد من المعايير التي تحدد من هي العملية التي يجب تنفيذها و من أهمها:
.5زمن االستجابة : Response timeهو الوقت الذي يحتاجه البرنامج لبدأ فعليا .مثال توضيحي /منذ الضغط على البرنامج
ضغطا ً مزدوج إلى أن يعمل البرنامج فعليا.
هذه المفاهيم تمكنا من اختيار أفضل طريقة للجدولة ولكن من الصعب تحقيقها جميعا
حتى تصل وحده المعالجة المركزية إلى الكمال البد من توفر التالي:
:Minimize latencyوهو تقليل تأخر زمن االستجابة واكتمال تنفيذ البرنامج. •
:Maximize throughputوهو زيادة الوقت الذي يتم تنفيذ العمليات خالله •
:Maximize utilizationهو زيادة االستفادة من وحدة المعالجة المركزية وإبقائها مشغولة طوال الوقت . •
:Fairnessوهو اإلنصاف بين البرامج حيث يسمح لجميع البرامج من استخدام وحدة المعالجة المركزية وال تكون •
الصالحيات جميعها لبرنامج واحد.
Operating Systems
Lecture # 10
Department of Computer
4th Class
By
في أنظمة Uni-Programmingمثل ، MS DOSعندما تنتظر إحدى العمليات إجراء أي عملية إدخال /إخراج ،تظل وحدة
المعالجة المركزية معطلة .هذا عبء ألنه يضيع الوقت ويسبب مشكلة الجوع Starvationومع ذلك في أنظمة البرمجة المتعددة
ال تبقى وحدة المعالجة المركزية متوقفة أثناء وقت انتظار العملية وتبدأ في تنفيذ العمليات األخرى ويجب أن يحدد نظام التشغيل
العملية التي سيتم منحها وحدة المعالجة المركزية . CPU
في أنظمة البرمجة المتعددة Multiprogramming systemsيقوم نظام التشغيل بجدولة العمليات على وحدة المعالجة المركزية
لتحقيق أقصى استفادة منها ويسمى هذا اإلجراء جدولة وحدة المعالجة المركزية ويستخدم نظام التشغيل خوارزمية جدولة مختلفة
لجدولة العمليات.
هناك العديد من الخوارزميات التي يستخدمها نظام التشغيل لجدولة العمليات على المعالج بطريقة فعالة والغرض من خوارزمية
الجدولة هو:
يقوم برنامج جدولة العمليات بجدولة عمليات مختلفة ليتم تخصيصها لوحدة المعالجة المركزية بنا ًء على خوارزميات جدولة
معينة .هناك ست خوارزميات شائعة لجدولة العمليات وهي:
هذه الخوارزميات إما غير استباقية أو استباقية non-preemptive or preemptiveتم تصميم الخوارزميات غير
االستباقية non-preemptiveبحيث بمجرد دخول العملية إلى حالة التشغيل ال يمكن ايقافها حتى تكمل الوقت المخصص لها
وفي حين أن الجدولة االستباقية preemptiveتعتمد على األولوية حيث قد يستبق المجدول عملية تشغيل ذات أولوية منخفضة
في أي وقت عندما تكون األولوية عالية تدخل العملية في حالة جاهزة.
تقوم خوارزمية جدولة من يأتي أوالً يخدم أوالً ) (FCFSبجدولة الوظائف وفقًا لوقت وصولها .ستحصل المهمة التي تأتي أوالً
في قائمة االنتظار الجاهزة على وحدة المعالجة المركزية أوالً .كلما قل وقت وصول الوظيفة ،زادت سرعة حصول الوظيفة
على وحدة المعالجة المركزية .قد تتسبب جدولة FCFSفي حدوث مشكلة الجوع إذا كان وقت االندفاع للعملية األولى هو األطول
بين جميع الوظائف ومن اهم مزايا هذه الطريقة البساطة وسهولة التطبيق ومن يأتي أوال يخدم أوال اما من اهم العيوب لهذه
الخوارزمية فهي:
. 1طريقة الجدولة ليست وقائية non-preemptiveوسوف تستمر العملية حتى االكتمال.
. 2بسبب الطبيعة غير الوقائية للخوارزمية قد تحدث مشكلة الجوع Starvation
نظرا ألن متوسط وقت االنتظار أعلى مقارنة بخوارزميات الجدولة
. 3على الرغم من سهولة تنفيذها إال أنها ضعيفة في األداء ً
األخرى.
مثال Example
في الجدول التالي ،توجد 5عمليات بمعرف العملية P0و P1و P2و P3و P4.تصل P0في الوقت P1 ، 0في الوقت ، 1
P2في الوقت P3 ، 2تصل في الوقت 3وتصل العملية P4في الوقت 4في قائمة االنتظار الجاهزة ويتم حساب وقت االستجابة
ووقت االنتظار باستخدام الصيغة التالية.
يتم تحديد متوسط وقت االنتظار من خالل جمع وقت االنتظار المعني لجميع العمليات وقسمة المجموع على إجمالي عدد العمليات.
)(Gantt chart
قد يعاني FCFSمن تأثير المواكبة إذا كان وقت تنفيذ المهمة األولى هو األعلى بين الجميع .كما هو الحال في الحياة الواقعية إذا
كانت القافلة تمر عبر الطريق فقد يتم حظر األشخاص اآلخرين حتى تمر بشكل كامل ويمكن محاكاة ذلك في نظام التشغيل أيضًا.
إذا حصلت وحدة المعالجة المركزية على عمليات وقت الوصول األعلى في الطرف األمامي لقائمة االنتظار الجاهزة ،فقد يتم
حظر عمليات وقت الوصول المنخفض مما يعني أنها قد ال تحصل على وحدة المعالجة المركزية مطلقًا إذا كانت المهمة في التنفيذ
تستغرق وقتًا طويالً للغاية .وهذا ما يسمى تأثير المواكبة أو الجوع .Convoy effect or Starvation
Example
In the Example, We have 3 processes named as P1, P2 and P3. The Burt Time of process
P1 is highest. The Turnaround time and the waiting time in the following table, are
calculated by the formula:
في السيناريو األول ،تصل العملية P1إلى المرتبة األولى في قائمة االنتظار بالرغم من ذلك فان وقت وصول العملية هو األعلى
نظرا ألن خوارزمية الجدولة التي نتبعها هي ، FCFSفإن وحدة المعالجة المركزية ستنفذ العملية P1أوالً.
بين الجميعً .
Dr. Ahmed Khudhair Abbas
Computer Department
Operating System Scheduling Algorithms 5
في هذا الجدول سيكون متوسط وقت انتظار النظام مرتف ًعا جدًا ويتعين على العمليات األخرى P2و P3انتظار دورها لمدة 40
وحدة زمنية على الرغم من أن وقت وصولها منخفض للغاية .هذا الجدول يعاني من الجوع starvation
في السيناريو الثاني إذا كانت العملية P1قد وصلت إلى آخر قائمة االنتظار والعمليات األخرى P2و P3في وقت سابق ،فلن
تكون مشكلة الجوع موجودة.
يوضح المثال التالي االنحراف في أوقات االنتظار لكال السيناريوهات على الرغم من أن طول الجدول الزمني هو نفسه 44وحدة
،إال أن وقت االنتظار سيكون أقل في هذا الجدول.
تقوم خوارزمية جدولة SJFبجدولة العمليات وفقًا لوقت وصولها .في جدولة ، SJFستتم جدولة العملية ذات أقل وقت تنفيذ من
بين قائمة العمليات المتاحة في قائمة االنتظار الجاهزة ومن اهم مزايا هذه الطريقة هو تحقيقها الحد األقصى من اإلنتاجية والحد
األدنى لمتوسط االنتظار ووقت االستجابة .اما عيوبها فقد تعاني من مشكلة الجوع . Starvation
Example
In the following example, there are five jobs named as P1, P2, P3, P4 and P5. Their arrival time
and burst time are given in the table below.
كما نالحظ لم تصل أي عملية في الوقت 0وبالتالي ستكون هناك فتحة فارغة في مخطط جانت من الوقت 0إلى ( 1الوقت الذي
تصل فيه العملية األولى) ووفقًا للخوارزمية ،يقوم نظام التشغيل بجدولة العملية التي لها أقل وقت تنفيذ بين العمليات المتاحة في
قائمة االنتظار الجاهزة.
حتى اآلن ،لدينا عملية واحدة فقط في قائمة االنتظار الجاهزة ومن ثم سيقوم المجدول بجدولة ذلك إلى المعالج بغض النظر عن
وقت تنفيذه وسيتم تنفيذ هذا حتى 8وحدات زمنية .حتى ذلك الحين ،وصلنا ثالث عمليات أخرى إلى قائمة االنتظار الجاهزة،
ومن ثم سيختار المجدول العملية بأقل وقت للتنفيذ.
نظرا ألنه يحتوي على أقل وقت تنفيذ بين جميع العمليات المتاحة
من بين العمليات الواردة في الجدول ،سيتم تنفيذ P3بعد ذلك ً
وهذه هي الطريقة التي سيستمر بها اإلجراء في خوارزمية جدولة أقصر مهمة أوالً(SJF).
خوارزمية جدولة أقصر وقت متبقي أوالً )Shortest Remaining Time First (SRTF
هذه الخوارزمية هي النسخة االستباقية preemptive version of SJF schedulingلجدولة SJF.في SRTFويمكن
إيقاف تنفيذ العملية بعد فترة زمنية معينة .عند وصول كل عملية يقوم برنامج الجدولة قصير المدى بجدولة العملية بأقل وقت
اندفاع متبقي بين قائمة العمليات المتاحة والعملية الجارية وبمجرد توفر جميع العمليات في قائمة االنتظار الجاهزة ،لن يتم إجراء
أي إجراءات استباقية وستعمل الخوارزمية كجدولة SJF.يتم حفظ سياق العملية في كتلة التحكم في العملية عند إزالة العملية من
التنفيذ ويتم جدولة العملية التالية .يتم الوصول إلى هذا PCBعند التنفيذ التالي لهذه العملية.
In this Example, there are five jobs P1, P2, P3, P4, P5 and P6. Their arrival time and burst time
are given below in the table.
The Gantt chart is prepared according to the arrival and burst time given in the table.
نظرا ألنه في الوقت ، 0فإن العملية الوحيدة المتاحة هي P1مع وقت اندفاع وحدة المعالجة المركزية .8هذه هي العملية
ً .1
الوحيدة المتاحة في القائمة وبالتالي تمت جدولتها.
نظرا ألن الخوارزمية التي نستخدمها هي SRTFوهي خوارزمية استباقية ،يتم
.2تصل العملية التالية إلى الوحدة الزمنية ً .1
إيقاف التنفيذ الحالي ويتحقق المجدول من العملية بأقل وقت للتنفيذ.
حتى اآلن ،هناك عمليتان متاحتان في قائمة االنتظار الجاهزة .نفذ نظام التشغيل P1لوحدة زمنية واحدة حتى اآلن ؛ وقت .3
التنفيذ المتبقي لـ P1هو 7وحدات .وقت تنفيذ العملية P2هو 4وحدات .ومن ثم تمت جدولة العملية P2على وحدة المعالجة
المركزية وفقًا للخوارزمية.
.4تصل العملية التالية P3إلى الوحدة الزمنية .2في هذا الوقت ،يتم إيقاف تنفيذ العملية P3ويتم البحث في العملية ذات أقل
نظرا ألن العملية P3تحتوي على وحدتين من الوقت ،فسيتم منحها األولوية على اآلخرين.
وقت للتنفيذ المتبقيً .
.5تصل العملية التالية P4إلى الوحدة الزمنية .3عند هذا الوصول ،سيوقف المجدول تنفيذ P4ويتحقق من العملية التي لديها
أقل وقت للتنفيذ بين العمليات المتاحة (P1و P2و P3و P4). P1و P2لهما الوقت المتبقي 7وحدات و 3وحدات على
نظرا ألن كالهما متساويان ،فسيتم إجراء الجدولة وفقًا لوقت
ً التواليP3 .و P4لهما وقت متبقي 1وحدة لكل منهما.
وصولهما .يصل P3في وقت أبكر من P4وبالتالي سيتم جدولته مرة أخرى.
.6تصل العملية التالية P5إلى الوحدة الزمنية .4حتى هذا الوقت ،أكملت العملية P3تنفيذها ولم تعد موجودة في القائمة.
سيقارن المجدول وقت االندفاع المتبقي لجميع العمليات المتاحة .بما أن زمن التنفيذ للعملية P4هو 1وهو األقل من بين كل
ذلك ،فسيتم جدولته.
.7تصل العملية التالية P6إلى الوحدة الزمنية ، 5حتى هذا الوقت ،أكملت العملية P4تنفيذها .لدينا 4عمليات متاحة حتى
اآلن ،وهي ) P1 (7و ) P2 (3و ) P5 (3و P6 (2).وقت التنفيذ لـ P6هو األقل بين جميع األوقات ،ومن ثم تمت جدولة
،P6.أصبحت جميع العمليات متاحة ،وبالتالي ستعمل الخوارزمية اآلن مثل SJF.سيتم تنفيذ P6حتى اكتماله ثم سيتم
جدولة العملية مع أقل وقت متبقي.
بمجرد وصول جميع العمليات ،ال يتم إجراء أي إجراءات وقائية وستعمل الخوارزمية مثلSJF.
Example: Given the arrival time and burst time of 3 jobs in the table below. Calculate the
Average waiting time of the system.
توجد ثالث وظائف P1و P2و P3.يصل P1في الوحدة الزمنية 0؛ سيتم جدولته أوالً في الوقت حتى وصول العملية التالية.
يصل P2في وحدة زمنية واحدة .وقت تنفيذها هو 4وحدات وهو األقل بين الوظائف في قائمة االنتظار .ومن ثم سيتم جدولتها
بعد ذلك وفي الوقت ، 2سيصل P3مع وقت تنفيذ .9حيث أن وقت التنفيذ المتبقي لـ P2هو 3وحدات وهي األقل من بين
نظرا ألن جميع الوظائف قد وصلت ،فلن يتم إجراء أي
ً الوظائف المتاحة .ومن ثم سيستمر المعالج في تنفيذه حتى اكتماله.
إجراءات استباقية اآلن وسيتم تنفيذ جميع الوظائف حتى االنتهاء وفقًا لـ SJF.
تعد خوارزمية جدولة Round Robinواحدة من أكثر خوارزمية الجدولة شيوعًا والتي يمكن تنفيذها بالفعل في معظم أنظمة
التشغيل .هذه هي النسخة االستباقية Preemptive versionمن جدولة من يأتي أوالً يُخدم أوالً .تركز الخوارزمية على مشاركة
الوقت .في هذه الخوارزمية ،يتم تنفيذ كل عملية بطريقة دورية .يتم تحديد شريحة زمنية معينة في النظام تسمى كمية الوقت
Quantumيتم تخصيص وحدة المعالجة المركزية لكل عملية موجودة في قائمة االنتظار الجاهزة لهذا الوقت الكمي ،إذا اكتمل
تنفيذ العملية خالل ذلك الوقت ،فستنتهي العملية وإال ستعود العملية إلى قائمة االنتظار الجاهزة Ready queueوتنتظر حتى
يكتمل الدور التالي للتنفيذ.
مزايا Advantages
يمكن أن يكون قابالً للتنفيذ فعليًا في النظام ألنه ال يعتمد على وقت التنفيذ •
ال يعاني من مشكلة الجوع starvation •
تحصل جميع الوظائف على تخصيص ثابت لوحدة المعالجة المركزية. •
سلبيات Disadvantages
P0 (0-0) + (12-3) = 9
P1 (3-1) = 2
P2 6-2) + (15-9) = 10
P3 (9-3) + (18-12) = 12
RR Scheduling Example
In the following example, there are six processes named as P1, P2, P3, P4, P5 and P6. Their
arrival time and burst time are given below in the table. The time quantum of the system
is 4 units.
According to the algorithm, we have to maintain the ready queue and the Gantt chart.
The structure of both the data structures will be changed after every scheduling.
GANTT chart
The completion time, Turnaround time and waiting time will be calculated as shown in
the table below.
As, we know,
في جدولة األولوية ،يوجد رقم أولوية معين لكل عملية .في بعض األنظمة كلما انخفض الرقم زادت األولوية .بينما في الحاالت
األخرى كلما زاد الرقم زادت األولوية ويتم إعطاء العملية ذات األولوية األعلى بين العمليات المتاحة وحدة المعالجة المركزية.
ويوجد نوعان من خوارزمية جدولة األولوية .أحدهما هو جدولة األولوية االستباقية Preemptiveبينما اآلخر هو جدولة
األولوية غير االستباقية Non-Preemptive
قد يتغير أو ال يتغير رقم األولوية المعين لكل عملية .إذا لم يتغير رقم األولوية من تلقاء نفسه طوال العملية ،فإنه يسمى أولوية
ثابتة Static priorityبينما إذا استمر في تغيير نفسه على فترات منتظمة ،فإنه يسمى األولوية الديناميكية Dynamic
priority
Example
In the Example, there are 7 processes P1, P2, P3, P4, P5, P6 and P7. Their priorities, Arrival
Time and burst time are given in the table.
يمكننا إعداد مخطط جانت وفقًا لجدولة األولوية غير االستباقي Non Preemptive.تصل العملية P1في الوقت 0مع وقت
نظرا لعدم وصول أي عملية أخرى حتى اآلن ،سيقوم نظام التشغيل بجدولتها على الفور وفي
تنفيذ 3وحدات ورقم األولوية ً .2
نظرا ألن أولوية P3هي ، 3فإن وحدة المعالجة المركزية ستنفذ
الوقت نفسه ،تم تنفيذ P1ووصلت عمليتان أخريان P2و ً P3.
P3على P2.وفي الوقت نفسه تنفيذ ، P3تتوفر جميع العمليات في قائمة االنتظار الجاهزة .ستعطى األولوية للعملية ذات أقل
نظرا ألن P6له رقم أولوية تم تعيينه على أنه ، 4فسيتم تنفيذه بعد P3مباشرة ً .وبعد ، P6يكون P4هو أقل رقم
رقم أولويةً .
نظرا ألن جميع الوظائف متوفرة في قائمة االنتظار الجاهزة ،
أولوية بين العمليات المتاحة ؛ سيتم تنفيذه طوال وقت التنفيذ و ً
فسيتم تنفيذ جميع الوظائف وفقًا ألولوياتها .إذا كانت هناك وظيفتان لهما رقم أولوية مماثل مخصص لهما ،فسيتم تنفيذ المهمة ذات
أقل وقت وصول.
From the GANTT Chart prepared, we can determine the completion time of every process.
The turnaround time, waiting time and response time will be determined.
في جدولة األولوية االستباقية في وقت وصول العملية في قائمة االنتظار الجاهزة تتم مقارنة أولويتها مع أولوية العمليات األخرى
الموجودة في قائمة االنتظار الجاهزة وكذلك مع العملية التي يتم تنفيذها بواسطة وحدة المعالجة المركزية في تلك المرحلة من
الوقت سيتم إعطاء وحدة المعالجة المركزية التي لها أولوية قصوى بين جميع العمليات المتاحة.
في الجدولة األولوية االستباقية يمكن،يتمثل االختالف بين جدولة األولوية االستباقية وجدولة األولوية غير االستباقية في أنه
.إيقاف العملية التي يتم تنفيذها عند وصول عملية ذات أولوية أعلى
مما يعني أن المهمة، ستعمل الخوارزمية كجدولة أولوية غير استباقية،بمجرد توفر جميع الوظائف في قائمة االنتظار الجاهزة
المجدولة ستعمل حتى االنتهاء ولن يتم إجراء أي إجراءات استباقية
Example: There are 7 processes P1, P2, P3, P4, P5, P6 and P7 given. Their respective priorities,
Arrival Times and Burst times are given in the table below.
GANTT chart
P1 P2 P3 P5 P4 P2 P7 P6
0 1 2 5 10 16 22 30 45
The Completion Time of each process is determined with the help of GANTT chart. The
turnaround time and the waiting time can be calculated by the following formula.
Operating Systems
Lecture # 11
Department of Computer
4th Class
By
Process switching needs interaction Thread switching does not need to interact
2
with operating system. with operating system.
In multiple processes each process One thread can read, write or change
6
operates independently of the others. another thread's data.
الخيوط التي يديرها المستخدم: User Level Threads الخيوط على مستوى المستخدم •
أحد نواة نظامkernel خيوط إدارة نظام التشغيل التي تعمل على: Kernel Level Threads الخيوط على مستوى النواة •
.التشغيل
في هذه الحالة ،نواة إدارة الخيط ليست على علم بوجود الخيوط وتحتوي مكتبة الخيوط على كود إلنشاء وإتالف الخيوط ،
ولتمرير الرسائل والبيانات بين الخيوط ولجدولة تنفيذ الخيوط ولحفظ واستعادة سياقات الخيط .يبدأ التطبيق بخيط واحد
مزايا Advantages
سلبيات Disadvantages
في نظام تشغيل نموذجي يتم حظر معظم استدعاءات النظام. •
Multithreaded applicationاالستفادة من المعالجة المتعددة ال يمكن للتطبيق متعدد الخيوط •
multiprocessing
في هذه الحالة ،تتم إدارة الخيط بواسطة Kernel.ال يوجد رمز إدارة الخيط في منطقة التطبيق application areaويتم
دعم خيوط Kernelمباشرة بواسطة نظام التشغيل ويمكن برمجة أي تطبيق ليكون متعدد الخيوط.
يتم دعم جميع Kernel threadsداخل التطبيق في عملية واحدة single processويحتفظ Kernelبمعلومات السياق
context informationللعملية ككل وللخيوط الفردية داخل العملية .ويتم إجراء الجدولة بواسطة Kernelعلى أساس الخيط
وينفذ Kernelإنشاء الخيوط وجدولتها وإدارتها في مساحة Kernel.تكون خيوط Kernelبشكل عام أبطأ في اإلنشاء واإلدارة
من خيوط المستخدم.
مزايا Advantages
يمكن لـ Kernelجدولة خيوط متعددة في نفس الوقت من نفس العملية على عمليات متعددة. •
إذا تم حظر خيط واحد في عملية ما ،يمكن لـ Kernelجدولة مؤشر ترابط آخر لنفس العملية. •
يمكن أن تكون إجراءات Kernelنفسها ذاتخيوط متعددة. •
سلبيات Disadvantages
توفر بعض أنظمة التشغيل خيط مشترك على مستوى المستخدم وإمكانية خيط على مستوى . Kernel.في النظام المدمج
combined systemيمكن تشغيل العديد من الخيوط داخل نفس التطبيق بالتوازي على معالجات متعددة وال يلزم أن يؤدي
blocking system callإلى حظر العملية بأكملها وهناك ثالث نماذج من متعدد الخيوط استدعاء نظام الحظر
Multithreadingهي :
يقوم نموذج متعدد إلى متعدد بتعدد إرسال أي عدد من خيوط المستخدم user threadsعلى عدد مسا ٍو أو أصغر من kernel
threads
يُظهر الرسم التخطيطي التالي نموذج many-to-many threading modelحيث يتم تعدد إرسال 6خيوط على مستوى
المستخدم باستخدام 6خيوط على مستوى kernel.في هذا النموذج ،يمكن للمطورين إنشاء أكبر عدد ممكن من خيوط المستخدم
حسب الضرورة ويمكن أن تعمل خيوط Kernelالمقابلة بالتوازي على جهاز متعدد المعالجات Multiprocessorويوفر هذا
النموذج أفضل دقة في التزامن وعندما ينفذ خيط استدعاء نظام حظر ،Block systemيمكن للنواة جدولة خيط آخر للتنفيذ.
يعيّن نموذج متعدد إلى واحد العديد من الخيوط على مستوى المستخدم إلى خيط واحد على مستوى Kernel.وتتم إدارة الموضوع
في مساحة المستخدم بواسطة مكتبة الخيط .thread libraryعندما يقوم الخيط بإجراء استدعاء لنظام الحظر ،سيتم حظر
العملية بأكملها .يمكن لخيط واحد فقط الوصول إلى Kernelفي كل مرة ،لذلك ال يمكن تشغيل العديد من الخيوط بالتوازي على
المعالجات المتعددة.
إذا تم تنفيذ مكتبات الخيوط على مستوى المستخدم في نظام التشغيل بطريقة ال يدعمها النظام ،عندئ ٍذ تستخدم خيوط Kernel
متعدد الى واحد many-to-one
User-level threads are faster to create Kernel-level threads are slower to create
1
and manage. and manage.
User-level thread is generic and can run Kernel-level thread is specific to the
3
on any operating system. operating system.
Operating Systems
Lecture # 12
Department of Computer
4th Class
في حالة تجنب الجمود ،يتحقق نظام التشغيل مما إذا كان النظام في حالة آمنة أو في حالة غير آمنة في كل خطوة يقوم بها نظام
التشغيل .وتستمر العملية حتى يصبح النظام في حالة آمنة وبمجرد انتقال النظام إلى الحالة غير اآلمنة ،يتعين على نظام التشغيل
التراجع خطوة واحدة .بكلمات بسيطة ،يقوم نظام التشغيل بمراجعة كل تخصيص حتى ال يتسبب التخصيص في حدوث طريق
مسدود في النظام.
يسمح هذا النهج للعمليات بالوصول إلى طريق مسدود ثم التحقق بشكل دوري مما إذا كان الجمود قد حدث في النظام أم ال .في
حالة حدوث ذلك ،فإنه يطبق بعض طرق االسترداد على النظام للتخلص من الجمود.
الستعادة النظام من الجمود ،إما أن يأخذ نظام التشغيل بعين االعتبار الموارد أو العمليات
يمكننا انتزاع أحد الموارد من مالك المورد (العملية) وإعطائها للعملية األخرى مع توقع أنها ستكمل التنفيذ وستطلق هذا المورد
أمرا صعبًا بعض الشيء.قريبًا ولكن سيكون اختيار المورد الذي سيتم انتزاعه ً
يمر النظام عبر حاالت مختلفة للوصول إلى حالة الجمود .يمكن لنظام التشغيل إعادة النظام إلى الحالة اآلمنة السابقة .لهذا الغرض
،يحتاج نظام التشغيل إلى تنفيذ فحص التأشير في كل حالة .في اللحظة التي نصل فيها إلى طريق مسدود ،سنقوم بالتراجع عن
جميع التخصيصات للوصول إلى الحالة اآلمنة السابقة.
يمكن أن يؤدي قتل العملية إلى حل مشكلتنا ولكن الشاغل األكبر هو تحديد العملية التي يجب قتلها .بشكل عام ،يقتل نظام التشغيل
العملية التي قامت بأقل قدر من العمل حتى اآلن.
هذا ليس نه ًجا قابالً لإليحاء ولكن يمكن تنفيذه إذا أصبحت المشكلة خطيرة للغاية .سيؤدي قتل جميع العمليات إلى عدم الكفاءة في
النظام ألن جميع العمليات سيتم تنفيذها مرة أخرى من البداية.
إذا تمكنا من انتهاك أحد الشروط األربعة الضرورية وعدم السماح لها بالحدوث معًا ،فيمكننا منع هذا الجمود ويمكننا منع كل
شرط من شروط الجمود Deadlockكالتالي :
القسم المتبادل من وجهة نظر الموارد هو حقيقة أنه ال يمكن استخدام المورد من خالل أكثر من عملية واحدة في وقت واحد وهو
أمر عادل بما فيه الكفاية ولكن هذا هو السبب الرئيسي وراء الجمود .إذا كان من الممكن استخدام أحد الموارد بواسطة أكثر من
عملية في نفس الوقت ،فلن تنتظر العملية أبدًا أي مورد.
ومع ذلك ،إذا تمكنا من ادارة الموارد بالتصرف بطريقة االستبعاد المتبادل للطرفين ،فيمكن منع هذا الجمود
يكمن شرط المسك واالنتظار عندما تحتفظ العملية بمورد وتنتظر بعض الموارد األخرى إلكمال مهمتها .يحدث Deadlock
ألنه يمكن أن يكون هناك أكثر من عملية تحتفظ بمورد واحد وتنتظر اآلخر في الترتيب الدوري ومع ذلك ،علينا أن نكتشف آلية
ما من خاللها ال تحتفظ العملية بأي مورد أو ال تنتظ ر .هذا يعني أنه يجب تعيين جميع الموارد الالزمة للعملية قبل بدء التنفيذ.
يجب أال تنتظر العملية أي مورد بمجرد بدء التنفيذ.
يمكن تنفيذ ذلك عمليًا إذا كانت العملية تعلن عن جميع الموارد في البداية .ومع ذلك ،يبدو هذا عمليًا جدًا ولكن ال يمكن إجراؤه
في نظام الكمبيوتر ألن العملية ال يمكنها تحديد الموارد الالزمة في البداية والعملية هي مجموعة التعليمات التي يتم تنفيذها بواسطة
وحدة المعالجة المركزية .قد تتطلب كل تعليمات موارد متعددة في أوقات متعددة .ال يمكن إصالح الحاجة من خالل نظام التشغيل.
وعمليا هذا غير ممكن وكذلك تزداد احتمالية الجوع بسبب حقيقة أن بعض العمليات قد تحتفظ بمورد لفترة طويلة جدًا.
ينشأ الجمود بسبب حقيقة أنه ال يمكن إيقاف العملية بمجرد أن تبدأ .ومع ذلك ،إذا أخذنا المورد بعيدًا عن العملية التي تسبب
الجمود ،فيمكننا منع الجمود .هذا ليس نه ًجا جيدًا على اإلطالق ألنه إذا أخذنا موردًا يتم استخدامه من قبل العملية ،فقد يصبح كل
العمل الذي قام به حتى اآلن متضارب او غير منسجم .
ضع في اعتبارك أن الطابعة قيد االستخدام في أي عملية .إذا أخذنا الطابعة بعيدًا عن تلك العملية وقمنا بتعيينها إلى عملية أخرى
،فقد تصبح جميع البيانات التي تمت طباعتها غير متسقة وغير فعالة وأيضًا حقيقة أن العملية ال يمكن بدء الطباعة مرة أخرى
من حيث تركت مما يؤدي إلى األداء عدم الكفاءة.
النتهاك االنتظار الدائري ،يمكننا تعيين رقم أولوية لكل مورد .ال يمكن أن تطلب العملية موردًا أقل أولوية .هذا يضمن أنه ال
يمكن لعملية واحدة أن تطلب موردًا يتم استخدامه بواسطة عملية أخرى ولن يتم تشكيل أي دورة.
الرسم البياني لتخصيص الموارد هو تمثيل تصويري لحالة النظام .كما يوحي اسمه ،الرسم البياني لتخصيص الموارد هو
المعلومات الكاملة حول جميع العمليات التي تحتفظ ببعض الموارد أو تنتظر بعض الموارد ويحتوي أيضًا على معلومات حول
جميع الموارد سواء كانت متاحة أو مستخدمة بواسطة العمليات وفي الرسم البياني لتخصيص الموارد ،يتم تمثيل العملية بدائرة
بينما يتم تمثيل المورد بمستطيل.
الحواف في RAGهي أيضًا من نوعين ،أحدهما يمثل مهمة واآلخر يمثل انتظار عملية لمورد .ويتم عرض المورد على أنه
مخصص لعملية ما إذا تم إرفاق ذيل السهم بالمورد وتم إرفاق الرأس بعملية .وتظهر العملية على أنها انتظار لمورد إذا كان ذيل
السهم مرتب ً
طا بالعملية بينما يشير الرأس نحو المورد .كما في الرسم ادناه
Example
Let’s consider 3 processes P1, P2 and P3, and two types of resources R1 and R2. The resources
are having 1 instance each. According to the graph, R1 is being used by P1, P2 is holding R2 and
waiting for R1, P3 is waiting for R1 as well as R2. The graph is deadlock free since no cycle is
being formed in the graph.
The following example contains three processes P1, P2, P3 and three resources R2, R2, R3. All
the resources are having single instances each.
If we analyze the graph then we can find out that there is a cycle formed in the graph since the
system is satisfying all the four conditions of deadlock.
Operating Systems
Lecture # 13
Department of Computer
4th Class
Process Synchronization in OS
مقدمة Introductioan
نقصد بالتوازي تنفيذ أكثر من عملية في وقت واحد ،وقد تكون العمليات المتوازية مستقلة عن بعضها البعض processes
independentأو متعاونة مع بعضها البعض ،processes cooperativeمثال قد نقوم بتشغيل محرر النصوص
WinWordلنكتب عليه ،ولنستمع إلى مادة صوتية بواسطة مشغل الوسائط ، player mediaويكون مستقلة عن بعضها
البعض .المتصفح ينزل ملفات من االنترنت ،هذه العمليات تنفذ بالتوازي في وقت واحد
التوازي قد يطبق على مستوى العمليات processes concurrentأو على مستوى الخيوط threads concurrent
على أساس المزامنة ،يتم تصنيف العمليات على أنها واحدة من النوعين التاليين:
• العملية المستقلة :Independent Processال يؤثر تنفيذ عملية واحدة على تنفيذ العمليات األخرى.
• العملية التعاونية :Cooperative Processعملية يمكن أن تؤثر أو تتأثر بالعمليات األخرى التي يتم تنفيذها في النظام.
تنشأ مشكلة مزامنة العملية في حالة العملية التعاونية أيضًا بسبب مشاركة الموارد في العمليات التعاونية .حيث عندما تتعاون
عمليتان أو أكثر مع بعضهما البعض ،يجب الحفاظ على ترتيب تنفيذها وإال فقد يكون هناك تعارض في تنفيذها ويمكن إنتاج
مخرجات غير مناسبة .والعملية التعاونية Cooperative processهي العملية التي يمكن أن تؤثر على تنفيذ عملية أخرى أو
يمكن أن تتأثر بتنفيذ عملية أخرى وتحتاج هذه العمليات إلى أن تكون متزامنة بحيث يمكن ضمان ترتيب تنفيذها.
Process يُعرف اإلجراء المتضمن في الحفاظ على الترتيب المناسب لتنفيذ العمليات التعاونية باسم مزامنة العملية
Synchronizationوهناك العديد من آليات المزامنة التي يتم استخدامها لمزامنة العمليات.
وبمعنى اخر فان مزامنة العمليات البرمجية تهتم بالسياق التالي :عندما يكون لدينا مورد في الحاسوب يتم الوصول له من عدة
عمليات في نفس الوقت ،في هذه الحالة ولتجنب حدوث أخطاء وصراع على الموارد يتم تنظيم آلية الوصول للمورد عن طريق
نظام التشغيل وبعض الخوارزميات التي تهتم بإعطاء أولويات لمهام على أخرى ..وتقوم بتنظيم الدور للوصول لهذه الموارد
بين العمليات.
تقوم معظم عمليات المزامنة في حالة الوصول لمقاطع الذاكرة المشتركة والتي تحاول عدة عمليات برمجية تعديل/قراءة قيمتها.
يقوم المبرمج بتحديد ما هو الجزء من الشيفرة البرمجية التي تعامل مع الموارد المتنازع عليها Critical Sectionحيث يتم
حجز أو منع عمليات أخرى من الوصول والتعديل على نفس الجزء من الذاكرة و يتم فك الحجز بعد االنهاء:
{ Do
Entry section
Critical section
Exit section
Reminder section
} while (True):
تحدث حالة السباق عادة ً عندما يحاول اثنان أو أكثر من الخيوط القراءة والكتابة وربما اتخاذ القرارات بنا ًء على الذاكرة التي
يصلون إليها بشكل متزامن.
•إذا كان لدينا متغير ، xمشترك بين عمليتين ،وقامت كل عملية باآلتي
قراءة قيمة المتغير read x
زيادة قيمة المتغير بواحدX=X+1
حفظ قيمة المتغير الجديد Write x
المشكلة ستظهر عندما تقوم أحد العمليات بقراءة قيمة المتغير ثم تقوم العملية الثانية بقراءة المتغير قبل ان تقوم العملية األولى
بحفظ القيمة فستكون النتيجة النهائية بعد تنفيذ اإلجرائيتان أن المتغير سيزيد بمقدار 1بدال من . 2الحل هو أن نمنع أي إجرائية
أخرى من الوصول للمتغير xإذا كانت هنالك جرائية تستخدم هذا المتغير.
الجزء حرج Critical Section
تسمى مناطق البرنامج التي تحاول الوصول إلى الموارد المشتركة والتي قد تتسبب في ظروف السباق بالقسم الحرج .لتجنب
حالة السباق بين العمليات ،نحتاج إلى التأكد من أنه يمكن تنفيذ عملية واحدة فقط في كل مرة داخل القسم الحرج.
مشكلة الجزء الحرج
القسم الحرج هو جزء من ال برنامج الذي يحاول الوصول إلى الموارد المشتركة .قد يكون هذا المورد أي مورد في جهاز
كمبيوتر مثل موقع الذاكرة أو بنية البيانات أو وحدة المعالجة المركزية أو أي جهاز إدخال /إخراج.
ال يمكن تنفيذ القسم الحرج بأكثر من عملية في نفس الوقت ويواجه نظام التشغيل صعوبات في السماح وعدم السماح للعمليات
بالدخول إلى القسم الحرج ويتم استخدام مشكلة القسم الحرج لتصميم مجموعة من البروتوكوالت التي يمكن أن تضمن عدم
ظهور حالة السباق بين العمليات ومن أجل مزامنة العمليات التعاونية ،تتمثل مهمتنا الرئيسية في حل مشكلة القسم الحرج .نحن
بحاجة إلى تقديم حل بطريقة يمكن من خاللها تلبية الشروط التالية.
يجب أن يفي أي حل لمشكلة القسم الحرج بثالثة متطلبات:
.1االستبعاد المتبادل Mutual Exclusion
إذا كانت العملية قيد التنفيذ في قسمها الحرج ،فال يُسمح بتنفيذ أي عملية أخرى في القسم الحرج .نعني باالستبعاد المتبادل أنه إذا
كانت إحدى العمليات يتم تنفيذها داخل قسم حرج critical sectionفيجب أال تدخل العملية األخرى في القسم الحرج.
استبعاد التشارك أو إقصاء التشارك باإلنجليزية ) ) Mutual exclusion: mutexأداة مزامنة تستعملها بعض الخوارزميات
المستعملة في البرمجة لتفادي االستخدام المتزامن للموارد المشتركة ،مثل الوصول لمتغير عام ،قد تقوم به بعض المقاطع
الحرجة .المقطع الحرج هو جزء من البرمجية حيث تسعى عملية أو خيط للوصول فيه إلى مورد مشترك.
ال توفر آلية متغير القفل االستبعاد المتبادل في بعض الحاالت .لو كان لدينا عمليتين P2 , P1تريد العملية P1تنفيذ قسمها
نظرا ألن قيمة القفل تساوي ، 0فإن P1يغير قيمته من 0إلى 1ويدخل في القسم الحرج.
الحرج .يدخل P1في قسم الدخولً .
وفي الوقت نفسه ،يتم استباق P1بواسطة وحدة المعالجة المركزية ويتم جدولة .P2اآلن ال توجد عملية أخرى في القسم الحرج
وقيمة متغير القفل هي .0يريد P2أيضًا تنفيذ قسمه الحرج .يدخل في القسم الحرج عن طريق ضبط متغير القفل على .1
اآلن ،تغير وحدة المعالجة المركزية حالة P1من االنتظار إلى التشغيل P1 .لم ينته بعد من قسمه الحرج .قام P1بالفعل بفحص
قيمة متغير القفل ويتذكر أن قيمته كانت 0عندما قام بفحصه مسبقًا .ومن ثم ،فإنه يدخل أيضًا في القسم الحرج دون التحقق من
القيمة المحدثة لمتغير القفل.
اآلن ،لدينا عمليتان في القسم الحرج .وفقًا لشرط االستبعاد المتبادل ،يجب أال توجد أكثر من عملية واحدة في القسم الحرج في
نفس الوقت .وبالتالي ،فإن آلية متغير القفل ال تضمن االستبعاد المتبادل.
تكمن مشكلة آلية متغير القفل في أنه في نفس الوقت ،يمكن ألكثر من عملية رؤية العالمة الشاغرة ويمكن أن تدخل أكثر من
عملية واحدة في القسم الحرج .ومن ثم ،فإن متغير القفل ال يوفر االستثناء المتبادل ولهذا السبب ال يمكن استخدامه بشكل عام.
.2التقدم Progress
إذا لم يتم تنفيذ أي عملية في القسم الحرج وكانت هناك عمليات أخرى تنتظر خارج القسم الحرج ،فعندئ ٍذ فقط تلك العمليات التي
ال يتم تنفيذها في القسم المتبقي يمكن أن تشارك في تحديد أيها سيدخل في القسم الحرج التالي ،واالختيار ال يمكن تأجيلها إلى
أجل غير مسمى.
.3االنتظار المقيد Bounded Waiting
يجب أن يكون هناك ارتباط بعدد المرات التي يُسمح فيها للعمليات األخرى بإدخال أقسامها الحرجة بعد أن تقدم العملية طلبًا
إلدخال قسمها الحرج وقبل منح هذا الطلب ،أي يجب أن نكون قادرين على التنبؤ بوقت االنتظار لكل عملية للوصول إلى القسم
الحرج .يجب أال تنتظر العملية إلى ما ال نهاية للوصول إلى القسم الحرج.
هذه هي أبسط آلية مزامنة وهي آلية برمجية مطبقة في وضع المستخدم( .حل االنتظار المشغول) يمكن استخدامه ألكثر من
عمليتين .في هذه اآللية ،يتم استخدام متغير يعمل بشكل قفل .يمكن أن يكون هناك قيمتان للقفل ،إما 0أو .1تعني قيمة القفل 0
أن القسم الحرج شاغر بينما تعني قيمة القفل 1أنه مشغول.
تقوم العملية التي تريد الدخول إلى القسم الحرج أوالً بفحص قيمة متغير القفل .إذا كانت القيمة ،0فإنها تحدد قيمة القفل على
أنها 1وتدخل في القسم الحرج ،وإال فإنها تنتظر.
The pseudo code of the mechanism looks like following.
إذا نظرنا إلى الكود اعاله ،نجد أن هناك ثالثة أقسام في الكود .قسم الدخول ،قسم الحرج وقسم الخروج.
مبدئيًا ،تكون قيمة متغير القفل .0العملية التي تحتاج إلى الدخول إلى القسم الحرج ،تدخل في قسم اإلدخال وتتحقق من الحالة
المتوفرة في حلقةwhile.
نظرا ألنه في المرة األولى
ً ستنتظر العملية إلى ما ال نهاية حتى تصبح قيمة القفل 1وهذا يعني ضمنيًا بواسطة حلقة while
شاغرا ،ستدخل العملية إلى القسم الحرج عن طريق تعيين متغير القفل على .1عندما تخرج العملية من ً يكون القسم الحرج
القسم الحرج ،ثم في قسم الخروج ،فإنها تعيد تعيين قيمة القفل على أنها .0
السيمافور Semaphore
تم اقتراح سيمافور بواسطة Dijkstraفي عام 1965وهي تقنية مهمة جدًا إلدارة العمليات المتزامنة باستخدام قيمة عدد
صحيح بسيط ،والتي تُعرف باسم .semaphoreوهي ببساطة عدد صحيح متغير يتم مشاركته بين الخيوط .يستخدم هذا
المتغير لحل مشكلة القسم الحرج ولتحقيق مزامنة العملية في بيئة المعالجة المتعددة و Semaphoresمن نوعين:
يمكن أن تتراوح قيمتها على مجال غير مقيد .يتم استخدامه للتحكم في الوصول إلى مورد له مثيالت متعددة multiple
instances
مشكلة المنتج-المستهلك Producer Consumer problem
مشكلة المنتج-المستهلك هي مشكلة كالسيكية تُستخدم للمزامنة متعددة العمليات ،أي المزامنة بين أكثر من عملية واحدة.
في مشكلة المنتج -المستهلك ،يوجد منتج واحد ينتج شيئًا ما وهناك مستهلك واحد يستهلك المنتجات التي ينتجها المنتج .يشترك
المنتجون والمستهلكون في نفس مخزن الذاكرة ذي الحجم الثابت.
تتمثل وظيفة ال ُمنتِج في إنشاء البيانات ووضعها في المخزن المؤقت والبدء مرة أخرى في إنشاء البيانات .بينما وظيفة المستهلك
هي استهالك البيانات من المخزن المؤقت.
ما هي المشكلة هنا؟
فيما يلي المشاكل التي قد تحدث في المنتج -المستهلك:
يجب أن ينتج المنتج البيانات فقط عندما ال يكون المخزن المؤقت ممتلئًا .إذا كان المخزن المؤقت ممتلئًا ،فال ينبغي -
السماح للمنتج بوضع أي بيانات في المخزن المؤقت.
ً ً
يجب أن يستهلك المستهلك البيانات فقط عندما ال يكون المخزن المؤقت فارغا .إذا كان المخزن المؤقت فارغا ،فال -
ينبغي أن يُسمح للمستهلك بأخذ أي بيانات من المخزن المؤقت.
يجب أال يصل المنتج والمستهلك إلى المخزن المؤقت في نفس الوقت. -
ما هو الحل؟
في مشكلة المنتج -المستهلك ،نستخدم ثالث متغيرات إشارات:
: Semaphore Sيستخدم لتحقيق االستبعاد المتبادل بين العمليات .باستخدام هذا المتغير ،سيتم السماح لل ُمنتِج أو المستهلك
باستخدام المخزن المؤقت المشترك أو الوصول إليه في وقت معين .تم تعيين هذا المتغير على 1في البداية.
: Semaphore Eيستخدم لتحديد المساحة الفارغة في المخزن المؤقت .في البداية ،يتم تعيينه على كامل مساحة المخزن
المؤقت ،الن المخزن المؤقت فارغ في البداية.
: Semaphore Fيستخدم لتحديد المساحة التي يمألها المنتج .مبدئيًا ،يتم ضبطه على " "0ألنه ال توجد مساحة يمألها المنتج
في البداية.
باستخدام متغيرات السيمافور الثالثة المذكورة أعاله وباستخدام وظيفة االنتظار () واإلشارة () ،يمكننا حل المشكلة .
The following is the pseudo-code for the producer:
{ )(void producer
{ )while(T
)(produce
)wait(E
)wait(S
)(append
)signal(S
)signal(F
}
}
يمكن تلخيص الكود أعاله على النحو التالي:
وتكرارا.
ً مرارا
ً وتكرارا ،إذا كانت ترغب في إنتاجها ،
ً مرارا
ً )( : whileتستخدم إلنتاج البيانات ،
يتم استدعاء وظيفة إنتاج () إلنتاج البيانات من قبل المنتج.
) : Wait(Eسيقلل من قيمة متغير السيمافور " "Eبواحد ،أي عندما ينتج المنتج شيئًا ما ،يكون هناك انخفاض في قيمة
المساحة الفارغة في المخزن المؤقت .إذا كان المخزن المؤقت ممتلئًا ،أي أن وادي متغير السيمافور " "Eيساوي "، "0
فسيتوقف البرنامج عن تنفيذه ولن يتم تنفيذ أي إنتاج.
) : Wait(Fيستخدم لتعيين متغير اإلشارة " "Sعلى " "0بحيث ال يمكن ألي عملية أخرى الدخول في القسم الحرج.
تُستخدم الدالة )( appendإللحاق البيانات ال ُمنتجة حديثًا في المخزن المؤقت.
يتم استخدام ) signal (Sلتعيين متغير السيمافور " "Sعلى " "1بحيث يمكن أن تدخل العمليات األخرى إلى القسم الحرج
اآلن ألن اإلنتاج يتم وعملية اإللحاق تتم أيضًا.
يتم استخدام ) signal (Fلزيادة متغير السيمافور " "Fبواحد ألنه بعد إضافة البيانات إلى المخزن المؤقت ،يتم ملء مساحة
واحدة في المخزن المؤقت ويجب تحديث المتغير "."F
This is how we solve the produce part of the producer-consumer problem. Now, let's see the
consumer solution. The following is the code for the consumer:
{ )(void consumer
{ )while(T
)wait(F
)wait(S
)(take
)signal(S
)signal(E
)(use
}
Operating Systems
Lecture # 14
Department of Computer
4th Class
لفهم إدارة الذاكرة ،يتعين علينا توضيح كل شيء حول كيفية تخزين البيانات في نظام الكمبيوتر.
يفهم الجهاز اللغة الثنائية فقط التي تكون 0أو .1يحول الكمبيوتر كل البيانات إلى لغة ثنائية أوالً ثم يخزنها في الذاكرة .هذا يعني
أنه إذا كان لدينا سطر برنامج مكتوب كـ ( ، ) int α = 10فسيحوله الكمبيوتر إلى اللغة الثنائية ثم يخزنه في كتل الذاكرة ويظهر
كما في الشكل ادناه
إدارة الذاكرة في نظام التشغيل )(OS) Memory Management in Operating System (OS
أمرا بالغ األهمية لنظام الكمبيوتر ألن حجم الذاكرة
الذاكرة هي الجزء المهم من الكمبيوتر المستخدم لتخزين البيانات .تعد إدارتها ً
الرئيسية المتوفرة في نظام الكمبيوتر محدود للغاية .في أي وقت ،تتنافس العديد من العمليات على ذلك .عالوة على ذلك ،لزيادة
األداء ،يت م تنفيذ العديد من العمليات في وقت واحد .لهذا ،يجب أن نحتفظ بالعديد من العمليات في الذاكرة الرئيسية وذلك من
األهمية الإدارتها بفعالية.
مدير الذاكرة يستخدم لتتبع حالة مواقع الذاكرة ،سواء كانت خالية أو مخصصة .إنه يعالج الذاكرة األولية من خالل •
توفير التجريدات بحيث يدرك البرنامج أن ذاكرة كبيرة مخصصة لها.
يسمح مدير الذاكرة ألجهزة الكمبيوتر التي تحتوي على كمية صغيرة من الذاكرة الرئيسية بتنفيذ برامج أكبر من حجم •
أو مقدار الذاكرة المتوفرة .يقوم بذلك عن طريق نقل المعلومات ذهابًا وإيابًا بين الذاكرة األولية والذاكرة الثانوية باستخدام
مفهوم المبادلة.
مدير الذاكرة مسؤول عن حماية الذاكرة المخصصة لكل عملية من التلف بسبب عملية أخرى .إذا لم يتم ضمان ذلك ، •
فقد يُظهر النظام سلو ًكا غير متوقع.
يجب على مديري الذاكرة تمكين مشاركة مساحة الذاكرة بين العمليات .وبالتالي ،يمكن أن يتواجد برنامجان في نفس •
موقع الذاكرة ولكن في أوقات مختلفة.
توفر إدارة الذاكرة الحماية باستخدام سجلين ،وسجل أساسي ،base registerوسجل حد . limit registerيحتفظ السجل األساسي
بأصغر عنوان للذاكرة الفعلية القانونية physical memoryويحدد سجل الحد حجم النطاق .على سبيل المثال ،إذا كان السجل
األساسي يحمل 300000وكان سجل الحد هو ، 1209000فيمكن للبرنامج الوصول بشكل قانوني إلى جميع العناوين من
300000إلى .411999ويمكن عمل التعليمات والبيانات الخاصة بعناوين الذاكرة بالطرق التالية
.1وقت التجميع Compile timeعندما يكون معروفًا في وقت الترجمة حيث ستقيم العملية ،يتم استخدام ربط وقت
التجميع إلنشاء الشفرة المطلقة.
.2وقت التحميل Load timeعندما ال يكون معروفًا في وقت الترجمة مكان وجود العملية في الذاكرة ،يقوم المحول
البرمجي بإنشاء رمز يمكن إعادة تحديد موقعه.
.3وقت التنفيذ Execution timeإذا كان من الممكن نقل العملية أثناء تنفيذها من مقطع ذاكرة إلى آخر ،فيجب تأجيل
الربط ليتم إجراؤه في وقت التشغيل
التحميل الديناميكي Dynamic Loadingفي التحميل الديناميكي ،ال يتم تحميل روتين البرنامج حتى يتم استدعاؤه بواسطة
البرنامج ويتم االحتفاظ بجميع اإلجراءات على القرص بتنسيق ويمكن إعادة تحديد موقعه .يتم تحميل البرنامج الرئيسي main
programفي الذاكرة ويتم تنفيذه ويتم تحميل طرق أو وحدات روتينية أخرى Other routines methods or modules
عند الطلب .التحميل الديناميكي يجعل استخدام مساحة الذاكرة أفضل وال يتم تحميل اإلجراءات غير المستخدمة.
االرتباط الديناميكي Dynamic Linkingاالرتباط هو عملية تجميع ودمج وحدات مختلفة من التعليمات البرمجية والبيانات
في ملف قابل للتنفيذ يمكن تحميله في الذاكرة وتنفيذه .يمكن لنظام التشغيل ربط المكتبات على مستوى النظام بالبرنامج .عندما
يجمع المكتبات في وقت التحميل Load Timeيُطلق على هذا النوع باالرتباط الثابت static linkingوعندما يتم هذا االرتباط
في وقت التنفيذ ،Execution Timeيُطلق عليه االرتباط الديناميكي dynamic linkingفي االرتباط الثابت ،المكتبات
المرتبطة في وقت الترجمة ،بحيث يصبح حجم رمز البرنامج أكبر بينما في مكتبات االرتباط الديناميكي المرتبطة في وقت التنفيذ
يظل حجم كود البرنامج أصغر.
في مخطط إدارة الذاكرة المتجاورة ،يحتل كل برنامج كتلة واحدة متجاورة من مواقع التخزين ،أي مجموعة من مواقع الذاكرة
بعناوين متتالية.
مخططات إدارة الذاكرة المتجاورة الفردية Single contiguous memory management schemes
يعد نظام إدارة الذاكرة المتجاورة المفردة أبسط مخطط إلدارة الذاكرة يستخدم في الجيل األول من أنظمة الكمبيوتر .في هذا
المخطط ،يتم تقسيم الذاكرة الرئيسية إلى منطقتين أو أقسام متجاورة .توجد أنظمة التشغيل بشكل دائم في قسم واحد ،بشكل عام
في الذاكرة السفلية ،ويتم تحميل عملية المستخدم في القسم اآلخر.
مزايا أنظمة إدارة الذاكرة المتجاورة Advantages of Single contiguous memory management schemes
.1سهل التنفيذ.
.2سهل اإلدارة والتصميم.
.3في نظام إدارة ذاكرة واحد متجاور ،بمجرد تحميل العملية ،يتم منحها وقت المعالج الكامل ،ولن يقاطعها أي معالج
آخر.
عيوب أنظمة إدارة الذاكرة المتجاورة الفردية Disadvantages of Single contiguous memory management
schemes
.1إهدار مساحة الذاكرة بسبب الذاكرة غير المستخدمة حيث من غير المحتمل أن تستخدم العملية كل مساحة الذاكرة
المتاحة.
.2تظل وحدة المعالجة المركزية خاملة ،في انتظار تحميل القرص للصورة الثنائية في الذاكرة الرئيسية.
كبيرا جدًا بحيث ال يتناسب مع مساحة الذاكرة الرئيسية المتاحة بالكامل.
.3ال يمكن تنفيذه إذا كان البرنامج ً
.4ال يدعم البرمجة المتعددة ،أي أنه ال يمكنه التعامل مع برامج متعددة في نفس الوقت.
يعتبر نظام إدارة الذاكرة المتجاورة غير فعال ألنه يحد من أجهزة الكمبيوتر لتنفيذ برنامج واحد فقط في كل مرة مما يؤدي إلى
إهدار مساحة الذاكرة ووقت وحدة المعالجة المركزية .يمكن التغلب على مشكلة االستخدام غير الفعال لوحدة المعالجة المركزية
باستخدام البرمجة المتعددة التي تسمح بتشغيل أكثر من برنامج في وقت واحد .للتبديل بين عمليتين ،تحتاج أنظمة التشغيل إلى
تحميل كلتا العمليتين في الذاكرة الرئيسية .يحتاج نظام التشغيل إلى تقسيم الذاكرة الرئيسية المتاحة إلى أجزاء متعددة لتحميل
عمليات متعددة في الذاكرة الرئيسية .وبالتالي يمكن أن توجد عمليات متعددة في الذاكرة الرئيسية في وقت واحد.
أقدم وأبسط التقنيات التي يمكن استخدامها لتحميل أكثر من عملية واحدة في الذاكرة الرئيسية هي التقسيم الثابت أو تخصيص
الذاكرة المتجاورة .في هذه التقنية ،يتم تقسيم الذاكرة الرئيسية إلى أقسام ذات أحجام متساوية أو مختلفة .يوجد نظام التشغيل دائ ًما
في القسم األول بينما يمكن استخدام األقسام األخرى لتخزين عمليات المستخدم .يتم تخصيص الذاكرة للعمليات بطريقة متجاورة.
إذا كان حجم العملية أقل ،فسيتم إهدار حجم القسم ويظل غير مستخدم .هذا هو إهدار للذاكرة ويسمى التجزئة الداخلية .كما هو
موضح في الصورة أدناه ،يتم استخدام قسم 4ميغا بايت لتحميل عملية 3ميغا بايت فقط ويتم إهدار 1ميغا بايت المتبقية.
ال يمكن استخدام المساحة اإلجمالية غير المستخدمة ألقسام مختلفة لتحميل العمليات على الرغم من وجود مساحة متاحة ولكن
ليس في الشكل المتجاور .كما هو موضح في الصورة أدناه ،ال يمكن استخدام المساحة المتبقية 1ميجا بايت لكل قسم كوحدة
لتخزين عملية 4ميجا بايت .على الرغم من توفر المساحة الكافية لتحميل العملية ،لن يتم تحميل العملية.
إذا كان حجم العملية أكبر من حجم القسم األقصى ،فال يمكن تحميل هذه العملية في الذاكرة .لذلك ،يمكن فرض قيود على حجم
العملية بحيث ال يمكن أن تكون أكبر من حجم القسم األكبر.
حسب درجة البرمجة المتعددة ،فإننا نعني ببساطة الحد األقصى لعدد العمليات التي يمكن تحميلها في الذاكرة في نفس الوقت .في
نظرا لحقيقة أن حجم القسم ال يمكن تغييره وفقًا لحجم العمليات
التقسيم الثابت ،تكون درجة البرمجة المتعددة ثابتة وأقل جدًا ً
مزايا أنظمة إدارة ذاكرة التقسيم الثابت Advantages of Fixed Partitioning memory management
schemes
عيوب أنظمة إدارة ذاكرة التقسيم الثابت Disadvantages of Fixed Partitioning memory management
schemes
يحاول التقسيم الديناميكي التغلب على المشاكل الناتجة عن التقسيم الثابت .في هذه التقنية ،ال يتم التصريح عن حجم القسم في
البداية .تم اإلعالن عنه في وقت تحميل العملية .القسم األول محجوز لنظام التشغيل .المساحة المتبقية مقسمة إلى أجزاء .سيكون
حجم كل قسم مساويًا لحجم العملية .يختلف حجم القسم حسب حاجة العملية بحيث يمكن تجنب التجزئة الداخلية.
مزايا التقسيم الديناميكي على التقسيم الثابت Advantages of Dynamic Partitioning over fixed partitioning
.1ال تجزئة داخلية No Internal Fragmentation
بالنظر إلى حقيقة أن األقسام في التقسيم الديناميكي يتم إنشاؤها وفقًا الحتياجات العملية ،فمن الواضح أنه لن يكون هناك أي تجزئة
داخلية ألنه لن يكون هناك أي مساحة متبقية غير مستخدمة في القسم.
.2ال قيود على حجم العملية No Limitation on the size of the process
في التقسيم الثابت ،ال يمكن تنفيذ العملية ذات الحجم األكبر من حجم القسم األكبر بسبب عدم وجود ذاكرة متجاورة كافية .هنا ،
في التقسيم الديناميكي ،ال يمكن تقييد حجم العملية حيث يتم تحديد حجم القسم وفقًا لحجم العملية.
نظرا لعدم وجود تجزئة داخلية ،لن يكون هناك أي مساحة غير مستخدمة في القسم ،وبالتالي يمكن تحميل المزيد من العمليات
ً
في الذاكرة في نفس الوقت.
ال يعني عدم وجود التجزئة الداخلية أنه لن يكون هناك تجزئة خارجية .لنفكر في ثالث عمليات ) P1 (1 MBو )P2 (3 MB
و ) P3 (1 MBيتم تحميلها في األقسام المعنية من الذاكرة الرئيسية.
بعد مرور بعض الوقت ،تم االنتهاء من P1و P3وتم تحرير المساحة المخصصة لهما .يوجد اآلن قسمان غير مستخدمين (1
نظرا لعدم
ميجابايت و 1ميجابايت) متاحان في الذاكرة الرئيسية ولكن ال يمكن استخدامهما لتحميل عملية 2ميجابايت في الذاكرة ً
وجودهما في مكان قريب.
تنص القاعدة على أن العملية يجب أن تكون موجودة باستمرار في الذاكرة الرئيسية ليتم تنفيذها .نحتاج إلى تغيير هذه القاعدة
لتجنب التجزئة الخارجية.
في التقسيم الثابت ،يتم إنشاء قائمة األقسام مرة واحدة ولن تتغير أبدًا ولكن في التقسيم الديناميكي ،يكون التخصيص وإلغاء
نظرا ألن حجم القسم سيتغير في كل مرة يتم فيها تعيينه لعملية جديدة .يجب أن يتتبع نظام التشغيل جميع
التخصيص معقدين للغاية ً
نظرا لحقيقة أن التخصيص وإلغاء التخصيص يتم بشكل متكرر جدًا في تخصيص الذاكرة الديناميكي وسيتم تغيير حجم
األقسامً .
القسم في كل مرة ،سيكون من الصعب جدًا على نظام التشغيل إدارة كل شيء.
في نظام إدارة الذاكرة غير المتجاورة ،ينقسم البرنامج إلى كتل مختلفة ويتم تحميله في أجزاء مختلفة من الذاكرة ال يلزم بالضرورة
أن تكون متجاورة مع بعضها البعض .يمكن تصنيف هذا المخطط اعتمادًا على حجم الكتل وما إذا كانت الكتل موجودة في الذاكرة
الرئيسية أم ال.
نظام الصفحات او الترحيل هو أسلوب يلغي متطلبات التخصيص المتجاور للذاكرة الرئيسية .في هذا ،يتم تقسيم الذاكرة الرئيسية
إلى كتل ذات حجم ثابت من الذاكرة الفعلية تسمى اإلطارات .يجب أن يظل حجم اإلطار هو نفسه حجم الصفحة لتكبير الذاكرة
الرئيسية وتجنب التجزئة الخارجية.
التجزئة هي تقنية تلغي متطلبات التخصيص المتجاور للذاكرة الرئيسية .في هذا ،يتم تقسيم الذاكرة الرئيسية إلى كتل متغيرة
الحجم من الذاكرة الفعلية تسمى المقاطع .يعتمد على الطريقة التي يتبعها المبرمج لهيكلة برامجهم .مع تخصيص الذاكرة المجزأة
،يتم تقسيم كل مهمة إلى عدة أقسام بأحجام مختلفة ،واحدة لكل وحدة.
يمكن تقليل التجزئة الخارجية عن طريق الضغط أو خلط محتويات الذاكرة لوضع كل الذاكرة الخالية م ًعا في كتلة واحدة كبيرة.
لجعل الضغط ممكنًا ،يجب أن يكون النقل ديناميكيًا
العنوان منطقي مقابل مساحة العنوان الفعلي Logical versus Physical Address Space
العنوان الذي تم إنشاؤه بواسطة وحدة المعالجة المركزية هو عنوان منطقي بينما العنوان المتاح بالفعل على وحدة الذاكرة هو
عنوان فعلي ( فيزيائي ) يُعرف العنوان المنطقي أيضًا باسم العنوان الظاهري .العناوين الظاهرية والمادية هي نفسها في أنظمة
ربط العناوين وقت الترجمة ووقت التحميل .تختلف العناوين الظاهرية والمادية في مخططات ربط عناوين وقت التنفيذ.
يشار إلى مجموعة جميع العناوين المنطقية التي تم إنشاؤها بواسطة برنامج بمساحة العنوان المنطقية .ويشار إلى مجموعة جميع
العناوين الفعلية المقابلة لهذه العناوين المنطقية باسم مساحة العنوان الفعلية.
يتم إجراء تعيين وقت التشغيل من العنوان الظاهري إلى العنوان الفعلي بواسطة وحدة إدارة الذاكرة ( )MMUوهي عبارة عن
جهاز .تستخدم MMUاآللية التالية لتحويل العناوين االفتراضية إلى عناوين فعلية.
يتم إضافة القيمة الموجودة في السجل األساسي إلى كل عنوان تم إنشاؤه بواسطة عملية مستخدم يتم التعامل معها على أنها •
تعويض في وقت إرسالها إلى الذاكرة .على سبيل المثال ،إذا كانت قيمة السجل األساسي هي ، 10000فسيتم إعادة
تخصيص محاولة المستخدم الستخدام موقع العنوان 100ديناميكيًا إلى الموقع .10100
يتعامل برنامج المستخدم مع العناوين االفتراضية .ال يرى أبدًا العناوين المادية الحقيقية .المبادلة هي آلية يمكن من خاللها •
تبديل العملية مؤقتًا من الذاكرة الرئيسية إلى مخزن النسخ ،ثم إعادتها إلى الذاكرة لمواصلة التنفيذ .عادة ً ما يكون مخزن
النسخ عبارة عن محرك أقراص ثابتة أو أي وحدة تخزين ثانوية أخرى تتميز بسرعة الوصول إليها وكبيرة بما يكفي
قادرا على توفير وصول مباشر إلى صور
ً الستيعاب نسخ من جميع صور الذاكرة لجميع المستخدمين .يجب أن يكون
الذاكرة هذه.
الجزء الرئيسي الذي يستغرق وقتًا طويالً في المبادلة هو وقت النقل .إجمالي وقت النقل يتناسب طرديا مع مقدار الذاكرة التي تم
تبديلها .لنفترض أن حجم عملية المستخدم هو 100كيلو بايت وأن مخزن النسخ هو قرص ثابت قياسي بمعدل نقل 1ميغا بايت
في الثانية .سيستغرق النقل الفعلي لعملية 100كيلو بايت إلى أو من الذاكرة 100كيلو بايت 1000 /كيلو بايت في الثانية =
10/1ثانية = 100ميلي ثانية
تقوم خوارزمية First Fitبمسح القائمة المرتبطة وعندما تجد أول مساحة كبيرة بما يكفي لتخزين عملية ما ،فإنها تتوقف عن
المسح وتحميل العملية في تلك المساحة .ينتج عن هذا اإلجراء قسمين .خارجها ،سيكون أحد األقسام فراغ بينما يقوم القسم اآلخر
بتخزين العملية .تحتفظ خوارزمية First Fitبالقائمة المرتبطة وفقًا للترتيب المتزايد لمؤشر البداية .هذا هو أبسط تطبيق بين
جميع الخوارزميات وينتج فراغات أكبر مقارنة بالخوارزميات األخرى.
تشبه خوارزمية Next Fitخوارزمية First Fitباستثناء حقيقة أن Next fitتفحص القائمة المرتبطة من العقدة حيث خصصت
فراغا مسبقًا .ال يقوم الخيار التالي بمسح القائمة بأكملها ،بل يبدأ في مسح القائمة من العقدة التالية .الفكرة وراء المالءمة التالية
هي حقيقة أن القائمة قد تم مسحها مرة واحدة وبالتالي فإن احتمال العثور على الفراغ أكبر في الجزء المتبقي من القائمة .وقد
أظهرت التجارب على الخوارزمية أن Next fitليس أفضل من First fitلذلك ال يتم استخدامه هذه األيام في معظم الحاالت.
تحاول خوارزمية Best Fitاكتشاف أصغر فراغ ممكن في القائمة يمكنه استيعاب متطلبات الحجم للعملية.
.1انه أبطأ ألنه يمسح القائمة بأكملها في كل مرة ويحاول اكتشاف أصغر فراغ يمكنه تلبية متطلبات العملية.
نظرا لحقيقة أن الفرق بين الحجم الكلي وحجم العملية صغير جدًا ،فإن الفراغات الناتجة ستكون صغيرة بحيث ال يمكن
ً .2
استخدامها لتحميل أي عملية وبالتالي تظل غير مجدية .على الرغم من حقيقة أن هذه الخوارزمية هي األنسب ،إال أنها
ليست أفضل خوارزمية بين الجميع.
تقوم الخوارزمية األسوأ بمسح القائمة بأكملها في كل مرة وتحاول اكتشاف أكبر فراغ في القائمة والتي يمكن أن تفي بمتطلبات
العملية .على الرغم من حقيقة أن هذه الخوارزمية تنتج فراغات أكبر لتحميل العمليات األخرى ،إال أن هذا ليس النهج األفضل
وتكرارا.
ً مرارا
ً نظرا لكونه أبطأ ألنه يبحث في القائمة بأكملها في كل مرة
ً
تقترح خوارزمية التوافق السريع الحفاظ على القوائم المختلفة لألحجام المستخدمة بشكل متكرر .على الرغم من أنه ليس قابالً
لإليحاء عمليًا ألن اإلجراء يستغرق وقتًا طويالً إلنشاء قوائم مختلفة ثم يتم إنفاق الفراغات لتحميل عملية.