0% found this document useful (0 votes)
44 views111 pages

ALL Operatin System

Uploaded by

yjdbkzn7zm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views111 pages

ALL Operatin System

Uploaded by

yjdbkzn7zm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Introduction to Operating Systems 1

Operating Systems
Lecture # 1

Department of Computer
4th Class

Introduction to Operating Systems

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Introduction to Operating Systems‬‬ ‫‪2‬‬

‫المقدمة ‪Introduction‬‬
‫يتكون نظام الحاسب اآللي من معالج أو عدة معالجات باإلضافة إلي الذاكرة الرئيسية واألقراص والطابعات ولوحة المفاتيح‬
‫وجهاز العرض ومحوالت الشبكة والتي تسمي مجتمعه بالمكونات المادية ‪ , Hardware‬وتشكل هذه المكونات مجتمعه نظاما ً‬
‫معقدا ً في التعامل ‪ ,‬مما أستوجب كتابة برامج تتحكم في أدارة جميع هذه المكونات وتستخدمها استخداما صحيحا ً ‪ ,‬وتسمي هذه‬
‫البرامج ببرامج النظام والتي من أهم وظائفها أدارة جميع هذه األجهزة ( المكونات المادية ) باإلضافة إلي تقديم واجهة بسيطة‬
‫للمستخدم لكي يتمكن من التعامل مع المكونات المادية‪.‬‬

‫ونظام التشغيل ‪ : Operating System‬هو مجموعة من البرمجيات المسؤولة عن إدارة الموارد( عتاد الحاسوب‬
‫‪ ،Hardware‬وبرمجيات الحاسوب ‪ ،) Software‬ويمثل وسيط بين المستخدم‪ ،‬وعتاد الحاسوب‪ ،‬وبتعريف آخر يمثل نظام‬
‫التشغيل جسر لتشغيل برامج المستخدم‪ ،‬ويقوم بالمهام األساسية مثل‪ :‬إدارة وتخصيص موارد الحاسوب ) الذاكرة‪ ،‬القرص‬
‫الصلب‪ ،‬الوصول لألجهزة الملحقة إلخ‪ ،)...‬وترتيب أولوية التعامل مع األوامر‪ ،‬والتحكم في أجهزة اإلدخال‪ ،‬واإلخراج مثل ‪:‬لوحة‬
‫المفاتيح‪ ،‬وكذلك لتسهيل التعامل مع الشبكات‪ ،‬وإدارة الملفات‬

‫الطبقة األولى‪ :‬طبقة المكونات المادية ‪Hardware‬‬


‫وتنقسم إلي‪:‬‬
‫‪ .1‬المستوي األول الذي يتألف من األجهزة الفيزيائية (شرائح دارات متكاملة وأسالك ومزودات طاقة)‪.‬‬
‫‪ .2‬المستوي الثاني والذي يشتمل على البنية الميكروية والتي تجمع األجهزة الفيزيائية مع بعض المسجالت الداخلية في‬
‫المعالج وذلك‪ ،‬لتنفيذ مجموعة من التعليمات‪.‬‬
‫‪ .3‬المستوي الثالث والذي يحتوي على لغة اآللة‬

‫الطبقة الثانية‪ :‬هي طبقة برامج النظام ‪Software‬‬


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

‫الطبقة الثالثة‪ :‬هي طبقة البرامج التطبيقية ‪Applications‬‬


‫وهي برامج تعمل في نمط المستخدم ( ‪ ) User Mode‬لكنها تساعد نظام التشغيل على القيام بالمهام‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Introduction to Operating Systems‬‬ ‫‪3‬‬

‫طبقات نظام الحاسب االلي‬


‫أنواع أنظمة التشغيل‪OS Types :‬‬
‫‪ .1‬أنظمة التشغيل األجهزة الكبيرة ‪Main Frame:‬‬
‫تستخدم كخوادم ويب متطورة وخوادم لمواقع التجارة االلكترونية الواسعة‪ .‬عموما ً تهتم أنظمة تشغيل األنظمة الكبيرة بمعالجة‬
‫عدة مهام في وقت واحد وتحتوي هذه المهام في الغالب على كمية هائلة من عمليات اإلدخال واإلخراج باإلضافة إلى ذلك فان‬
‫تلك األنظمة تقدم نموذجيا ً لثالثة أنواع من الخدمات الدفعية ‪ Batch‬و معالجة المناقالت ‪ Transaction processing‬ومشاركة‬
‫الزمن ‪.Time sharing‬‬

‫‪ .2‬أنظمة تشغيل الخوادم‪Servers :‬‬

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

‫‪ .4‬أنظمة تشغيل المعالجات المتعددة‪Multiprocessors :‬‬

‫من الطرق الشائعة للحصول على طاقة حسابيه كبيرة توصيل عده معالجات ‪ CPU‬في نظام واحد وتسمي هذه األنظمة أما‬
‫بالحواسيب المتوازية ‪ Parallel Computers‬أو الحواسيب المتعددة ‪ Multi Computers‬أو المعالجات المتعددة ‪Multi-‬‬
‫‪ Processor‬وذلك حسب طريقة أتصال المعالجات مع بعضها البعض والموارد المشتركة بينها‪ .‬وتحتاج هذه األنظمة إلى‬
‫أنظمة تشغيل خاصة لكنها في العادة تكون أنظمة تشغيل مخدمات معدله لها مزاّيا خاصة لتحقيق االتصال بين المعالجات‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Introduction to Operating Systems‬‬ ‫‪4‬‬

‫‪ .4‬أنظمة تشغيل الحواسيب الشخصية‪Personal Computers :‬‬

‫تنحصر مهمتها في تقديم واجهة جيده للمستخدم‪ .‬كما تستخدم هذه األنظمة بشكل واسع لمعالجة النصوص والجداول الممتدة‬
‫والوصول لألنترنت ومن األمثلة الشهيرة لهذا النوع هو نظام ‪Linux & Windows‬‬

‫‪ .5‬أنظمة التشغيل المضمنة‪Embedded Systems :‬‬

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

‫‪ .6‬أنظمة تشغيل الزمن الحقيقي‪Real Time System :‬‬

‫يمتاز هذا النوع بأنه يعتمد على الزمن كوسيط أساسي) أنظمة التحكم بالعمليات الصناعية (‪ ,‬تقوم حواسيب الزمن الحقيقي بجمع‬
‫جميع البيانات عن عمليه اإلنتاج ثم بعد ذلك تستخدمها للتحكم في أآلت المصنع‪.‬‬

‫مهام نظام التشغيل‪Operating System Functions :‬‬


‫‪ .1‬إدارة الذاكرة ‪Memory Management‬‬
‫‪ .2‬إدارة العمليات ‪Processor Management‬‬
‫‪ .3‬إدارة األجهزة ‪Device Management‬‬
‫‪ .4‬إدارة الملفات ‪File Management‬‬
‫‪ .5‬األمنية ‪Security‬‬
‫‪ .6‬اكتشاف األخطاء ‪Error detecting‬‬

‫إدارة الذاكرة‪Memory Management :‬‬


‫تشير إدارة الذاكرة إلى إدارة الذاكرة األساسية أو الذاكرة الرئيسية‪ .‬الذاكرة الرئيسية هي مجموعة كبيرة من الكلمات أو البايت‬
‫حيث يكون لكل كلمة أو بايت عنوانها الخاص‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Introduction to Operating Systems‬‬ ‫‪5‬‬

‫توفر الذاكرة الرئيسية تخزينًا سري ًعا يمكن الوصول إليه مباشرة بواسطة وحدة المعالجة المركزية‪ .‬لذلك لكي يتم تنفيذ البرنامج‪،‬‬
‫يجب أن يكون في الذاكرة الرئيسية‪.‬‬

‫يقوم نظام التشغيل باألنشطة التالية إلدارة الذاكرة‪:‬‬

‫‪ -1‬يحتفظ بمسارات الذاكرة األساسية (‪ )Keeps tracks of primary memory‬أي جزء منها يستخدمه وما الجزء غير‬
‫المستخدم‪.‬‬

‫‪ -2‬في البرمجة المتعددة (‪ )multiprogramming‬يقرر نظام التشغيل العملية التي ستحصل على الذاكرة و متى و كم ‪.‬‬

‫‪ -3‬يخصص الذاكرة )‪ )Allocates the memory‬عندما تطلبها العملية القيام بذلك‪.‬‬

‫‪ -4‬يلغي تخصيص الذاكرة (‪ )De-allocates the memory‬عندما ال تعود العملية بحاجة إليها أو عندما يتم إنهاؤها‬

‫إدارة المعالجات ‪Processor Management‬‬

‫في بيئة البرمجة المتعددة‪ ،‬يقرر نظام التشغيل العملية التي يحصل عليها المعالج ومتى وكم من الوقت‪ .‬تسمى هذه الوظيفة جدولة‬
‫العملية‪ .‬يقوم نظام التشغيل باألنشطة التالية إلدارة المعالج‪:‬‬

‫‪ -1‬يحتفظ بمسارات المعالج وحالة العملية ( ‪ ) Keeps tracks of processor and status of process‬يُعرف البرنامج‬
‫المسؤول عن هذه المهمة باسم مراقب حركة المرور‪.‬‬

‫‪ -2‬يخصص المعالج وحدة المعالجة المركزية (‪ )CPU‬لعملية ما ( ‪) Allocates the processor (CPU) to a process‬‬

‫‪ -3‬يلغي تخصيص المعالج ( ‪ ) De-allocates processor‬عندما ال يكون المعالج مطلوبًا‪.‬‬

‫ادارة الجهاز ‪Device Management‬‬

‫يقوم نظام التشغيل بإدارة اتصال الجهاز عبر برامج التشغيل الخاصة بهم‪ .‬يقوم نظام التشغيل باألنشطة التالية إلدارة الجهاز‪:‬‬

‫‪ -1‬يحتفظ بتتبع جميع األجهزة (‪ )Keeps tracks of all devices‬يُعرف البرنامج المسؤول عن هذه المهمة باسم وحدة التحكم‬
‫‪.l / 0‬‬

‫‪ -2‬يقرر أي عملية يحصل عليها الجهاز ومتى وكم من الوقت ( ‪) which process gets the device‬‬

‫‪ -3‬يخصص الجهاز بطريقة فعالة ( ‪) Allocates the device in the efficient way‬‬

‫‪ -4‬يزيل تخصيص األجهزة ( ‪) De-allocates devices‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Introduction to Operating Systems‬‬ ‫‪6‬‬

‫إدارة الملفات ‪File Management‬‬

‫عادة ما يتم تنظيم نظام الملفات في دالئل لتسهيل التنقل واالستخدام‪ .‬قد تحتوي هذه األدلة على ملفات وتوجيهات أخرى‪ .‬يقوم‬
‫نظام التشغيل باألنشطة التالية إلدارة الملفات‪:‬‬

‫‪ -1‬يتتبع المعلومات والموقع واالستخدامات والحالة وما إلى ذلك ( ‪Keeps track of information, location, uses,‬‬
‫‪ ) status etc‬غالبًا ما تُعرف المرافقات الجماعية باسم نظام الملفات‪.‬‬

‫‪ -2‬يقرر من يحصل على الموارد ( ‪) Decides who gets the resources‬‬

‫‪ -3‬يخصص الموارد ( ‪) Allocates the resources‬‬

‫‪ -4‬يزيل تخصيص الموارد ( ‪) De-allocates the resources‬‬

‫األنشطة الهامة األخرى ( ‪:) Other Important Activities‬‬

‫‪ .1‬األمان ‪ : Security‬عن طريق كلمة المرور وتقنيات أخرى مماثلة ‪ ،‬تمنع الوصول غير المصرح به إلى البرامج‬
‫والبيانات‪.‬‬
‫‪ .2‬التحكم في أداء النظام ‪ :Control over system performance‬تسجيل التأخيرات بين طلب الخدمة واالستجابة‬
‫من النظام‪.‬‬
‫‪ .3‬حساب المهمة ‪ : Job accounting‬تتبع الوقت والموارد المستخدمة من قبل مختلف الوظائف والمستخدمين‪.‬‬
‫‪ .4‬أدوات الكشف عن األخطاء ‪ : Error detecting aids‬إنتاج عمليات تفريغ وتتبع ورسائل الخطأ وغيرها من أدوات‬
‫تصحيح األخطاء واكتشاف األخطاء‪.‬‬
‫‪ .5‬التنسيق بين البرامج والمستخدمين اآلخرين ‪ : Coordination between other software and users‬التنسيق‬
‫وتخصيص المجمعين ‪ Accumulator‬والمترجمين الفوريين ‪ Interpreters‬والبرامج األخرى لمختلف مستخدمي‬
‫أنظمة الكمبيوتر‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Computer System Architecture 1

Operating Systems
Lecture # 2

Department of Computer
4th Class

Computer System Architecture

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Computer System Architecture‬‬ ‫‪2‬‬

‫هيكلية نظام الحاسب ‪Computer architecture‬‬

‫نظام الكمبيوتر هو في األساس آلة تبسط المهام المعقدة‪ .‬يجب أن يزيد األداء إلى أقصى حد ويقلل من التكاليف باإلضافة إلى‬
‫استهالك الطاقة‪ .‬المكونات المختلفة في بنية نظام الكمبيوتر هي وحدة اإلدخال ووحدة اإلخراج ووحدة التخزين ووحدة المنطق‬
‫الحسابي ووحدة التحكم وما إلى ذلك‪.‬‬

‫الرسم البياني الذي يوضح تدفق البيانات بين هذه الوحدات هو كما يلي ‪:‬‬

‫تنتقل بيانات اإلدخال من وحدة اإلدخال إلى ‪ ALU.‬وبالمثل تنتقل البيانات المحسوبة من ‪ ALU‬إلى وحدة اإلخراج‪ .‬تنتقل البيانات‬
‫باستمرار من وحدة التخزين إلى ‪ ALU‬وتعود مرة أخرى‪ .‬وذلك ألن البيانات المخزنة يتم حسابها قبل تخزينها مرة أخرى‪.‬‬
‫تتحكم وحدة التحكم في جميع الوحدات األخرى باإلضافة إلى بياناتها‪.‬‬

‫وحدة اإلدخال ‪Input Unit‬‬ ‫•‬

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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Computer System Architecture‬‬ ‫‪3‬‬

‫وحدة اإلخراج ‪Output Unit‬‬ ‫•‬

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

‫وحدة التخزين ‪Storage Unit‬‬ ‫•‬

‫تحتوي وحدة التخزين على العديد من مكونات الكمبيوتر التي تُستخدم لتخزين البيانات‪ .‬يتم تقسيمها تقليديًا إلى تخزين أساسي‬
‫وتخزين ثانوي‪ .‬يُعرف التخزين األساسي أيضًا باسم الذاكرة الرئيسية وهي الذاكرة التي يمكن الوصول إليها مباشرة بواسطة‬
‫وحدة المعالجة المركزية‪ .‬ال يمكن الوصول إلى وحدة التخزين الثانوية أو الخارجية مباشرة بواسطة وحدة المعالجة المركزية‪.‬‬
‫يجب إحضار البيانات من التخزين الثانوي إلى وحدة التخزين األساسية قبل أن تتمكن وحدة المعالجة المركزية من استخدامها‪.‬‬
‫يحتوي التخزين الثانوي على كمية كبيرة من البيانات بشكل دائم‪.‬‬

‫وحدة المنطق الحسابية ‪Arithmetic Logic Unit‬‬ ‫•‬

‫يتم تنفيذ جميع العمليات الحسابية المتعلقة بنظام الكمبيوتر بواسطة وحدة المنطق الحسابي‪ .‬يمكنه إجراء عمليات مثل الجمع‬
‫والطرح والضرب والقسمة وما إلى ذلك‪ .‬تنقل وحدة التحكم البيانات من وحدة التخزين إلى وحدة المنطق الحسابي عند الحاجة‬
‫إلى إجراء العمليات الحسابية‪ .‬تشكل وحدة المنطق الحسابي ووحدة التحكم معًا وحدة المعالجة المركزية‪.‬‬

‫وحدة التحكم ‪Control Unit‬‬ ‫•‬

‫تتحكم هذه الوحدة في جميع الوحدات األخرى لنظام الكمبيوتر ومن ثم تُعرف باسم الجهاز العصبي المركزي‪ .‬ينقل البيانات عبر‬
‫الكمبيوتر كما هو مطلوب بما في ذلك من وحدة التخزين إلى وحدة المعالجة المركزية والعكس صحيح‪ .‬تحدد وحدة التحكم أيضًا‬
‫كيفية تصرف الذاكرة وأجهزة اإلدخال واإلخراج ووحدة المنطق الحسابي وما إلى ذلك‪.‬‬

‫الوصول المباشر للذاكرة )‪Direct Memory Access (DMA‬‬


‫الوصول المباشر للذاكرة )‪ (DMA‬هو طريقة تسمح لجهاز اإلدخال ‪ /‬اإلخراج )‪ (I / O‬بإرسال أو استقبال البيانات مباشرة‬
‫ً‬
‫متجاوزا وحدة المعالجة المركزية لتسريع عمليات الذاكرة وتتم إدارة العملية بواسطة شريحة‬ ‫إلى أو من الذاكرة الرئيسية‬
‫تعرف باسم وحدة تحكم‪DMA (DMAC).‬‬
‫‪ DMA Controller‬هو جهاز يسمح ألجهزة اإلدخال ‪ /‬اإلخراج بالوصول المباشر إلى الذاكرة بمشاركة أقل من المعالج‪.‬‬
‫يحتاج جهاز التحكم ‪ DMA‬إلى نفس الدوائر القديمة للواجهة للتواصل مع وحدة المعالجة المركزية وأجهزة اإلدخال ‪ /‬اإلخراج‪.‬‬
‫يوضح الشكل ‪ 1‬أدناه مخطط الكتلة لوحدة تحكم‪DMA.‬‬

‫سجالت تحكم ‪DMA‬‬


‫تحتوي وحدة تحكم ‪ DMA‬على ثالثة سجالت ‪:‬‬
‫سجل العنوان ‪ Address register‬يحتوي على العنوان لتحديد الموقع المطلوب في الذاكرة‪.‬‬ ‫•‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Computer System Architecture‬‬ ‫‪4‬‬

‫سجل عدد الكلمات ‪ Word count register‬يحتوي على عدد الكلمات المراد نقلها‪.‬‬ ‫•‬
‫سجل التحكم ‪ Control register‬يحدد وضع النقل‪.‬‬ ‫•‬

‫تظهر كافة السجالت في ‪ DMA‬إلى وحدة المعالجة المركزية كسجالت واجهة اإلدخال ‪ /‬اإلخراج‪ .‬لذلك يمكن لوحدة المعالجة‬
‫المركزية القراءة والكتابة في سجالت ‪ DMA‬تحت تحكم البرنامج عبر ناقل البيانات‪.‬‬

‫‪DMA Block Diagram‬‬

‫توضيح ‪Explanation‬‬
‫تقوم وحدة المعالجة المركزية )‪ (CPU‬بتهيئة ‪ DMA‬عن طريق إرسال المعلومات المعطاة عبر ناقل البيانات‪.‬‬
‫•عنوان بداية كتلة الذاكرة حيث تكون البيانات متاحة (للقراءة) أو مكان تخزين البيانات (للكتابة)‪.‬‬
‫•يرسل أيضًا عدد الكلمات وهو عدد الكلمات في الذاكرة المراد قراءتها أو كتابتها‪.‬‬
‫•التحكم في تحديد طريقة النقل مثل القراءة أو الكتابة‪.‬‬
‫•عنصر تحكم لبدء نقل‪DMA.‬‬

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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Computer System Architecture‬‬ ‫‪5‬‬

‫‪ 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‬تولي مسؤولية ناقل النظام فقط عندما ال يطلبه المعالج‪.‬‬ ‫‪-‬‬

‫هرمية الذاكرة ‪Memory Hierarchy‬‬


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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Computer System Architecture‬‬ ‫‪6‬‬

‫توجد أربعة مستويات تخزين رئيسية‪:‬‬

‫داخلي‪ -‬سجالت المعالج وذاكرة التخزين المؤقت‪.‬‬ ‫•‬

‫رئيسي‪ -‬نظام ذاكرة الوصول العشوائي وبطاقات وحدة التحكم‪.‬‬ ‫•‬

‫تخزين كمي متصل‪ -‬تخزين ثانوي‪.‬‬ ‫•‬

‫تخزين إجمالي خارجي‪ -‬التخزين الثالثي والخارجي‪.‬‬ ‫•‬

‫رسم بياني لهرمية ذاكرة الحاسوب‬

‫أوضاع نظام التشغيل ‪Operating System Modes‬‬

‫يوجد وضعان للتشغيل في نظام التشغيل للتأكد من أنه يعمل بشكل صحيح‪ .‬هذه هي وضع المستخدم ‪ User mode‬وضع النواة‬
‫‪. Kernel mode‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Computer System Architecture‬‬ ‫‪7‬‬

‫وضع المستخدم ‪User mode‬‬

‫يكون النظام في وضع المستخدم عندما يقوم نظام التشغيل بتشغيل تطبيق مستخدم مثل التعامل مع محرر نصوص‪ .‬يحدث االنتقال‬
‫من وضع المستخدم إلى وضع ‪ kernel‬عندما يطلب التطبيق مساعدة نظام التشغيل أو تحدث مقاطعة أو مكالمة نظام ويتم ضبط‬
‫بت الوضع على ‪ 1‬في وضع المستخدم ويتم تغييره من ‪ 1‬إلى ‪ 0‬عند التبديل من وضع المستخدم إلى وضع‪kernel.‬‬

‫وضع لنواة ‪Kernel mode‬‬

‫يبدأ النظام في وضع ‪ kernel‬عند بدء التشغيل وبعد تحميل نظام التشغيل يقوم بتنفيذ التطبيقات في وضع المستخدم‪ .‬هناك بعض‬
‫التعليمات المميزة التي ال يمكن تنفيذها إال في وضع ‪ kernel.‬مثل تعليمات المقاطعة ‪ ،‬وإدارة المدخالت والمخرجات وما إلى‬
‫ذلك وإذا تم تنفيذ التعليمات ذات التعليمات في وضع المستخدم ‪ User mode‬فهذا غير قانوني ‪.‬‬

‫يتم تعيين بت الوضع على ‪ 0‬في وضع ‪ kernel.‬يتم تغييره من ‪ 0‬إلى ‪ 1‬عند التبديل من وضع ‪ kernel‬إلى وضع المستخدم‬
‫والصورة ادناه توضح االنتقال من وضع المستخدم إلى وضع ‪ kernel‬والعودة مرة أخرى ‪.‬‬

‫يتم تنفيذ عملية المستخدم في وضع المستخدم حتى يتلقى استدعاء نظام‪ System call.‬ثم يتم إنشاء اعتراض النظام وتعيين بت‬
‫األسلوب على الصفر‪ .‬يتم تنفيذ استدعاء النظام في وضع ‪ kernel.‬بعد اكتمال التنفيذ ‪ ،‬يتم إنشاء اعتراض النظام مرة أخرى‬
‫وتعيين بت الوضع إلى ‪ .1‬يعود التحكم في النظام إلى وضع ‪ kernel‬ويستمر تنفيذ العملية‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Computer System Architecture‬‬ ‫‪8‬‬

‫هناك ضرورة كبير للوضع المزدوج (وضع المستخدم ووضع النواة) في نظام التشغيل ويمكن أن يتسبب عدم وجود وضع‬
‫مزدوج ‪ ،‬أي وضع المستخدم ‪ User‬ووضع ‪ kernel‬في نظام التشغيل ‪ ،‬في حدوث مشكالت خطيرة حيث يمكن لبرنامج مستخدم‬
‫قيد التشغيل محو نظام التشغيل بطريق الخطأ عن طريق الكتابة فوقه ببيانات المستخدم‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
System Calls and Memory protection 1

Operating Systems
Lecture # 3

Department of Computer
4th Class

System Calls and Memory protection

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪System Calls and Memory protection‬‬ ‫‪2‬‬

‫استدعاءات النظام في نظام التشغيل ‪System Calls in Operating System‬‬

‫استدعاء النظام هو وسيلة لبرنامج مستخدم للتفاعل مع نظام التشغيل‪ .‬يطلب البرنامج العديد من الخدمات ويستجيب نظام التشغيل‬
‫من خالل استدعاء سلسلة من استدعاءات النظام لتلبية الطلب ويمكن كتابة استدعاء النظام بلغة التجميع أو لغة عالية المستوى‬
‫مثل ‪ C‬أو ‪ Pascal.‬استدعاءات النظام هي وظائف محددة مسبقًا قد يستدعيها نظام التشغيل مباشرةً إذا تم استخدام لغة عالية‬
‫المستوى‪.‬‬

‫ما هو استدعاء النظام ‪What is a System Call‬‬

‫استدعاء النظام هو طريقة لبرنامج الكمبيوتر لطلب خدمة من نواة نظام التشغيل ‪ 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‬‬

‫‪ .1‬يجب أن يطلب عندما يريد نظام الملفات إنشاء أو حذف ملف‪.‬‬


‫‪ .2‬تتطلب اتصاالت الشبكة استدعاءات النظام إلرسال واستقبال حزم البيانات‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪System Calls and Memory protection‬‬ ‫‪3‬‬

‫‪ .3‬قراءة ملف أو كتابته بحاجة إلى استدعاءات النظام‪.‬‬


‫‪ .4‬الوصول إلى األجهزة ‪ ،‬بما في ذلك الطابعة والماسح الضوئي بحاجة إلى استدعاءات نظام‪.‬‬
‫‪ .5‬يتم استخدام استدعاءات النظام إلنشاء وإدارة عمليات جديدة‪.‬‬

‫كيف تعمل مكالمات النظام ‪How System Calls Work‬‬

‫تعمل التطبيقات في منطقة من الذاكرة تُعرف باسم مساحة المستخدم ‪ User Space‬يتصل استدعاء النظام بنواة نظام التشغيل‬
‫والتي يتم تنفيذها في مساحة ‪ kernel‬عندما يقوم أحد التطبيقات بإنشاء استدعاء نظام فيجب أوالً الحصول على إذن من ال‬
‫‪ kernel‬ويحقق ذلك باستخدام طلب مقاطعة والذي يوقف العملية الحالية مؤقتًا وينقل التحكم إلى ال‪kernel.‬‬

‫قد يستغرق استدعاء النظام البسيطة بضع من النانو ثانية لتقديم النتيجة مثل استرداد تاريخ النظام ووقته وقد تستغرق مكالمة النظام‬
‫ثوان وتطلق معظم أنظمة التشغيل مؤشر ترابط ‪ kernel‬مميز لكل استدعاء للنظام‬
‫ٍ‬ ‫األكثر تعقيدًا مثل االتصال بجهاز الشبكة بضع‬
‫لتجنب االختناقات‪ .‬أنظمة التشغيل الحديثة متعددة الخيوط مما يعني أنها تستطيع التعامل مع مكالمات النظام المختلفة في نفس‬
‫الوقت‪.‬‬

‫أنواع مكالمات النظام ‪Types of System Calls‬‬

‫هناك خمسة أنواع شائعة من مكالمات النظام‪:‬‬

‫‪ .1‬التحكم في العمليات ‪ :Process Control‬التحكم في العملية هو استدعاء النظام المستخدم لتوجيه العمليات‪ .‬تتضمن‬
‫بعض أمثلة التحكم في العملية اإلنشاء ‪ ،‬التحميل ‪ ،‬اإلحباط ‪ ،‬اإلنهاء ‪ ،‬التنفيذ ‪ ،‬المعالجة ‪ ،‬إنهاء العملية ‪ ،‬إلخ‪.‬‬
‫‪ .2‬إدارة الملفات ‪ : File Management‬إدارة الملفات هي استدعاء نظام يتم استخدامه للتعامل مع الملفات‪ .‬تتضمن‬
‫بعض أمثلة إدارة الملفات إنشاء الملفات وحذفها وفتحها وإغالقها وقراءتها وكتابتها وما إلى ذلك‪.‬‬
‫‪ .3‬إدارة الجهاز ‪ : Device Management‬إدارة الجهاز هي مكالمة نظام تُستخدم للتعامل مع األجهزة‪ .‬تتضمن بعض‬
‫أمثلة إدارة الجهاز القراءة ‪ ،‬والجهاز ‪ ،‬والكتابة ‪ ،‬والحصول على سمات الجهاز ‪ ،‬وإصدار الجهاز ‪ ،‬وما إلى ذلك‪.‬‬
‫‪ .4‬صيانة المعلومات ‪ : Information Maintenance‬صيانة المعلومات هي استدعاء نظام يتم استخدامه للحفاظ على‬
‫المعلومات‪ .‬هناك بعض األمثلة على صيانة المعلومات ‪ ،‬بما في ذلك الحصول على بيانات النظام ‪ ،‬وتعيين الوقت أو‬
‫التاريخ‬
‫‪ .5‬االتصاالت ‪ : Communication‬االتصال هو مكالمة نظام يتم استخدامها لالتصال‪ .‬هناك بعض األمثلة على االتصال‬
‫‪ ،‬بما في ذلك إنشاء اتصاالت االتصال وحذفها وإرسال الرسائل واستالمها وما إلى ذلك‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
System Calls and Memory protection 4

Examples of Windows and Unix system calls

There are various examples of Windows and Unix system calls. These are as listed below
in the table:

Process Windows Unix

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()

Dr. Ahmed Khudhair Abbas


Computer Department
‫‪System Calls and Memory protection‬‬ ‫‪5‬‬

‫حماية الذاكرة في أنظمة التشغيل ‪Memory Protection in Operating Systems‬‬

‫ً‬
‫أشكاال مختلفة من حماية أو فصل الذاكرة وفي حماية الذاكرة يتعين علينا حماية نظام التشغيل‬ ‫أن أنظمة التشغيل المختلفة تستخدم‬
‫من عمليات المستخدم والتي يمكن القيام بها باستخدام ‪ relocation register‬بسجل حد ‪ limit register‬هنا يحتوي سجل‬
‫‪ relocation register‬على قيمة أصغر عنوان فعلي ‪ physical address‬بينما يحتوي ‪ limit register‬على نطاق العناوين‬
‫المنطقية ‪ logical addresses‬هذان السجالن لهما بعض الشروط مثل كل عنوان منطقي يجب أن يكون أقل من ‪.limit register‬‬
‫وتُستخدم وحدة إدارة الذاكرة ‪ memory management unit‬لترجمة العنوان المنطقي ‪ logical address‬بالقيمة الموجودة في‬
‫‪ relocation register‬ديناميكيًا وبعد ذلك يتم إرسال العنوان المترجم (أو المعين) إلى الذاكرة‪.‬‬

‫‪Support for relocation and limit registers in process‬‬

‫في الرسم البياني أعاله عندما يحدد المجدول ‪ scheduler‬عملية لعملية التنفيذ ‪ ، execution process‬يكون المرسل ‪dispatcher‬‬
‫من ناحية أخرى مسؤوالً عن تحميل سجالت ‪ relocation and limit registers‬بالقيم الصحيحة كجزء من تبديل السياق‬
‫‪ context switch‬مثل كل عنوان تم إنشاؤه بواسطة وحدة المعالجة المركزية ‪ CPU‬يتم فحصه مقابل هذين المسجلين ‪ ،‬وقد نحمي‬
‫نظام التشغيل والبرامج وبيانات المستخدمين من التغيير من خالل هذه العملية قيد التشغيل‪.‬‬

‫الحاجة إلى حماية الذاكرة ‪Need of Memory protection‬‬

‫تمنع حماية الذاكرة العملية من الوصول إلى الذاكرة غير المخصصة ‪ unallocated memory‬في نظام التشغيل ألنها تمنع‬
‫البرنامج من السيطرة على مقدار زائد من الذاكرة وقد يتسبب في تلف يؤثر على البرامج األخرى المستخدمة حاليًا أو قد يؤدي‬
‫إلى فقدان البيانات المحفوظة‪ .‬تساعد موارد حماية الذاكرة هذه أيضًا في اكتشاف التطبيقات الضارة ‪malicious or harmful‬‬
‫‪ applications‬والتي قد تتلف بعد عمليات نظام التشغيل‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪System Calls and Memory protection‬‬ ‫‪6‬‬

‫طرق حماية الذاكرة ‪Methods of memory protection‬‬

‫هناك طرق مختلفة للحماية من الوصول إلى الذاكرة التي لم يتم تخصيصها وبعض الطرق شائعة االستخدام مذكورة أدناه‪:‬‬

‫حماية الذاكرة باستخدام المفاتيح ‪: Memory Protection using Keys‬‬ ‫‪-‬‬

‫يمكن العثور على مفهوم استخدام حماية الذاكرة مع المفاتيح في معظم أجهزة الكمبيوتر الحديثة بغرض تنظيم الذاكرة المقسمة‬
‫إلى صفحات ‪ paged memory‬وللتوزيع الديناميكي بين برامج التشغيل المتوازية تعتمد المفاتيح على استخدام رموز خاصة‬
‫حيث يمكننا التحقق من التوافق بين استخدام مصفوفات خاليا الذاكرة وعدد البرامج قيد التشغيل وتمنح هذه الطريقة األساسية‬
‫المستخدمين عملية لفرض الحماية على أساس الصفحة ‪ page-based protections‬دون أي تعديل في جداول الصفحات‪.‬‬

‫حماية الذاكرة باستخدام الحلقات ‪: Memory Protection using Rings‬‬ ‫‪-‬‬

‫في علم الكمبيوتر تسمى المجاالت ‪ domains‬المتعلقة بالحماية المطلوبة حلقات الحماية ‪ Protection Rings‬تساعد هذه الطريقة‬
‫ً‬
‫امتيازا إلى‬ ‫في تحسين التسامح مع الخطأ ‪ fault tolerance‬وتوفر األمان‪ .‬يتم ترتيب هذه الحلقات في تسلسل هرمي من األكثر‬
‫األقل امتيا ًزا ‪ most privileged to least privileged‬في نظام تشغيل المشاركة أحادي المستوى ‪single-level sharing OS‬‬
‫يحتوي كل جزء على حلقة حماية لعملية القراءة والكتابة وتنفيذ العمليات فإذا كان هناك استخدام لرقم حلقة أعلى من خالل العملية‬
‫‪ ،‬فإن رقم الحلقة الخاص بالمقطع يؤدي إلى حدوث خطأ لكن لدينا بعض الطرق الستدعاء اإلجراءات بأمان والتي يمكن تشغيلها‬
‫برقم رنين أقل ثم العودة إلى رقم الحلقة األعلى‪.‬‬

‫العنونة القائمة على القدرة ‪: Capability-based addressing‬‬ ‫‪-‬‬

‫هي طريقة لحماية الذاكرة ال يمكن رؤيتها في أجهزة الكمبيوتر التجارية الحديثة‪ .‬هنا يتم استعادة المؤشرات ‪( pointers‬التي‬
‫تتكون من عنوان ذاكرة) بواسطة كائنات القدرات ‪ capabilities objects‬التي ال يمكن إنشاؤها إال من خالل التعليمات المحمية‬
‫ويمكن تنفيذها فقط من خالل نواة ‪ Kernel‬أو من خالل عملية أخرى مصرح لها بالتنفيذ ‪ ،‬وبالتالي فهي تمنح ميزة للتحكم في‬
‫العمليات غير المصرح بها في إنشاء مساحات عناوين منفصلة إضافية في الذاكرة‪.‬‬

‫حماية الذاكرة باستخدام األقنعة ‪Memory Protection using masks‬‬ ‫‪-‬‬

‫تستخدم األقنعة في حماية الذاكرة أثناء تنظيم الصفحات ‪ organization of paging‬في هذه الطريقة ‪ ،‬قبل التنفيذ تتم اإلشارة إلى‬
‫أرقام الصفحات لكل برنامج ويتم حجزها لوضع توجيهاتها‪ .‬هنا يتم منح الصفحات المخصصة للبرنامج اآلن التحكم في نظام‬
‫التشغيل في شكل رمز قناع (رمز ثنائي بت) والذي يتم تشكيله لكل برنامج عمل يتم تحديده بواسطة عدد البت‬

‫حماية الذاكرة باستخدام التجزئة ‪Memory Protection using Segmentation‬‬ ‫‪-‬‬

‫هي طريقة لتقسيم ذاكرة النظام إلى أجزاء مختلفة‪ .‬تُستخدم هياكل البيانات الخاصة بمعمارية ‪ x86‬لنظام التشغيل مثل جدول‬
‫واصف محلي ‪ local descriptor‬وجدول واصف عالمي ‪ global descriptor‬في حماية الذاكرة‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪System Calls and Memory protection‬‬ ‫‪7‬‬

‫حماية الذاكرة باستخدام التجزئة المحاكاة ‪Memory Protection using Simulated segmentation‬‬ ‫‪-‬‬

‫باستخدام هذه التقنية ‪ ،‬يمكننا مراقبة البرنامج لتفسير تعليمات كود اآللة الخاصة بهياكل النظام ويمكن للمحاكاة المساعدة في‬
‫حماية الذاكرة باستخدام التجزئة باستخدام المخطط والتحقق من صحة العنوان الهدف لكل تعليمات في الوقت الفعلي‪.‬‬

‫حماية األجهزة ونوع حماية األجهزة ‪Hardware Protection and Type of Hardware Protection‬‬

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

‫بشكل أساسي ‪ ،‬يتم تقسيم حماية األجهزة إلى ‪ 3‬فئات‪ :‬حماية وحدة المعالجة المركزية وحماية الذاكرة وحماية اإلدخال ‪ /‬اإلخراج‪.‬‬
‫على النحو التالي‪.‬‬

‫‪ .1‬حماية وحدة المعالجة المركزية ‪CPU Protection‬‬

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

‫‪2. .2‬حماية الذاكرة ‪Memory Protection‬‬

‫في حماية الذاكرة ‪ ،‬نتحدث عن هذا الموقف عندما تكون هناك عمليتان أو أكثر في الذاكرة وقد تصل إحدى العمليات إلى ذاكرة‬
‫العملية األخرى‪ .‬ولمنع حدوث هذا الموقف ‪ ،‬نستخدم سجلين على النحو التالي‪:‬‬

‫‪ .1‬السجل القاعدة ‪Base register‬‬


‫‪ .2‬تسجيل الحد ‪Limit register‬‬

‫يقوم مسجل ‪ Base register‬بتخزين عنوان بدء البرنامج ‪ starting address‬وتخزين السجل الحد ‪ limit register‬لحجم العملية‬
‫لذلك عندما تريد إحدى العمليات الوصول إلى الذاكرة ‪ ،‬يتم التحقق من إمكانية الوصول إلى الذاكرة أو عدم قدرتها على الوصول‬
‫إليها‪.‬‬

‫حماية اإلدخال ‪ /‬اإلخراج ‪I/O Protection‬‬

‫عندما نضمن حماية اإلدخال ‪ /‬اإلخراج ‪ I/O protection‬فلن تحدث بعض الحاالت مطلقًا في النظام مثل‪:‬‬

‫‪ .1‬إنهاء اإلدخال ‪ /‬اإلخراج لعملية أخرى ‪Termination I/O of other process‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪System Calls and Memory protection‬‬ ‫‪8‬‬

‫‪ .2‬عرض اإلدخال ‪ /‬اإلخراج لعملية أخرى ‪View I/O of other process‬‬


‫‪ .3‬إعطاء األولوية لعملية إدخال ‪ /‬إخراج معينة ‪Giving priority to a particular process I/O‬‬

‫حماية النظام في نظام التشغيل ‪System Protection in Operating System‬‬

‫تشير الحماية إلى آلية تتحكم في وصول البرامج أو العمليات أو المستخدمين إلى الموارد المحددة بواسطة نظام الكمبيوتر‪ .‬يمكننا‬
‫أن نأخذ الحماية كمساعد لنظام تشغيل متعدد البرمجة ‪ multi programming‬بحيث يمكن للعديد من المستخدمين مشاركة مساحة‬
‫اسم منطقي مشتركة بأمان مثل الدليل أو الملفات‪.‬‬

‫الحاجة للحماية ‪Need of Protection‬‬

‫لمنع وصول المستخدمين غير المصرح لهم‬ ‫•‬


‫للتأكد من أن كل برامج أو عمليات نشطة في النظام تستخدم الموارد فقط كما هو مذكور ‪،‬‬ ‫•‬
‫لتحسين الموثوقية من خالل الكشف عن األخطاء الكامنة‪.‬‬ ‫•‬

‫دور الحماية ‪Role of Protection‬‬

‫يتمثل دور الحماية في توفير آلية لتنفيذ السياسات ‪ mechanism‬التي تحدد استخدامات الموارد في نظام الكمبيوتر ويتم تحديد‬
‫بعض السياسات وقت تصميم النظام وبعضها تم تصميمه بواسطة إدارة النظام والبعض اآلخر يتم تحديده بواسطة مستخدمي‬
‫النظام لحماية ملفاتهم وبرامجهم‪.‬‬

‫يحتوي كل تطبيق على سياسات مختلفة الستخدام الموارد وقد تتغير بمرور الوقت لذا فإن حماية النظام ليست فقط من اهتمامات‬
‫مصمم نظام التشغيل ويجب على مبرمج التطبيق أيضًا تصميم آلية الحماية لحماية نظامهم من سوء االستخدام‪.‬‬

‫السياسة تختلف عن اآللية ‪ Policy is different from mechanism‬تحدد اآلليات كيف سيتم عمل شيء ما ‪ ،‬وتحدد السياسات‬
‫ما سيتم القيام به‪ .‬تتغير السياسات بمرور الوقت والمكان المناسب‪ .‬الفصل بين اآللية والسياسة مهم لمرونة النظام‪.‬‬

‫الحماية في نظام الملفات ‪Protection in File System‬‬

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

‫أنواع الوصول ‪Types of Access‬‬

‫تحتاج الملفات التي لها وصول مباشر ألي مستخدم إلى الحماية وال تتطلب الملفات التي ال يمكن الوصول إليها من قبل المستخدمين‬
‫اآلخرين أي نوع من الحماية‪ .‬توفر آلية الحماية تسهيل الوصول المتحكم فيه فقط من خالل الحد من أنواع الوصول إلى الملف‪.‬‬
‫يمكن منح حق الوصول أو عدم منحه ألي مستخدم بنا ًء على عدة عوامل أحدها هو نوع الوصول المطلوب‪ .‬يمكن التحكم في عدة‬
‫أنواع مختلفة من العمليات‪:‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫ﻓﺮاﻏﺎت‬ System Calls and Memory protection 9

• Read – Reading from a file.

• Write – Writing or rewriting the file.

• 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.

• List – List the name and attributes of the file.

‫ كل آلية منها لها‬.‫ هناك العديد من آليات الحماية‬.‫عمليات مثل إعادة التسمية وتحرير الملف الحالي والنسخ يمكن أيضًا التحكم فيها‬
.‫مزايا وعيوب مختلفة ويجب أن تكون مناسبة للتطبيق المقصود‬

Dr. Ahmed Khudhair Abbas


Computer Department
Virtual Machine 1

Operating Systems
Lecture # 4

Department of Computer
4th Class

Virtual Machine

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Virtual Machine‬‬ ‫‪2‬‬

‫الماكنة االفتراضية ‪Virtual Machine‬‬

‫اآللة االفتراضية )‪ (VM‬هي بيئة افتراضية تعمل كنظام كمبيوتر افتراضي مع وحدة المعالجة المركزية والذاكرة وواجهة الشبكة‬
‫والتخزين الخاصة بها والتي تم إنشاؤها على نظام أجهزة فعلي‪.‬‬

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

‫خصائص اآلالت االفتراضية‬

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

‫يوضح الرسم البياني أدناه الفرق بين نظام التشغيل الفردي بدون ‪ VM‬ونظام التشغيل المتعدد مع‪VM -‬‬

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

‫يمكن لبرنامج ‪ Hypervisor‬محاكاة العديد من األنظمة األساسية لألجهزة االفتراضية المعزولة عن بعضها البعض مما يسمح‬
‫لألجهزة االفتراضية بتشغيل أجهزة تشغيل ‪ Linux‬وخادم النوافذ ‪ Windows‬على نفس المضيف الفعلي األساسي‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Virtual Machine‬‬ ‫‪3‬‬

‫ال يختلف الجهاز االفتراضي الذي يُختصر عادةً إلى ‪ VM‬فقط عن أي جهاز كمبيوتر مادي آخر مثل الكمبيوتر المحمول أو‬
‫الهاتف الذكي أو الخادم فهو يحتوي على وحدة معالجة مركزية وذاكرة وأقراص لتخزين ملفاتك ويمكنه االتصال باإلنترنت إذا‬
‫لزم األمر في حين أن األجزاء التي يتكون منها جهاز الكمبيوتر الخاص بك (تسمى األجهزة) مادية وملموسة وغالبًا ما يُنظر إلى‬
‫األجهزة االفتراضية على أنها أجهزة كمبيوتر افتراضية أو أجهزة كمبيوتر معرفة بالبرامج داخل خوادم فعلية موجودة فقط كرمز ‪.‬‬

‫كيف تعمل اآللة االفتراضية‬

‫المحاكاة االفتراضية هي عملية إن شاء إصدار قائم على البرامج أو إصدار "افتراضي" من جهاز كمبيوتر مع كميات مخصصة‬
‫من وحدة المعالجة المركزية والذاكرة والتخزين "المستعارة" من جهاز كمبيوتر مضيف فعلي ‪ -‬مثل جهاز الكمبيوتر الشخصي‬
‫‪ -‬و ‪ /‬أو خادم بعيد ‪ -‬مثل خادم في مركز بيانات موفر السحابة‪ .‬الجهاز الظاهري هو ملف كمبيوتر‪ ،‬يسمى عادة ً صورة يتصرف‬
‫مثل جهاز كمبيوتر حقيقي‪ .‬يمكن تشغيله في نافذة كبيئة حوسبة منفصلة غالبًا لتشغيل نظام تشغيل مختلف ‪ -‬أو حتى للعمل كتجربة‬
‫الكمبيوتر الكاملة للمستخدم ‪ -‬كما هو شائع في أجهزة كمبيوتر عمل العديد من األشخاص‪ .‬يتم تقسيم الجهاز الظاهري عن باقي‬
‫النظام مما يعني أن البرنامج الموجود داخل الجهاز الظاهري ال يمكن أن يتداخل مع نظام التشغيل األساسي للكمبيوتر المضيف‪.‬‬

‫فيما يلي بعض الطرق الستخدام األجهزة االفتراضية‪:‬‬

‫بناء ونشر التطبيقات على السحابة‪.‬‬ ‫•‬

‫تجربة نظام تشغيل جديد بما في ذلك اإلصدارات التجريبية‪.‬‬ ‫•‬

‫تطوير بيئة جديدة لجعلها أبسط وأسرع للمطورين لتشغيل سيناريوهات اختبار التطوير‪.‬‬ ‫•‬

‫النسخ االحتياطي لنظام التشغيل الحالي الخاص بك‪.‬‬ ‫•‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Virtual Machine‬‬ ‫‪4‬‬

‫الوصول إلى البيانات المصابة بالفيروسات أو تشغيل تطبيق قديم عن طريق تثبيت نظام تشغيل أقدم‪.‬‬ ‫•‬

‫تشغيل البرامج أو التطبيقات على أنظمة تشغيل لم تكن مخصصة لها في األصل‪.‬‬ ‫•‬

‫ما هي فوائد استخدام األجهزة االفتراضية‬

‫بينما تعمل األجهزة االفتراضية مثل أجهزة الكمبيوتر الفردية مع أنظمة التشغيل والتطبيقات الفردية فإنها تتمتع بميزة البقاء مستقلة‬
‫تما ًما عن بعضها البعض وعن الجهاز المضيف الفعلي‪ .‬يتيح لك برنامج يسمى برنامج ‪ Hypervisor‬أو مدير الجهاز الظاهري‬
‫تشغيل أنظمة تشغيل مختلفة على أجهزة افتراضية مختلفة في نفس الوقت‪ .‬هذا يجعل من الممكن تشغيل ‪ Linux VMs‬على‬
‫سبيل المثال ‪ ،‬على نظام تشغيل ‪ ، Windows‬أو تشغيل إصدار سابق من ‪ Windows‬على نظام تشغيل ‪ Windows‬أحدث‪.‬‬

‫وألن األجهزة االفتراضية مستقلة عن بعضها البعض فهي أيضًا محمولة للغاية‪ .‬يمكنك نقل جهاز ‪ VM‬على برنامج‬
‫‪Hypervisor‬إلى برنامج ‪ Hypervisor‬آخر على جهاز مختلف تما ًما على الفور تقريبًا‪.‬‬

‫توفير التكاليف ‪ :‬تشغيل بيئات افتراضية متعددة من جزء واحد من البنية التحتية يعني أنه يمكنك تقليل أثر البنية التحتية‬ ‫•‬
‫المادية بشكل كبير‪ .‬يعمل هذا على تعزيز أرباحك النهائية ‪ -‬تقليل الحاجة إلى صيانة العديد من الخوادم تقريبًا وتوفير تكاليف‬
‫الصيانة والكهرباء‪.‬‬

‫أمرا سهالً وسري ًعا نسبيًا وهو أبسط بكثير من توفير بيئة جديدة كاملة ‪.‬‬
‫السرعة ‪ :‬يعد تشغيل جهاز افتراضي ً‬ ‫•‬

‫تقليل وقت التوقف عن العمل ‪ :‬أجهزة ‪ VM‬محمولة للغاية ويسهل نقلها من جهاز مراقبة إلى آخر على جهاز مختلف‬ ‫•‬
‫وهذا يعني أنها تمثل حالً رائعًا للنسخ االحتياطي ‪ ،‬في حالة تعطل المضيف بشكل غير متوقع‪.‬‬

‫قابلية التوسع ‪ :‬تسمح لك أجهزة ‪ VM‬بتوسيع نطاق تطبيقاتك بسهولة أكبر عن طريق إضافة المزيد من الخوادم المادية‬ ‫•‬
‫أو االفتراضية لتوزيع عبء العمل عبر أجهزة افتراضية متعددة‪ .‬نتيجة لذلك ‪ ،‬يمكنك زيادة توافر وأداء تطبيقاتك‪.‬‬

‫نظرا أل ن األجهزة االفتراضية تعمل في أنظمة تشغيل متعددة ‪ ،‬فإن استخدام نظام تشغيل ضيف على‬
‫ً‬ ‫مزايا األمان ‪:‬‬ ‫•‬
‫جهاز افتراضي يسمح لك بتشغيل تطبيقات ذات أمان مشكوك فيه ويحمي نظام التشغيل المضيف‪ .‬تسمح األجهزة االفتراضية‬
‫أيضًا بتحسين األدلة الجنائية األمنية ‪ ،‬وغالبًا ما تُستخدم لدراسة فيروسات الكمبيوتر بأمان ‪ ،‬وعزل الفيروسات لتجنب المخاطرة‬
‫بجهاز الكمبيوتر المضيف‪.‬‬

‫ما هو برنامج ‪Hypervisor‬‬

‫يمكن تشغيل العديد من األجهزة االفتراضية في وقت واحد على نفس الكمبيوتر الفعلي ويتم إدارتها جميعًا بواسطة برنامج‬
‫‪ Hypervisor.‬وهو البرنامج الذي يدمج األجهزة المادية و "األجهزة" االفتراضية لـ ‪ VM.‬هذا مشابه جدًا لكيفية عمل نظام‬
‫التشغيل في جهاز كمبيوتر نموذجي‪ :‬يشبه إلى حد كبير حارس عبور المدرسة الذي يساعد العديد من الطالب على التحرك بأمان‬
‫ذهابًا وإيابًا عبر تقاطع مزدحم ويتأكد المشرف على كل جهاز افتراضي من حصول كل جهاز افتراضي على الموارد التي‬
‫يحتاجها من الخادم الفعلي في بطريقة منظمة وفي الوقت المناسب‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Virtual Machine‬‬ ‫‪5‬‬

‫•ما هو جهاز ‪ Spot VM‬؟‬

‫تعد أجهزة ‪ Spot VM‬جز ًءا من الخدمات التي يقدمها موفر السحابة ‪ Cloud server‬مثل ‪ ، Microsoft Azure‬والتي توفر‬
‫سعة حوسبة قابلة للتطوير بتخفيضات كبيرة وتُعد أجهزة ‪ Spot VMs‬مثالية ألحمال العمل التي يمكن مقاطعتها ‪ ،‬مثل‪:‬‬

‫حدد سيناريوهات الحوسبة عالية األداء ‪ ،‬أو مهام المعالجة المجمعة ‪ ،‬أو تطبيقات العرض المرئي‪.‬‬ ‫•‬

‫بيئات التطوير ‪ /‬االختبار ‪ ،‬بما في ذلك التكامل المستمر وأعباء عمل التسليم المستمر‪.‬‬ ‫•‬

‫البيانات الضخمة ‪ ،‬التحليالت المستندة إلى الحاويات الكبيرة الحجم‬ ‫•‬

‫الخصائص الرئيسية لآللة االفتراضية‬

‫بعد تحديد مفهوم اآللة االفتراضية وكشف بعض وظائفها من الضروري معرفة خصائصها الرئيسية‪:‬‬

‫‪ .1‬يمكن تثبيت كل نظام تشغيل تقريبًا في غالبية األجهزة االفتراضية مثل ‪ Windows‬أو ‪ Linux‬أو ‪ Android‬أو ‪Mac‬‬
‫‪ .OS X‬على الرغم من وجود أنظمة تشغيل أخرى تسمح بعرض نظام تشغيل واحد فقط‪.‬‬
‫‪ .2‬كل نظام تشغيل يتم تحويله إلى واقع افتراضي مستقل تما ًما عن باقي أنظمة التشغيل‪ .‬لذلك إذا عانى جهاز افتراضي من‬
‫أي مشكلة أو توقف عن العمل بشكل مباشر فلن يتأثر اآلخرون وسيواصلون مسارهم وعملهم‪.‬‬
‫‪ .3‬يتطابق وضع استخدام أنظمة التشغيل من جهاز افتراضي مع نظام التشغيل المثبت على أي جهاز كمبيوتر‪.‬‬
‫‪ .4‬العناصر المكونة لجهاز افتراضي هي نفس العناصر المتوفرة في جهاز كمبيوتر فعلي من ذاكرة الوصول العشوائي‬
‫والقرص الصلب إلى محرك األقراص المضغوطة وبطاقة الفيديو وبطاقة الشبكة ويتم تضمينها في جهاز ظاهري ‪،‬‬
‫وتعتبر المحاكاة االفتراضية لجميع هذه العناصر هي االختالف الوحيد فيما يتعلق بجهاز كمبيوتر حقيقي‪.‬‬
‫‪ .5‬يتم تضمين جميع العناصر الموجودة في الجهاز الظاهري في مجموعة من الملفات‪ .‬بهذه الطريقة يمكن الحصول على‬
‫نسخة من نظام تشغيل افتراضي من كمبيوتر إلى آخر وكذلك إنشاء نسخ احتياطية‪ .‬يتم تنفيذ كلتا العمليتين بسرعة‬
‫وسهولة ويتم تجنب المشاكل الفنية أيضًا‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Operating system services 1

Operating Systems
Lecture # 5

Department of Computer
4th Class

Operating system services

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Operating system services‬‬ ‫‪2‬‬

‫وفر نظام التشغيل بيئة عمل لتنفيذ البرامج‪ ،‬فهو يقدم خدمات للبرامج ولمستخدِمي تلك البرامج‪ .‬وتختلف هذه‬
‫الخدمات من نظام تشغيل إلى آخر‪ ،‬بيد أنه يمكن تمييز بعض التصنيفات العامة لها‪ ،‬تجعل هذه الخدمات‬
‫المبرمجين أكثر مقدرة على البرمجة وتسهل عليهم عملهم‪.‬‬

‫• تنفيذ البرنامج ‪Program execution‬‬


‫عمليات االدخال واالخراج ‪Input/Output Operation‬‬ ‫•‬
‫التالعب بنظام الملفات ‪File System manipulation‬‬ ‫•‬
‫االتصاالت ‪Communication‬‬ ‫•‬
‫اكتشاف الخطأ ‪Error Detection‬‬ ‫•‬
‫تخصيص الموارد ‪Resource Allocation‬‬ ‫•‬
‫الحماية ‪Protection‬‬ ‫•‬

‫تنفيذ البرنامج ‪Program execution‬‬


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

‫فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بإدارة البرنامج‪:‬‬

‫➢ تحميل البرنامج في الذاكرة‪.‬‬


‫➢ ينفذ البرنامج ‪.‬‬
‫➢ يعالج تنفيذ البرنامج‪.‬‬
‫➢ يوفر آلية لمزامنة العملية‪.‬‬
‫➢ يوفر آلية لعملية االتصال‪.‬‬
‫➢ يوفر آلية للتعامل مع المأزق ‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating system services‬‬ ‫‪3‬‬

‫عمليات االدخال واالخراج ‪Input/Output Operation‬‬


‫يتكون نظام االدخال ‪ /‬االخراج الفرعي من أجهزة االدخال ‪ /‬االخراج وبرامج التشغيل المقابلة لها‪ .‬يخفي‬
‫السائقون خصوصيات أجهزة معينة عن المستخدم ألن برنامج تشغيل الجهاز يعرف خصوصيات الجهاز‬
‫المحدد‪ .‬يدير نظام التشغيل االتصال بين المستخدم وبرامج تشغيل الجهاز ‪.‬‬

‫فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بعملية االدخال ‪ /‬االخراج ‪:‬‬

‫➢ تعني عملية االدخال ‪ /‬االخراج قراءة أو كتابة عملية باستخدام أي ملف أو أي جهاز إدخال ‪ /‬إخراج محدد ‪.‬‬
‫➢ قد يتطلب البرنامج أي جهاز ادخال ‪ /‬اخراج أثناء التشغيل ‪.‬‬
‫➢ يوفر نظام التشغيل الوصول إلى جهاز االدخال ‪ /‬االخراج المطلوب عند الحاجة ‪.‬‬

‫نظام الملفات ‪File System manipulation‬‬


‫يمثل الملف مجموعة من المعلومات ذات الصلة‪ .‬يمكن للكمبيوتر تخزين الملفات على القرص (التخزين‬
‫الثانوي)‪ ،‬لغرض التخزين على المدى الطويل‪ .‬أمثلة قليلة على وسائط التخزين هي الشريط المغناطيسي‬
‫واألقراص المغناطيسية ومحركات األقراص الضوئية مثل األقراص المضغوطة وأقراص ‪ DVD.‬كل من هذه‬
‫الوسائط لها خصائصها الخاصة مثل السرعة والسعة ومعدل نقل البيانات وطرق الوصول إلى البيانات ‪.‬‬

‫عادة ما يتم تنظيم نظام الملفات في أدلة لسهولة التصفح واالستخدام‪ .‬قد تحتوي هذه األدلة على ملفات وتوجيهات‬
‫أخرى ‪.‬‬

‫فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بإدارة الملفات ‪.‬‬

‫➢ يحتاج البرنامج إلى قراءة ملف أو كتابة ملف‪.‬‬


‫➢ يمنح نظام التشغيل اإلذن للبرنامج للعمل في الملف‪.‬‬
‫➢ اإلذن يختلف من قراءة فقط‪ ،‬للقراءة والكتابة‪ ،‬مرفوض وما الى ذلك‪.‬‬
‫➢ يوفر نظام التشغيل واجهة للمستخدم إلنشاء ‪ /‬حذف الملفات ‪.‬‬
‫➢ يوفر نظام التشغيل واجهة للمستخدم إلنشاء ‪ /‬حذف الدالئل ‪.‬‬
‫➢ يوفر نظام التشغيل واجهة إلنشاء نسخة احتياطية لنظام الملفات ‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating system services‬‬ ‫‪4‬‬

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

‫فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق باالتصاالت ‪:‬‬

‫➢ غالبًا ما تتطلب عمليتان نقل البيانات بينهما ‪.‬‬


‫➢ يمكن أن تكون العمليتان على جهاز كمبيوتر واحد أو على جهاز كمبيوتر مختلف ولكنهما متصلتان‬
‫عبر شبكة الكمبيوتر‪.‬‬
‫➢ يمكن تنفيذ االتصال بطريقتين إما عن طريق الذاكرة المشتركة أو عن طريق تمرير الرسائل ‪.‬‬

‫اكتشاف الخطأ ‪Error Detection‬‬


‫يمكن أن يحدث الخطأ في أي وقت وفي أي مكان‪ .‬قد يحدث خطأ في وحدة المعالجة المركزية أو في أجهزة‬
‫االدخال ‪ /‬االخراج أو في أجهزة الذاكرة‪.‬‬

‫فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بمعالجة األخطاء‪:‬‬

‫➢ يبقى نظام التشغيل على علم باألخطاء المحتملة باستمرار ‪.‬‬


‫➢ يتخذ نظام التشغيل اإلجراء المناسب لضمان الحوسبة الصحيحة والمتسقة‪.‬‬

‫تخصيص الموارد ‪Resource Allocation‬‬


‫في حالة وجود بيئة متعددة المستخدمين أو متعددة المهام فان الموارد مثل الذاكرة الرئيسية ودورات وحدة‬
‫المعالجة المركزية والملفات يتم تخصيص التخزين لكل مستخدم أو وظيفة‪.‬‬

‫فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بإدارة الموارد‪:‬‬

‫➢ يدير نظام التشغيل جميع أنواع الموارد باستخدام أدوات الجدولة ‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating system services‬‬ ‫‪5‬‬

‫➢ يتم استخدام خوارزميات جدولة وحدة المعالجة المركزية لتحسين استخدام وحدة المعالجة المركزية ‪.‬‬

‫الحماية ‪Protection‬‬
‫بالنظر إلى أن أنظمة الكمبيوتر التي لديها عدة مستخدمين هي التنفيذ المتزامن لعمليات متعددة‪ ،‬فيجب حماية‬
‫العمليات المختلفة من أنشطة بعضها البعض‪ .‬تشير الحماية إلى آلية أو طريقة للتحكم في وصول البرامج أو‬
‫العمليات أو المستخدمين إلى الموارد التي تحددها أنظمة الكمبيوتر ‪.‬‬

‫فيما يلي األنشطة الرئيسية لنظام التشغيل فيما يتعلق بالحماية ‪:‬‬

‫➢ يضمن نظام التشغيل التحكم في الوصول إلى موارد النظام بالكامل ‪.‬‬
‫➢ يضمن نظام التشغيل حماية أجهزة االدخال ‪ /‬االخراج الخارجية من محاوالت الوصول غير الصالحة‪.‬‬
‫➢ يوفر نظام التشغيل ميزة المصادقة لكل مستخدم عن طريق كلمة مرور‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Types Of Operating Systems 1

Operating Systems
Lecture # 6

Department of Computer
4th Class

Types Of Operating Systems

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Types Of Operating Systems‬‬ ‫‪2‬‬

‫سم نظام التشغيل من حيث قدرته على تشغيل أكثر من برنامج للمستخدم إلى قسمين ‪:‬‬
‫يُق َ‬

‫نظام متعدد المهام ‪ : Multi-Tasking‬هنا يُتيح للمستخدم التعامل مع أكثر من برنامج في الوقت نفسه‪.‬‬ ‫•‬

‫نظام أحادي المهام ‪ : Single-Tasking‬هذا النظام ال يُس َمح للمستخدم بتشغيل أكثر من برنامجٍ واح ٍد في الوقت ذاته‪.‬‬ ‫•‬

‫كما تنقسم األقسام أعاله إلى عدة أقسام كذلك‬

‫المنفرد المستخدم المنفرد المهمة ‪Single User Single Task‬‬

‫أبسط أنواع نظم التشغيل تخدم مستخدما واحدا في الوقت الواحد وهو منفرد المهمة )‪ (Single-Tasking‬بمعنى آخر ويمكنه أن‬
‫ينفذ برنامجا واحدا فقط في الوقت الواحد ومن األمثلة عليه نظام ‪MS-DOS‬‬

‫المنفرد المستخدم المتعدد المهام ‪Single User Multi Tasks‬‬

‫هذا النظام لديه القدرة على تنفيذ أكثر من برنامج واحد بشكل متزامن‪ ،‬حيث تنتقل الوحدة المعالجة المركزية )‪ (CPU‬بين المهمات‬
‫بسرعة كبيرة‪ .‬ومن أمثلته ‪Windows‬‬

‫المتعدد المستخدمين المنفرد المهمة ‪Multi User Single task‬‬

‫يسمح هذا النظام لعدد من األشخاص بتنفيذ كل منهم برنامجا ً واحدا ّ في الوقت نفسه‪ .‬ويزود كل مستخدم بمحطة إدخال وإخراج‬
‫تتصل مع الحاسوب المركزي ويسمى هذا التنظيم بنظام المشاركة الزمنية )‪ (Timesharing‬وذلك ألن نظام التشغيل يأمر‬
‫الحاسوب باالنتقال بسرعة كبيرة بين المستخدمين بعد إعطائهم فترات زمنية ثابتة الستخدام ‪ CPU‬وتسمى هذه الفترات بالشرائح‬
‫الزمنية )‪ (Time Slices‬وهي قصيرة جدا ً (حوالي ألوف جزئية من الثانية) بحيث يتوهم كل مستخدم أنه يمتلك انتباه الحاسوب‬
‫كلية ومن امثلته‪Windows NT.‬‬

‫المتعددة المستخدمين المتعددة المهام ‪Multi User Multi Tasks‬‬

‫هو عباره عن نظم التشغيل الحديثة حيث تتيح للمستخدم تشغيل عدة برامج حتى إن كان تعدد المعالجات )‪ (CPU‬غير كافية لذلك‪.‬‬
‫تقوم نظم التشغيل بتوزيع وقت المعالج بين هذه البرامج بحيث يأخذ كل برنامج وقت محدد من المعالج من ثم يقوم بإيقاف مؤقت‬
‫للبرنامج وإعطاء برنامج اخر هذا الوقت‪ .‬هذا يعني ان خالل اللحظة الواحدة برنامج واحد يعمل على المعالج ونظام التشغيل يقوم‬
‫بالتغيير بسرعة كبيرة جدا ً كأجزاء من الثانية‪ .‬عملية توزيع وقت المعالج تسمى بالجدولة )‪ (scheduling‬حيث يحتفظ نظام‬
‫التشغيل بقائمة من البرامج التي قام ال ُمستخدم بتشغيلها وتقوم عملية الجدولة بتوزيع وقت لكل برنامج موجود في هذه القائمة‬
‫ليستفيد من ال ُمعالج في هذا الوقت‪.‬‬

‫ويمكن تصنيف األنواع المختلفة ألنظمة من حيث طريقة العمل وفيما يلي بعض األنواع المهمة من أنظمة التشغيل األكثر استخدا ًما‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Types Of Operating Systems‬‬ ‫‪3‬‬

‫‪ .1‬نظام التشغيل الدفعي ‪Batch operating system‬‬

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

‫فيما يلي مشاكل أنظمة الدُفعات ‪:‬‬

‫عدم وجود تفاعل بين المستخدم والوظيفة‪.‬‬ ‫‪-‬‬


‫غالبًا ما تكون وحدة المعالجة المركزية خاملة ‪ ،‬ألن سرعات أجهزة االدخال ‪ /‬االخراج الميكانيكية تكون أبطأ من وحدة‬ ‫‪-‬‬
‫المعالجة المركزية ‪.‬‬
‫من الصعب إعطاء األولوية المطلوبة ‪.‬‬ ‫‪-‬‬

‫‪ .2‬أنظمة تشغيل مشاركة الوقت ‪Time-sharing operating systems‬‬

‫تعد مشاركة الوقت تقنية تمكن العديد من األشخاص الموجودين في محطات طرفية مختلفة من استخدام نظام كمبيوتر معين في‬
‫نفس الوقت‪ .‬تعد مشاركة الوقت أو تعدد المهام امتدادًا منطقيًا للبرمجة المتعددة‪ .‬يُطلق على وقت المعالج الذي يتم مشاركته بين‬
‫عدة مستخدمين في وقت واحد اسم مشاركة الوقت‪ .‬يتمثل االختالف الرئيسي بين أنظمة الدُفعات متعددة البرامج وأنظمة مشاركة‬
‫الوقت في أنه في حالة أنظمة الدُفعات متعددة البرامج ‪ ،‬يكون الهدف هو تعظيم استخدام المعالج ‪ ،‬بينما يتمثل هدف أنظمة مشاركة‬
‫الوقت في تقليل وقت االستجابة‪ .‬يتم تنفيذ مهام متعددة بواسطة وحدة المعالجة المركزية )‪ (CPU‬عن طريق التبديل بينها ‪ ،‬لكن‬
‫كثيرا‪ .‬وبالتالي ‪ ،‬يمكن للمستخدم تلقي استجابة فورية ‪ .‬على سبيل المثال ‪ ،‬في معالجة المعامالت ‪ ،‬يقوم المعالج‬
‫ً‬ ‫التبديل يحدث‬
‫بتنفيذ كل برنامج مستخدم في دفعة قصيرة أو كمية من الحساب‪ .‬هذا إذا كان ‪ n‬مستخدمين موجودين ‪ ،‬يمكن لكل مستخدم الحصول‬
‫ثوان على األكثر‪ .‬يستخدم نظام التشغيل جدولة‬
‫ٍ‬ ‫على الوقت الكمي‪ .‬عندما يرسل المستخدم األمر ‪ ،‬يكون وقت االستجابة بضع‬
‫وحدة المعالجة المركزية )‪ (CPU‬والبرمجة المتعددة لتزويد كل مستخدم بجزء صغير من الوقت‪ .‬تم تعديل أنظمة الكمبيوتر التي‬
‫تم تصميمها بشكل أساسي كنظم دفعات إلى أنظمة مشاركة الوقت ‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Types Of Operating Systems‬‬ ‫‪4‬‬

‫العيوب‬ ‫المزايا‬
‫مشكلة الموثوقية ‪.‬‬ ‫‪-‬‬ ‫توفر ميزة االستجابة السريعة ‪.‬‬ ‫‪-‬‬
‫مسألة أمن وسالمة برامج وبيانات المستخدم ‪.‬‬ ‫‪-‬‬ ‫يتجنب ازدواجية البرامج ‪.‬‬ ‫‪-‬‬
‫مشكلة اتصال البيانات ‪.‬‬ ‫‪-‬‬ ‫يقلل وقت خمول وحدة المعالجة المركزية ‪.‬‬ ‫‪-‬‬

‫‪ .3‬نظام التشغيل الموزع ‪Distributed operating System‬‬

‫تستخدم األنظمة الموزعة معالجات مركزية متعددة لخدمة تطبيقات متعددة في الوقت الفعلي ومستخدمين متعددين‪ .‬يتم توزيع‬
‫وظائف معالجة البيانات بين المعالجات وفقًا لذلك يمكن للمرء أداء كل وظيفة بكفاءة أكبر‪ .‬تتواصل المعالجات مع بعضها البعض‬
‫من خالل خطوط اتصال مختلفة (مثل الحافالت عالية السرعة أو خطوط الهاتف)‪ .‬ويشار إلى هذه على أنها أنظمة مقترنة بشكل‬
‫فضفاض أو أنظمة موزعة‪ .‬قد تختلف المعالجات في النظام الموزع من حيث الحجم والوظيفة‪ .‬يشار إلى هذه المعالجات باسم‬
‫المواقع والعقد وأجهزة الكمبيوتر وما إلى ذلك ‪.‬‬

‫فيما يلي مزايا األنظمة الموزعة‪:‬‬

‫مع إمكانية مشاركة الموارد ‪ ،‬قد يتمكن المستخدم في موقع ما من استخدام الموارد المتاحة في موقع آخر‪.‬‬ ‫‪-‬‬
‫تسريع تبادل البيانات مع بعضها البعض عبر البريد اإللكتروني ‪.‬‬ ‫‪-‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Types Of Operating Systems‬‬ ‫‪5‬‬

‫إذا فشل أحد المواقع في نظام موزع ‪ ،‬فمن المحتمل أن تستمر المواقع المتبقية في العمل ‪.‬‬ ‫‪-‬‬
‫خدمة أفضل للعمالء‪.‬‬ ‫‪-‬‬
‫تقليل الحمل على الكمبيوتر المضيف‪.‬‬ ‫‪-‬‬
‫الحد من التأخير في معالجة البيانات ‪.‬‬ ‫‪-‬‬

‫‪ .4‬نظام تشغيل الشبكة ‪Network operating System‬‬

‫يعمل نظام تشغيل الشبكة على خادم ويوفر للخادم القدرة على إدارة البيانات والمستخدمين والمجموعات واألمن والتطبيقات‬
‫ووظائف الشبكات األخرى‪ .‬الغرض األساسي من نظام تشغيل الشبكة هو السماح بالوصول المشترك للملفات والطابعة بين أجهزة‬
‫كمبيوتر متعددة في شبكة ‪ ،‬وعادة ً ما تكون شبكة محلية )‪ (LAN‬أو شبكة خاصة أو شبكات أخرى‪ .‬من أمثلة أنظمة تشغيل‬
‫‪Mac OS X , Linux , UNIX ,‬‬ ‫الشبكة ‪Microsoft Windows Server‬‬

‫العيوب‬ ‫المزايا‬
‫ارتفاع تكلفة شراء وتشغيل الخادم‪.‬‬ ‫‪-‬‬ ‫الخوادم المركزية مستقرة للغاية ‪.‬‬ ‫‪-‬‬
‫االعتماد على موقع مركزي لمعظم العمليات ‪.‬‬ ‫‪-‬‬ ‫يتم إدارة األمن بواسطة الخادم ‪.‬‬ ‫‪-‬‬
‫مطلوب صيانة وتحديثات منتظمة ‪.‬‬ ‫‪-‬‬ ‫يمكن دمج الترقيات للتقنيات واألجهزة الجديدة‬ ‫‪-‬‬
‫بسهولة في النظام ‪.‬‬
‫الوصول عن بعد إلى الخوادم ممكن من مواقع‬ ‫‪-‬‬
‫وأنواع مختلفة من األنظمة‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Types Of Operating Systems‬‬ ‫‪6‬‬

‫‪ .5‬نظام التشغيل الوقت الحقيقي ‪Real Time operating System‬‬

‫صغيرا‬
‫ً‬ ‫ُعرف نظام الوقت الحقيقي بأنه نظام معالجة بيانات يكون فيه الفاصل الزمني المطلوب لمعالجة المدخالت واالستجابة لها‬
‫ي ّ‬
‫جدًا لدرجة أنه يتحكم في البيئة‪ .‬تكون المعالجة في الوقت الفعلي دائ ًما عبر اإلنترنت بينما ال يلزم أن يكون النظام عبر اإلنترنت‬
‫في الوقت الفعلي‪ .‬يُطلق على الوقت الذي يستغرقه النظام لالستجابة إلدخال وعرض المعلومات المحدثة المطلوبة وقت االستجابة‪.‬‬
‫لذا في هذه الطريقة يكون وقت االستجابة أقل بكثير مقارنة بالمعالجة عبر اإلنترنت‪ .‬تُستخدم أنظمة الوقت الفعلي عندما تكون‬
‫هناك متطلبات زمنية صارمة لتشغيل المعالج أو تدفق البيانات ويمكن استخدام أنظمة الوقت الفعلي كجهاز تحكم في تطبيق‬
‫مخصص‪ .‬يحتوي نظام التشغيل في الوقت الفعلي على قيود زمنية محددة جيدًا وثابتة وإال سيفشل النظام‪ .‬على سبيل المثال ‪،‬‬
‫التجارب العلمية وأنظمة التصوير الطبي وأنظمة التحكم الصناعية وأنظمة األسلحة والروبوتات وأجهزة التحكم في األجهزة‬
‫المنزلية ونظام التحكم في الحركة الجوية وما إلى ذلك ‪.‬‬

‫هناك نوعان من أنظمة التشغيل في الوقت الفعلي ‪:‬‬

‫‪ .1‬أنظمة الوقت الفعلي الصعب ‪Hard real-time systems‬‬

‫تضمن أنظمة الوقت الفعلي الصلب إكمال المهام الحرجة في الوقت المحدد‪ .‬في أنظمة الوقت الفعلي الصعب ‪ ،‬يكون التخزين‬
‫الثانوي محدودًا أو مفقودًا مع البيانات المخزنة في ذاكرة القراءة فقط‪ .‬في هذه األنظمة ‪ ،‬لم يتم العثور على الذاكرة االفتراضية‬
‫أبدًا ‪.‬‬

‫‪ .2‬أنظمة الوقت الحقيقي الناعمة ‪Soft real-time systems‬‬

‫أنظمة الوقت الحقيقي الناعمة أقل تقييدًا‪ .‬تحظى المهام الحرجة في الوقت الفعلي باألولوية على المهام األخرى وتحتفظ‬
‫باألولوية حتى تستجيب‪ .‬تتمتع أنظمة الوقت الفعلي اللينة بفائدة محدودة عن أنظمة الوقت الفعلي الصعبة‪ .‬على سبيل المثال‬
‫‪ ،‬الوسائط المتعددة ‪ ،‬والواقع االفتراضي ‪ ،‬والمشاريع العلمية المتقدمة مثل االستكشاف تحت سطح البحر ومركبات الكواكب‬
‫وما إلى ذلك‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Types Of Operating Systems‬‬ ‫‪7‬‬

‫‪ .6‬األنظمة المدمجة ‪Embedded Systems‬‬

‫صا للقيام بمهمة محددة أو عدد من المهمات المحددة‪ ،‬أي أنه مصمم‬
‫تعني ارتباط شي بشيء آخر‪ ،‬وهذا النظام صمم خصي ً‬
‫ألغراض محددة‪ ،‬وهو المتحكم أو المعالج القائم على النظام الذي تم تصميمه ليؤدي مهمة محددة أو عدة مهمات محددة‪ .‬على‬
‫سبيل المثال‪ :‬إنذار الحريق هو نظام مدمج‪ ،‬واآلالت الصناعية‪ ،‬واألجهزة الزراعية والمعدات الطبية والكاميرات واألجهزة‬
‫ً‬
‫فضال عن األجهزة النقالة (المحمول)‪ ،‬وأيضًا أجهزة الراوتر (‪ )Routers‬وأمثلة على األنظمة المدمجة في منتج‬ ‫المنزلية‪،‬‬
‫أكبر وهو الحاسوب (‪ )Computer‬الـ ‪ DVD Player‬وكارت الـ ‪.LAN‬واألنظمة المدمجة بعضها يحتوي على واجهة‬
‫مستخدم (‪ )UI‬وآخر ال‪ ..‬على سبيل المثال األجهزة التي صممت ألداء مهمة واحدة ال تحتوي على واجهة مستخدم في كثير‬
‫من األحيان‪ ،‬واألخرى األكثر تعقيدًا والتي صممت ألداء عدد أكبر من المهمات مثل األجهزة النقالة (المحمول) صممت‬
‫بواجهة مستخدم رسومية (‪ .)GUI‬يحتوي النظام المدمج على ثالث مكونات أساسية هي الجزء المادي (‪)Hardware‬‬
‫وتطبيقات برمجية (‪ )Application Software‬و ‪ RTOS‬وهو اختصار لـ ‪.Real Time Operating system‬‬

‫من مميزات هذا النظام‪:‬‬

‫سهولة التخصيص (تخصيص النظام ألداء المهمات المحددة)‪.‬‬ ‫‪-‬‬


‫منخفض استهالك الطاقة‪.‬‬ ‫‪-‬‬
‫تكلفة منخفضة‪.‬‬ ‫‪-‬‬
‫أداء جيد‪ .‬ويعتبر من أهم عيوب األنظمة المدمجة جهود تطويرها وإنتاجها عالية‪.‬‬ ‫‪-‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Operating System Processes 1

Operating Systems
Lecture # 7

Department of Computer
4th Class

Operating System Processes

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Operating System Processes‬‬ ‫‪2‬‬

‫العملية ‪Process‬‬

‫هي في األساس برنامج قيد التنفيذ‪ .‬وان تنفيذ العملية يجب أن يتقدم بطريقة متسلسلة‪ .‬ويتم تعريف العملية على أنها كيان يمثل‬
‫وحدة العمل األساسية التي سيتم تنفيذها في النظام‪ ،‬وبعبارات بسيطة‪ ،‬نكتب برامج الكمبيوتر الخاصة بنا في ملف نصي وعندما‬
‫نقوم بتنفيذ هذا البرنامج‪ ،‬تصبح عملية تؤدي جميع المهام المذكورة في البرنامج وعندما يتم تحميل أي برنامج في الذاكرة فانه‬
‫يصبح عملية ويمكن تقسيمه إلى أربعة أقسام‬

‫مكدس ‪Stack‬‬ ‫•‬


‫كومة ‪Heap‬‬ ‫•‬
‫نص ‪Text‬‬ ‫•‬
‫بيانات ‪Data‬‬ ‫•‬

‫‪S.N.‬‬ ‫‪Component & Description‬‬

‫‪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.‬‬
‫يحتوي هذا القسم على المتغيرات العامة والثابتة‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Processes‬‬ ‫‪3‬‬

‫البرنامج ‪Program‬‬

‫سطرا واحدًا أو ماليين األسطر‪ .‬عادة ما يتم كتابة برنامج الكمبيوتر‬


‫ً‬ ‫البرنامج عبارة عن جزء من التعليمات البرمجية قد يكون‬
‫بواسطة مبرمج كمبيوتر بلغة برمجة‪ .‬على سبيل المثال‪ ،‬هنا برنامج بسيط مكتوب بلغة البرمجة ‪C‬‬

‫>‪#include <stdio.h‬‬

‫{ )(‪int main‬‬

‫;)"‪printf("Hello, World! \n‬‬

‫} ;‪return 0‬‬

‫ي عرف جزء من برنامج الكمبيوتر الذي يؤدي مهمة محددة باسم الخوارزمية‪ .‬يشار إلى مجموعة من برامج الكمبيوتر والمكتبات‬
‫والبيانات ذات الصلة بالبرمجيات‪.‬‬

‫دورة حياة العملية ‪Process Life Cycle‬‬

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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Processes‬‬ ‫‪4‬‬

‫‪. 1‬جديد ‪New‬‬

‫البرنامج الذي سوف يحمله نظام التشغيل في الذاكرة الرئيسية يسمى عملية جديدة‪.‬‬

‫‪. 2‬جاهز ‪Ready‬‬

‫عندما يتم إنشاء عملية‪ ،‬فإنها تدخل مباشرة في حالة االستعداد‪ ،‬حيث تنتظر تعيين وحدة المعالجة المركزية ويختار نظام التشغيل‬
‫العمليات الجديدة من الذاكرة الثانوية ويضعها جميعًا في الذاكرة الرئيسية‪.‬‬

‫تسمى العمليات الجاهزة للتنفيذ والموجودة في الذاكرة الرئيسية عمليات الحالة الجاهزة‪ .‬يمكن أن يكون هناك العديد من العمليات‬
‫الموجودة في حالة االستعداد‪.‬‬

‫‪. 3‬التنفيذ ‪Running‬‬

‫سيتم اختيار إحدى العمليات من حالة االستعداد بواسطة نظام التشغيل اعتمادًا على خوارزمية الجدولة‪ .‬ومن ثم‪ ،‬إذا كان لدينا‬
‫وحدة معالجة مركزية واحدة فقط في نظامنا‪ ،‬فسيكون عدد العمليات الجارية لوقت معين دائ ًما واحدًا‪ .‬إذا كان لدينا معالجات ‪n‬‬
‫في النظام‪ ،‬فيمكننا تشغيل عمليات ‪ n‬في وقت واحد‪.‬‬

‫‪. 4‬حظر أو االنتظار ‪Block or wait‬‬

‫من حالة التشغيل‪ ،‬يمكن لعملية االنتقال إلى حالة الحظر أو االنتظار اعتمادًا على خوارزمية الجدولة أو السلوك الجوهري للعملية‪.‬‬
‫وعندما تنتظر إحدى العمليات تعيين مورد معين أو إدخال من المستخدم‪ ،‬يقوم نظام التشغيل بنقل هذه العملية إلى حالة الحظر أو‬
‫االنتظار وتعيين وحدة المعالجة المركزية إلى العمليات األخرى‪.‬‬

‫‪. 5‬اإلكمال أو اإلنهاء ‪Completion or termination‬‬

‫عندما تنتهي العملية من تنفيذها‪ ،‬فإنها تأتي في حالة اإلنهاء‪ .‬سيتم أيضًا حذف كل سياق العملية (كتلة التحكم في العملية) وسيتم‬
‫إنهاء العملية بواسطة نظام التشغيل‪.‬‬

‫‪. 6‬تعليق جاهز ‪Suspend ready‬‬

‫يتم استدعاء العملية في حالة االستعداد‪ ،‬والتي يتم نقلها إلى الذاكرة الثانوية من الذاكرة الرئيسية بسبب نقص الموارد (الذاكرة‬
‫األساسية بشكل أساسي) في حالة االستعداد المرحلي‪.‬‬

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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Processes‬‬ ‫‪5‬‬

‫‪. 7‬تعليق االنتظار ‪Suspend wait‬‬

‫بدالً من إزالة العملية من قائمة االنتظار الجاهزة‪ ،‬من األفضل إزالة العملية المحظورة التي تنتظر بعض الموارد في الذاكرة‬
‫نظرا ألنه ينتظر بالفعل توفر بعض الموارد‪ ،‬فمن األفضل أن ينتظر في الذاكرة الثانوية ويفسح المجال لعملية األولوية‬
‫الرئيسية‪ً .‬‬
‫األعلى‪ .‬تكمل هذه العمليات تنفيذها بمجرد توفر الذاكرة الرئيسية وينتهي انتظارها‪.‬‬

‫العمليات في العملية ‪Operations on the Process‬‬

‫‪. 1‬التكوين ‪Creation‬‬

‫بمجرد إنشاء العملية‪ ،‬ستكون جاهزة وستدخل في قائمة االنتظار الجاهزة (الذاكرة الرئيسية) وستكون جاهزة للتنفيذ‪.‬‬

‫‪. 2‬الجدولة ‪Scheduling‬‬

‫من بين العديد من العمليات الموجودة في قائمة االنتظار الجاهزة‪ ،‬يختار نظام التشغيل عملية واحدة ويبدأ في تنفيذها‪ .‬يعرف‬
‫اختيار العملية التي سيتم تنفيذها بعد ذلك باسم الجدولة‪.‬‬

‫‪. 3‬التنفيذ ‪Execution‬‬

‫بمجرد جدولة العملية للتنفيذ‪ ،‬يبدأ المعالج في تنفيذها‪ .‬قد تصل العملية إلى حالة الحظر أو االنتظار أثناء التنفيذ‪ ،‬وفي هذه الحالة‬
‫يبدأ المعالج في تنفيذ العمليات األخرى‪.‬‬

‫‪. 4‬الحذف ‪ /‬القتل ‪Deletion/killing‬‬

‫بمجرد انتهاء الغرض من العملية‪ ،‬سيقتل نظام التشغيل العملية‪ .‬سيتم حذف سياق العملية (‪ )PCB‬ويتم إنهاء العملية بواسطة نظام‬
‫التشغيل‪.‬‬

‫كتلة التحكم في العمليات )‪Process Control Block (PCB‬‬


‫معرف‬
‫كتلة التحكم في العمليات هي بنية بيانات يحتفظ بها نظام التشغيل لكل عملية‪ .‬يتم تحديد كتلة التحكم في العملية من خالل ّ‬
‫العملية ‪ (PID).‬وتحتفظ كتلة التحكم في العملية بجميع المعلومات الالزمة لتتبع العملية كما هو موضح في الجدول‪:‬‬

‫‪S.N.‬‬ ‫‪Information & Description‬‬

‫‪Process State: The current state of the process i.e., whether it is ready, running, waiting,‬‬
‫‪1‬‬
‫‪or whatever.‬‬

‫‪2‬‬ ‫‪Process privileges: This is required to allow/disallow access to system resources.‬‬

‫‪3‬‬ ‫‪Process ID (PID): Unique identification for each of the process in the operating system.‬‬

‫‪4‬‬ ‫‪Pointer: A pointer to parent process.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Operating System Processes 6

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.

Memory management information: This includes the information of page table,


8
memory limits, Segment table depending on memory used by the operating system.

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)

Dr. Ahmed Khudhair Abbas


Computer Department
‫‪Operating System Processes‬‬ ‫‪7‬‬

‫انشاء العمليات ‪Process Creations‬‬

‫نظام العمليات يسمح بإنشاء العديد من العمليات الجديدة بواسطة استدعاء النظام )‪ (Call System‬طيلة فترة التطبيق لهذه العملية‬
‫وأن إنشاء العملية يطلق عليها ‪ Process Parent‬وهذا ما يقصد به األب للعملية والعملية الجديدة يطلق عليه ‪Process Child‬‬
‫وهو االبن الذي تم انشائه من قبل العملية األب‪.‬‬

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

‫االبن عملية مزدوجة من العملية األم واالبن له برنامجه الخاص ومكان جديد يوجد به والكثير من أنظمة التشغيل بما في ذلك‬
‫اللينكس والويندوز تقوم بتعريف العمليات تبعا لمعرف العملية ‪ Identifier Process‬الخاص الذي يظهر عادة كرقم صحيح‪.‬‬

‫انهاء العمليات ‪Process Termination‬‬

‫أسباب انهاء العمليات ‪:‬‬

‫الخروج الطبيعي ‪ : Exist Normal‬وتكون العملية في هذه الح الة قد أنهت عملها وتم إنهاءها‬ ‫•‬
‫الخروج بسبب خطأ ‪ : Exist Error‬في هذه الحالة تكتشف العملية خطأ فادح ‪ Fatal Error‬مثال على ذلك محاولة‬ ‫•‬
‫تأليف ‪ compile‬لبرنامج غير موجود‪.‬‬
‫خطأ فادح ‪ : Error Fatal‬وهنا يكون إنهاءها ناتج عن خطأ قامت به العملية‪: ،‬مثل تنفيذها ألمر غير مسموح به‬ ‫•‬
‫كالقسمة على صفر أو اإلحالة إلى مكان غير موجود في الذاكرة‬
‫قتلها ‪ kill‬بواسطة عملية أخرى‬ ‫•‬

‫االتصال بين العمليات ‪Inter-Process Communication‬‬

‫هناك أنواع للعمليات في نظام التشغيل اثناء تنفيذ العملية ‪Process‬‬

‫‪ .1‬عملية مستقلة ‪Independent‬‬

‫وهي العملية المستقلة التي ال تتأثر أو تأثر في تنفيذ عملية أخرى في النظام وإنما تعمل مستقلة بذاتها‬

‫‪ .2‬عملية متعاونة ‪Cooperating‬‬

‫وهي العملية المتعاونة والتي يمكن أن تأثر أو تتأثر بتنفيذ عملية أخرى في النظام‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Processes‬‬ ‫‪8‬‬

‫تبادل الرسائل ‪ : Message passing‬حيث يتم تبادل الرسائل بين العمليات عن طريق االتصال مع بعضها دون وجود مكان‬
‫مشترك لتخزين الرسائل ويكون حجم هذه الرسائل ثابت أو متغير و تمر هذه الرسائل على لب النظام ‪ Kernel‬وتحتاج إلى‬
‫اتصال بين العمليات‬

‫حيث يوجد بين العمليات مكان ذاكره مشتركة لكل منهم ويتم وضع الملفات‬ ‫الذاكرة المشتركة )‪: (Shared memory‬‬
‫المشتركة بداخلها مثالً العملية أ تنتج بيانات والعملية ب تريد أن تقرأ هذه البيانات من العملية أ فإن الذاكرة المشتركة تقوم بهذه‬
‫المهمة لتسهل على العملية ب الوصول للمعلومات التي تريدها من العملية أ فهذه بيانات مشتركة يمكن لجميع العمليات االستفادة‬
‫منها عند وضعها في الذاكرة المشتركة‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Operating System Properties 1

Operating Systems
Lecture # 8

Department of Computer
4th Class

Operating System Properties

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Operating System Properties‬‬ ‫‪2‬‬

‫في هذه المحاضرة سوف يتم التطرق الى الخصائص المختلفة لنظام التشغيل‪.‬‬

‫نظام التشغيل هو واجهة تجعل األمور أكثر بساطة للمستخدمين‪ .‬يوفر الخدمات لكل من المستخدم والنظام إلجراء التفاعل بينهما‪.‬‬
‫كما أن لها خصائص مختلفة‪ .‬تعد خصائص نظام التشغيل هذه من أكثر المهام التي يقوم بها نظام التشغيل اهمية كونها ميزة تجعل‬
‫النظام سهل االستخدام‪.‬‬

‫سوف نتعرف على خصائص نظام التشغيل‪ .‬هناك خصائص مختلفة لنظام التشغيل‪ .‬بعض خصائص نظام التشغيل هي كما يلي‪:‬‬

‫➢ المعالجة بالدفعات ‪Batch Processing‬‬


‫➢ تعدد البرمجة ‪Multiprogramming‬‬
‫➢ التفاعل ‪Interactivity‬‬
‫➢ أنظمة الوقت الحقيقي ‪Real-Time System‬‬
‫➢ البيئة الموزعة ‪Distributive Environment‬‬
‫➢ تعدد المهام ‪Multitasking‬‬
‫➢ التخزين المؤقت ‪Spooling‬‬

‫معالجة بالدفعات ‪Batch processing‬‬

‫هي تقنية يجمع فيها نظام التشغيل برامج وبيانات واحدة معًا في دفعة قبل بدء المعالجة‪ .‬ويقوم نظام التشغيل باألنشطة التالية‬
‫المتعلقة بمعالجة الدُفعات‪:‬‬

‫يحدد نظام التشغيل وظيفة لها تسلسل محدد مسبقًا من األوامر والبرامج والبيانات كوحدة واحدة‪.‬‬ ‫•‬
‫يحتفظ نظام التشغيل بعدد من المهام في الذاكرة وينفذها دون أي معلومات يدوية‪.‬‬ ‫•‬
‫تتم معالجة الوظائف بترتيب التقديم‪ ،‬أي بطريقة من يأتي أوالً يخدم أوالً‪.‬‬ ‫•‬
‫عندما تنتهي المهمة من تنفيذها‪ ،‬يتم تحرير الذاكرة الخاصة بها‬ ‫•‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Properties‬‬ ‫‪3‬‬

‫المزايا ‪Advantages‬‬

‫زيادة األداء عند بدء عمل جديد بمجرد انتهاء الوظيفة السابقة دون أي تدخل يدوي‪.‬‬ ‫•‬
‫العيوب ‪Disadvantages‬‬

‫من الصعب تصحيح البرنامج‪.‬‬ ‫•‬


‫يمكن أن تدخل الوظيفة في حلقة ال نهائية‪.‬‬ ‫•‬
‫بسبب نقص مخطط الحماية‪ ،‬يمكن أن تؤثر وظيفة المجموعة الواحدة على الوظائف المعلقة‪.‬‬ ‫•‬
‫تعدد المهام ‪Multitasking‬‬

‫يشير مصطلح "تعدد المهام" الى تنفيذ مهام متعددة بواسطة وحدة المعالجة المركزية في وقت واحد عن طريق التبديل بينها‪.‬‬
‫تحدث المحوالت بشكل متكرر لدرجة أن المستخدمين قد يتفاعلون مع كل برنامج أثناء تشغيله‪.‬‬

‫يقوم نظام التشغيل باألنشطة التالية المتعلقة بتعدد المهام‪:‬‬

‫يعطي المستخدم التعليمات لنظام التشغيل أو البرنامج مباشرة‪ ،‬ويتلقى استجابة فورية‪.‬‬ ‫‪-‬‬
‫يتعامل نظام التشغيل مع المهام المتعددة ‪ multitasking‬بالطريقة التي يمكنه من خاللها التعامل مع عمليات متعددة‬ ‫‪-‬‬
‫‪ / multiple operations‬تنفيذ برامج متعددة ‪ multiple programs‬في نفس الوقت‪.‬‬
‫تُعرف أنظمة التشغيل متعددة المهام أيضًا باسم أنظمة مشاركة الوقت ‪Time-sharing systems‬‬ ‫‪-‬‬
‫تم تطوير أنظمة التشغيل هذه لتوفير االستخدام التفاعلي لنظام الكمبيوتر بتكلفة معقولة‪.‬‬ ‫‪-‬‬
‫يستخدم نظام التشغيل المشترك الوقت مفهوم جدولة وحدة المعالجة المركزية والبرمجة المتعددة ‪CPU scheduling‬‬ ‫‪-‬‬
‫‪ and multiprogramming‬لتزويد كل مستخدم بجزء صغير من وحدة المعالجة المركزية المشتركة الوقت‪.‬‬
‫كل مستخدم لديه برنامج منفصل واحد على األقل في الذاكرة‪.‬‬ ‫‪-‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Properties‬‬ ‫‪4‬‬

‫يشار إلى البرنامج ‪ Code‬الذي يتم تحميله في الذاكرة ويتم تنفيذه على أنه عملية ‪Process‬‬ ‫‪-‬‬
‫حتى تكتمل‪ .‬خالل هذا الوقت يمكن استخدام وحدة المعالجة المركزية من خالل عملية أخرى‪.‬‬ ‫‪-‬‬
‫نظرا ألن كل إجراء أو أمر في نظام مشترك زمنيًا‬
‫ً‬ ‫يسمح نظام التشغيل للمستخدمين بمشاركة الكمبيوتر في وقت واحد‪.‬‬ ‫‪-‬‬
‫قصيرا‪ ،‬فال يلزم سوى القليل من وقت وحدة المعالجة المركزية لكل مستخدم‪.‬‬
‫ً‬ ‫يميل إلى أن يكون‬
‫نظرا ألن النظام يقوم بتبديل وحدة المعالجة المركزية بسرعة من مستخدم ‪ /‬برنامج إلى آخر يتم إعطاء كل مستخدم انطباعًا‬
‫ً‬ ‫‪-‬‬
‫بأن لديه ‪ /‬لديها وحدة المعالجة المركزية الخاصة به ‪ /‬بها بينما في الواقع تتم مشاركة وحدة المعالجة المركزية الواحدة بين‬
‫العديد من المستخدمين‪.‬‬
‫تعدد البرمجة ‪Multiprogramming‬‬
‫عند وجود برنامجين أو أكثر في الذاكرة في نفس الوقت تكون مشاركة المعالج تشير إلى البرمجة المتعددة‪ .‬تفترض البرمجة‬
‫المتعددة وجود معالج واحد مشترك‪ .‬تزيد البرمجة المتعددة من استخدام وحدة المعالجة المركزية عن طريق تنظيم الوظائف بحيث‬
‫يكون لدى وحدة المعالجة المركزية دائ ًما واحدًا لتنفيذه‪.‬‬
‫بمعنى اخر يمكن تحميل برامج متعددة في الذاكرة الرئيسية لتنفيذها في نظام متعدد البرمجة‪ .‬قد يستخدم برنامج أو عملية واحدة‬
‫فقط وحدة المعالجة المركزية لتنفيذ التعليمات في وقت واحد‪ ،‬بينما يجب على اآلخرين انتظار وقتهم‪ .‬الهدف الرئيسي من استخدام‬
‫نظام متعدد البرامج هو التغلب على نقص استخدام وحدة المعالجة المركزية والذاكرة األساسية وإدارة موارد النظام بالكامل‪.‬‬
‫المكونات الرئيسية لنظام متعدد البرمجة هي نظام التحكم في اإلدخال ‪ /‬اإلخراج ومعالج األوامر والمنطقة المؤقتة ونظام الملفات‪.‬‬

‫يقوم نظام التشغيل باألنشطة التالية المتعلقة بالبرمجة المتعددة‪:‬‬

‫يحتفظ نظام التشغيل بالعديد من المهام في الذاكرة في وقت واحد‪.‬‬ ‫‪-‬‬


‫يختار نظام التشغيل إحدى المهام ويبدأ في تنفيذها في الذاكرة‪.‬‬ ‫‪-‬‬
‫يراقب نظام التشغيل متعدد البرامج حالة جميع البرامج النشطة وموارد النظام باستخدام برامج إدارة الذاكرة لضمان‬ ‫‪-‬‬
‫عدم خمول وحدة المعالجة المركزية أبدًا ما لم تكن هناك وظائف‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Properties‬‬ ‫‪5‬‬

‫المزايا ‪Advantages‬‬

‫➢ استخدام عالي وفعال لوحدة المعالجة المركزية‪.‬‬


‫➢ يشعر المستخدم أنه يتم تخصيص العديد من البرامج لوحدة المعالجة المركزية تقريبًا في وقت واحد‪.‬‬
‫العيوب ‪Dis-advantages‬‬

‫➢ جدولة وحدة المعالجة المركزية مطلوبة‪.‬‬


‫➢ الستيعاب العديد من المهام في الذاكرة يلزم إدارة الذاكرة‪.‬‬
‫أنظمة الوقت الحقيقي ‪Real-Time System‬‬

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

‫البيئة الموزعة ‪Distributive Environment‬‬

‫تشير البيئة الموزعة إلى العديد من وحدات المعالجة المركزية المستقلة أو المعالجات في نظام الكمبيوتر‪.‬‬

‫يقوم نظام التشغيل باألنشطة التالية المتعلقة بالبيئة الموزعة ‪:‬‬

‫➢ نظام التشغيل ‪ OS‬يوزع منطق الحساب بين عدة معالجات فيزيائية‪.‬‬


‫➢ ال تشترك المعالجات في الذاكرة‪.‬‬
‫➢ بدالً من ذلك يمتلك كل معالج ذاكرة محلية خاصة به‪.‬‬
‫نظام التشغيل يدير االتصاالت بين المعالجات‪ .‬يتواصلون مع بعضهم البعض من خالل خطوط االتصال المختلفة‪.‬‬ ‫➢‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Properties‬‬ ‫‪6‬‬

‫التخزين المؤقت ‪Spooling‬‬

‫‪( Spooling‬و معناه التخزين المؤقت) هو اختصار للعمليات الطرفية المتزامنة‪ .‬يشير التخزين المؤقت إلى وضع بيانات وظائف‬
‫االدخال ‪ /‬االخراج المختلفة في مخزن مؤقت‪ .‬هذا المخزن المؤقت هو منطقة خاصة في الذاكرة أو القرص الصلب يمكن الوصول‬
‫إليها من قبل أجهزة االدخال واإلخراج ‪Input/Output‬‬

‫يقوم نظام التشغيل باألنشطة التالية المتعلقة بالبيئة الموزعة‪:‬‬

‫➢ يتعامل نظام التشغيل مع التخزين المؤقت لبيانات جهاز اإلدخال ‪ /‬اإلخراج ألن األجهزة لها معدالت وصول مختلفة إلى‬
‫البيانات‪.‬‬
‫➢ يحافظ نظام التشغيل على المخزن المؤقت للتخزين المؤقت الذي يوفر محطة انتظار حيث يمكن للبيانات أن تستريح أثناء‬
‫اللحاق بالجهاز األبطأ‪.‬‬
‫➢ يحا فظ نظام التشغيل على الحساب المتوازي بسبب عملية التخزين المؤقت حيث يمكن لجهاز الكمبيوتر تنفيذ عمليات‬
‫االخال ‪ /‬االخراج بطريقة متوازية‪ .‬يصبح من الممكن أن يقوم الكمبيوتر بقراءة البيانات من شريط وكتابة البيانات على‬
‫القرص والكتابة إلى طابعة شريط أثناء قيامه بمهمة الحوسبة‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Process Schedulers 1

Operating Systems
Lecture # 9

Department of Computer
4th Class

Process Schedulers

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Process Schedulers‬‬ ‫‪2‬‬

‫جدولة العملية ‪ Process scheduling‬هي نشاط مدير العملية الذي يتولى إزالة العملية الجارية من وحدة المعالجة المركزية‬
‫واختيار عملية أخرى على أساس إستراتيجية معينة‪.‬‬

‫وتعد جدولة العمليات جز ًءا أساسيًا من أنظمة تشغيل البرمجة المتعددة ‪ Multiprogramming operating systems‬وتسمح‬
‫أنظمة التشغيل هذه بتحميل أكثر من عملية واحدة في الذاكرة القابلة للتنفيذ في وقت واحد ‪ ،‬وتشارك العملية المحملة وحدة المعالجة‬
‫المركزية باستخدام مضاعفة الوقت‪.‬‬

‫فئات الجدولة ‪Categories of Scheduling‬‬

‫هناك فئتان من الجدولة‪:‬‬

‫‪ .1‬غير استباقي ‪ : Non-preemptive‬هنا ال يمكن أخذ المورد ‪ resource‬من العملية حتى تكتمل العملية التنفيذ‪.‬‬
‫ويحدث تبديل الموارد عندما تنتهي العملية الجارية وتنتقل إلى حالة االنتظار ‪Waiting‬‬
‫‪ .2‬استباقية ‪ : Preemptive‬هنا يخصص نظام التشغيل الموارد لعملية لفترة محددة من الوقت‪ .‬أثناء تخصيص الموارد‬
‫‪ ،‬تنتقل العملية من حالة التشغيل ‪ Running‬إلى حالة االستعداد ‪ Ready‬أو من حالة االنتظار‪ Waiting‬إلى حالة‬
‫االستعداد ‪ .Ready‬يحدث هذا التبديل ألن وحدة المعالجة المركزية قد تعطي األولوية للعمليات األخرى وتستبدل العملية‬
‫بأولوية أعلى بالعملية الجارية‪.‬‬

‫قوائم انتظار المعالجة ‪Process Queues‬‬

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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Process Schedulers‬‬ ‫‪3‬‬

‫وهذه هي قوائم االنتظار التي يحتفظ بها نظام التشغيل‪.‬‬

‫‪ .1‬طابور المهام ‪Job Queue‬‬

‫في البداية‪ ،‬يتم تخزين جميع العمليات في قائمة انتظار المهام ويتم االحتفاظ بها في الذاكرة الثانوية ثم يقوم برنامج الجدولة طويلة‬
‫المدى (برنامج جدولة المهام) باختيار بعض المهام ووضعها في الذاكرة األساسية‪.‬‬

‫‪ .2‬طابور الجاهزية ‪Ready Queue‬‬

‫يتم االحتفاظ بقائمة االنتظار الجاهزة في الذاكرة األساسية‪ .‬يقوم برنامج الجدولة قصير المدى باختيار المهمة من قائمة االنتظار‬
‫الجاهزة وإرسالها إلى وحدة المعالجة المركزية للتنفيذ‪.‬‬

‫‪ .3‬طابور االنتظار ‪Waiting Queue‬‬

‫عندما تحتاج العملية إلى بعض عمليات اإلدخال ‪ /‬اإلخراج إلكمال تنفيذها‪ ،‬يقوم نظام التشغيل بتغيير حالة العملية من التشغيل إلى‬
‫االنتظار‪ .‬ثم يتم تخزين ال ‪ PCB‬المرتبط بالعملية في قائمة االنتظار التي سيستخدمها المعالج عندما تنتهي العملية من اإلدخال ‪/‬‬
‫اإلخراج‪.‬‬

‫‪S.N.‬‬ ‫‪State & Description‬‬

‫‪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.‬‬
‫يتم االحتفاظ بالعمليات التي ال تعمل في قائمة االنتظار‪ ،‬في انتظار دورها للتنفيذ‪ .‬كل إدخال في قائمة االنتظار هو مؤشر‬
‫لعملية معينة‪ .‬يتم تطبيق قائمة االنتظار باستخدام القائمة المرتبطة‪ .‬عند مقاطعة عملية ما ‪ ،‬يتم نقل هذه العملية في قائمة‬
‫االنتظار‪ .‬إذا اكتملت العملية أو تم إحباطها‪ ،‬يتم تجاهل العملية‪ .‬في كلتا الحالتين‪ ،‬يقوم المرسل بعد ذلك بتحديد عملية من‬
‫قائمة االنتظار ليتم تنفيذها‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Process Schedulers‬‬ ‫‪4‬‬

‫المجدوالت ‪Schedulers‬‬

‫المجدوالت هي برنامج نظام خاص يتعامل مع جدولة العمليات بطرق مختلفة‪ .‬مهمتهم الرئيسية هي تحديد الوظائف التي سيتم‬
‫تقديمها في النظام وتحديد العملية التي سيتم تشغيلها‪ .‬المنظمون من ثالثة أنواع‪-‬‬

‫‪ .1‬جدولة طويلة المدى ‪Long-Term Scheduler‬‬


‫‪ .2‬جدولة قصيرة المدى ‪Short-Term Scheduler‬‬
‫‪ .3‬جدولة متوسطة المدى ‪Medium-Term Scheduler‬‬

‫جدولة طويلة االمد ‪Long-Term Scheduler‬‬

‫ويسمى أيضًا بجدولة المهام ويقوم المجدول طويل األجل بتحديد البرامج التي يتم قبولها في النظام للمعالجة‪ .‬وكذلك يقوم بتحديد‬
‫العمليات من قائمة االنتظار وتحميلها في الذاكرة للتنفيذ‪ .‬ثم يتم تحميل العملية في الذاكرة لجدولة وحدة المعالجة المركزية‪.CPU‬‬

‫الهدف األساسي لجدولة الوظائف ‪ job scheduler‬هو توفير مزيج متوازن من المهام‪ ،‬مثل ربط اإلدخال ‪ /‬اإلخراج والمعالج‪.‬‬
‫كما يتحكم في درجة البرمجة المتعددة ‪ multiprogramming‬إذا كانت درجة البرمجة المتعددة مستقرة‪ ،‬فيجب أن يكون متوسط‬
‫معدل إنشاء العملية مساويًا لمتوسط معدل المغادرة للعمليات التي تغادر النظام‪.‬‬

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

‫جدولة قصيرة المدى ‪Short-Term Scheduler‬‬

‫ويسمى أيضًا باسم جدولة وحدة المعالجة المركزية ‪ CPU scheduler‬هدفها الرئيسي هو زيادة أداء النظام وفقًا لمجموعة‬
‫المعايير المختارة‪ .‬إنه تغيير من حالة االستعداد ‪ ready state‬إلى حالة تشغيل العملية ‪ running state‬يحدد برنامج جدولة وحدة‬
‫المعالجة المركزية عملية من بين العمليات الجاهزة للتنفيذ ويخصص وحدة المعالجة المركزية إلحدى هذه العمليات‪.‬‬

‫يقوم المجدول على المدى القصير باتخاذ قرار بشأن العملية التي سيتم تنفيذها بعد ذلك‪ .‬يعتبر المجدول على المدى القصير أسرع‬
‫من المجدول على المدى الطويل‪.‬‬

‫جدولة متوسطة المدى ‪Medium-Term Scheduler‬‬

‫الجدولة متوسطة المدى هي جزء من المبادلة ‪ swapping‬يقوم بإزالة العمليات من الذاكرة ويقلل من درجة البرمجة المتعددة‬
‫‪ . multiprogramming‬ان المجدول على المدى المتوسط هو المسؤول عن التعامل مع العمليات الخارجية المبادلة‪.‬‬

‫قد يتم تعليق العملية الجارية ‪ suspended‬إذا قدمت طلب إدخال ‪ /‬إخراج وال يمكن للعمليات المعلقة إحراز أي تقدم نحو االنتهاء‪.‬‬
‫في هذه الحالة‪ ،‬إلزالة العملية من الذاكرة وإفساح المجال ‪ space‬للعمليات األخرى‪ ،‬يتم نقل العملية المعلقة إلى التخزين الثانوي‬
‫‪ secondary storage‬تسمى هذه العملية بالمبادلة ‪ swapping‬ويقال إن العملية يتم تبديلها أو طرحها ‪swapped out or‬‬
‫‪ rolled out‬وقد يكون التبادل ضروريًا لتحسين مزيج العملية‪.‬‬
‫‪Dr. Ahmed Khudhair Abbas‬‬
‫‪Computer Department‬‬
Process Schedulers 5

Comparison among Scheduler ‫مقارنة بين المجدوالت‬

S.N. Long-Term Scheduler Short-Term Scheduler Medium-Term Scheduler


1 It is a job scheduler It is a CPU scheduler It is a process swapping
scheduler.
2 Speed is lesser than short Speed is fastest among Speed is in between both
term scheduler other two short- and long-term
scheduler.
3 It controls the degree of It provides lesser control It reduces the degree of
multiprogramming over degree of multiprogramming.
multiprogramming
4 It is almost absent or It is also minimal in time It is a part of Time-sharing
minimal in time sharing sharing system systems.
system
5 It selects processes from It selects those processes It can re-introduce the process
pool and loads them into which are ready to into memory and execution
memory for execution execute can be continued.

Times related to the Process ‫أوقات العملية‬

Dr. Ahmed Khudhair Abbas


Computer Department
‫‪Process Schedulers‬‬ ‫‪6‬‬

‫‪. 1‬وقت الوصول ‪Arrival Time‬‬

‫يُطلق على الوقت الذي تدخل فيه العملية إلى قائمة االنتظار الجاهزة ‪ ready queue‬بوقت الوصول‪.‬‬

‫‪. 2‬وقت االندفاع ‪Burst Time‬‬

‫يُطلق على إجمالي الوقت الذي تتطلبه وحدة المعالجة المركزية لتنفيذ العملية بأكملها اسم ‪ Burst Time.‬هذا ال يشمل وقت‬
‫االنتظار ‪waiting time‬‬

‫‪. 3‬وقت اإلنجاز ‪Completion Time‬‬

‫يسمى الوقت الذي تدخل فيه العملية في حالة اإلكمال ‪ completion state‬أو الوقت الذي تكمل فيه العملية تنفيذها بوقت االنتهاء‪.‬‬

‫‪. 4‬الوقت المستغرق ‪Turnaround time‬‬

‫يُطلق على إجمالي الوقت الذي تقضيه العملية من وصولها إلى اكتمالها بوقت التحول‪.‬‬

‫‪. 5‬وقت االنتظار ‪Waiting Time‬‬

‫يُطلق على إجمالي الوقت الذي تنتظره العملية حتى يتم تعيين وحدة المعالجة المركزية )‪ (CPU‬لها بوقت االنتظار‪.‬‬

‫‪. 6‬زمن االستجابة ‪Response Time‬‬

‫يسمى الفرق بين وقت الوصول ‪ arrival time‬والوقت الذي تحصل فيه العملية على وحدة المعالجة المركزية ألول مرة بوقت‬
‫االستجابة‪.‬‬

‫تبديل السياق ‪Context Switch‬‬

‫تبديل السياق هو آلية لتخزين واستعادة حالة أو سياق وحدة المعالجة المركزية في كتلة التحكم في العملية ‪ PCB‬بحيث يمكن‬
‫استئناف تنفيذ العملية من نفس النقطة في وقت الحق‪ .‬باستخدام هذه التقنية‪ ،‬يتيح مبدل السياق عمليات متعددة لمشاركة وحدة‬
‫معالجة مركزية واحدة ويعد تبديل السياق جز ًءا أساسيًا من ميزات نظام التشغيل متعدد المهام ‪multitasking operating‬‬
‫‪.system‬‬

‫عندما يقوم المجدول بتحويل وحدة المعالجة المركزية من تنفيذ عملية إلى أخرى‪ ،‬يقوم مبدل السياق بحفظ محتوى جميع سجالت‬
‫المعالج ‪ processor registers‬للعملية التي تتم إزالتها من وحدة المعالجة المركزية‪ ،‬في واصف العملية الخاص بها ويتم تمثيل‬
‫نظرا ألن أجهزة الكمبيوتر‬
‫سياق العملية في كتلة التحكم في العملية ‪ PCB‬ويمكن أن يؤثر تبديل السياق بشكل كبير على األداء ً‬
‫الحديثة بها الكثير من السجالت العامة وسجالت الحالة التي يتعين حفظها‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Process Schedulers‬‬ ‫‪7‬‬

‫الشكل أعاله يمثل تنفيذ عمليتين ( ‪ ) Process 1 and Process 2‬داخل وحدة المعالجة المركزية ‪ CPU‬والية التبديل بينهما وكذلك يبين‬
‫الشكل عملية حفظ وتحميل ال ‪ PCB‬الخاصة بكل عملية‬

‫معايير الجدولة ‪Scheduling Criteria‬‬

‫عملية الجدولة من أهم الخصائص في تشغيل العمليات حيث ينظم دخول العمليات المراد تنفيذها إلى وحده المعالجة‬
‫المركزية )‪ (CPU‬وتعتمد هذه العملية على العديد من المعايير التي تحدد من هي العملية التي يجب تنفيذها و من أهمها‪:‬‬

‫‪ .1‬استغالل وحده المعالجة المركزية ‪: CPU utilization‬‬


‫استغالل كل وقت وحده المعالجة المركزية)‪ (CPU‬في تنفيذ العمليات‪ .‬اي ان تكون وحده المعالجة‬
‫المركزية )‪ (CPU‬مشغولة بقدر االمكان ليتم استغاللها االستغالل األمثل‬

‫‪ .2‬كمية البيانات المتدفقة في الثانية الواحدة‪:Throughput‬‬


‫تبيّن معدل العمليات التي يمكن انجازها في وقت معين ‪ .‬مثال توضيحي ‪ /‬استطيع انجاز بمعدل ‪ 4‬عمليات في ‪ 3‬ثواني‪.‬‬

‫‪ .3‬الوقت المستغرق )‪: Turnaround time (TAT‬‬


‫الوقت الالزم لتنفيذ عملية ما ( الوقت المستغرق من بداية تنفيذ العملية إلى نهايتها) بعدالة‪ ( .‬العملية ممكن ان تكون ‪single‬‬
‫‪ CPU burst‬انبثاق واحد لوحده التحكم او قد تكون جزء ‪)thread‬‬
‫مثال توضيحي‪/‬ابتدأ العملية في الثانية الثالثة وانتهت في الثانية السابعة الوقت الالزم لتنفيذ هذه العملية هو ‪ 4‬ثواني‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Process Schedulers‬‬ ‫‪8‬‬

‫‪ .4‬وقت االنتظار ‪: Waiting time‬‬


‫هو الوقت الذي تستغرقه العملية في االنتظار داخل مصفوفة االنتظار)‪ (ready queue‬قبل دخولها إلى وحده المعالجة‬
‫المركزية)‪(CPU‬‬

‫‪ .5‬زمن االستجابة ‪ : Response time‬هو الوقت الذي يحتاجه البرنامج لبدأ فعليا‪ .‬مثال توضيحي ‪/‬منذ الضغط على البرنامج‬
‫ضغطا ً مزدوج إلى أن يعمل البرنامج فعليا‪.‬‬
‫هذه المفاهيم تمكنا من اختيار أفضل طريقة للجدولة ولكن من الصعب تحقيقها جميعا‬

‫حتى تصل وحده المعالجة المركزية إلى الكمال البد من توفر التالي‪:‬‬

‫‪ :Minimize latency‬وهو تقليل تأخر زمن االستجابة واكتمال تنفيذ البرنامج‪.‬‬ ‫•‬
‫‪ :Maximize throughput‬وهو زيادة الوقت الذي يتم تنفيذ العمليات خالله‬ ‫•‬
‫‪ :Maximize utilization‬هو زيادة االستفادة من وحدة المعالجة المركزية وإبقائها مشغولة طوال الوقت ‪.‬‬ ‫•‬
‫‪ :Fairness‬وهو اإلنصاف بين البرامج حيث يسمح لجميع البرامج من استخدام وحدة المعالجة المركزية وال تكون‬ ‫•‬
‫الصالحيات جميعها لبرنامج واحد‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Process Schedulers 1

Operating Systems
Lecture # 10

Department of Computer
4th Class

Operating System Scheduling Algorithms

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Operating System Scheduling Algorithms‬‬ ‫‪2‬‬

‫جدولة وحدة المعالجة المركزية ‪CPU Scheduling‬‬

‫في أنظمة ‪ Uni-Programming‬مثل ‪ ، MS DOS‬عندما تنتظر إحدى العمليات إجراء أي عملية إدخال ‪ /‬إخراج ‪ ،‬تظل وحدة‬
‫المعالجة المركزية معطلة‪ .‬هذا عبء ألنه يضيع الوقت ويسبب مشكلة الجوع ‪ Starvation‬ومع ذلك في أنظمة البرمجة المتعددة‬
‫ال تبقى وحدة المعالجة المركزية متوقفة أثناء وقت انتظار العملية وتبدأ في تنفيذ العمليات األخرى ويجب أن يحدد نظام التشغيل‬
‫العملية التي سيتم منحها وحدة المعالجة المركزية ‪. CPU‬‬

‫في أنظمة البرمجة المتعددة ‪ Multiprogramming systems‬يقوم نظام التشغيل بجدولة العمليات على وحدة المعالجة المركزية‬
‫لتحقيق أقصى استفادة منها ويسمى هذا اإلجراء جدولة وحدة المعالجة المركزية ويستخدم نظام التشغيل خوارزمية جدولة مختلفة‬
‫لجدولة العمليات‪.‬‬

‫خوارزميات الجدولة ‪Scheduling Algorithms‬‬

‫هناك العديد من الخوارزميات التي يستخدمها نظام التشغيل لجدولة العمليات على المعالج بطريقة فعالة والغرض من خوارزمية‬
‫الجدولة هو‪:‬‬

‫‪. 1‬أقصى استخدام لوحدة المعالجة المركزية ‪Maximum CPU utilization‬‬


‫‪. 2‬التخصيص العادل لوحدة المعالجة المركزية ‪Fair allocation of CPU‬‬
‫‪. 3‬الحد األقصى لإلنتاجية ‪Maximum throughput‬‬
‫‪. 4‬الحد األدنى من الوقت المستغرق ‪Minimum turnaround time‬‬

‫‪. 5‬الحد األدنى لوقت االنتظار ‪Minimum waiting time‬‬


‫‪. 6‬الحد األدنى من وقت االستجابة ‪Minimum response time‬‬

‫يقوم برنامج جدولة العمليات بجدولة عمليات مختلفة ليتم تخصيصها لوحدة المعالجة المركزية بنا ًء على خوارزميات جدولة‬
‫معينة‪ .‬هناك ست خوارزميات شائعة لجدولة العمليات وهي‪:‬‬

‫جدولة من يأتي أوالً يخدم أوالً‪First-Come, First-Served (FCFS) Scheduling‬‬

‫جدولة أقصر مهمة تالية ‪Shortest-Job-Next (SJN) Scheduling‬‬

‫جدولة األولوية ‪Priority Scheduling‬‬

‫أقصر وقت متبقي ‪Shortest Remaining Time‬‬

‫جدولة راوند روبن ‪Round Robin (RR) Scheduling‬‬

‫جدولة قوائم االنتظار متعددة المستويات ‪Multiple-Level Queues Scheduling‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Scheduling Algorithms‬‬ ‫‪3‬‬

‫هذه الخوارزميات إما غير استباقية أو استباقية ‪ non-preemptive or preemptive‬تم تصميم الخوارزميات غير‬

‫االستباقية ‪ non-preemptive‬بحيث بمجرد دخول العملية إلى حالة التشغيل ال يمكن ايقافها حتى تكمل الوقت المخصص لها‬

‫وفي حين أن الجدولة االستباقية ‪ preemptive‬تعتمد على األولوية حيث قد يستبق المجدول عملية تشغيل ذات أولوية منخفضة‬
‫في أي وقت عندما تكون األولوية عالية تدخل العملية في حالة جاهزة‪.‬‬

‫‪ .1‬جدولة من يأتي أوالً يخدم أوالً ‪First-Come, First-Served (FCFS) Scheduling‬‬

‫تقوم خوارزمية جدولة من يأتي أوالً يخدم أوالً )‪ (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‬في قائمة االنتظار الجاهزة ويتم حساب وقت االستجابة‬
‫ووقت االنتظار باستخدام الصيغة التالية‪.‬‬

‫‪1. Turn Around Time = Completion Time - Arrival Time‬‬


‫‪2. Waiting Time = Turnaround time - Burst Time‬‬

‫يتم تحديد متوسط وقت االنتظار من خالل جمع وقت االنتظار المعني لجميع العمليات وقسمة المجموع على إجمالي عدد العمليات‪.‬‬

‫‪Process‬‬ ‫‪Arrival‬‬ ‫‪Burst‬‬ ‫‪Completion‬‬ ‫‪Turn Around‬‬ ‫‪Waiting‬‬


‫‪ID‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬
‫‪P0‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪0‬‬
‫‪P1‬‬ ‫‪1‬‬ ‫‪6‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪1‬‬
‫‪P2‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪12‬‬ ‫‪10‬‬ ‫‪6‬‬
‫‪P3‬‬ ‫‪3‬‬ ‫‪9‬‬ ‫‪21‬‬ ‫‪18‬‬ ‫‪9‬‬
‫‪P4‬‬ ‫‪4‬‬ ‫‪12‬‬ ‫‪33‬‬ ‫‪29‬‬ ‫‪17‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Scheduling Algorithms‬‬ ‫‪4‬‬

‫‪Avg Waiting Time=31/5‬‬

‫)‪(Gantt chart‬‬

‫تأثير المواكبة او المجاعة ‪ Convoy effect or Starvation‬في ‪FCFS‬‬

‫قد يعاني ‪ 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:‬‬

‫‪Turn Around Time = Completion Time - Arrival Time‬‬

‫‪Waiting Time = Turn Around Time - Burst Time‬‬

‫في السيناريو األول‪ ،‬تصل العملية ‪ P1‬إلى المرتبة األولى في قائمة االنتظار بالرغم من ذلك فان وقت وصول العملية هو األعلى‬
‫نظرا ألن خوارزمية الجدولة التي نتبعها هي ‪ ، FCFS‬فإن وحدة المعالجة المركزية ستنفذ العملية ‪ P1‬أوالً‪.‬‬
‫بين الجميع‪ً .‬‬
‫‪Dr. Ahmed Khudhair Abbas‬‬
‫‪Computer Department‬‬
‫‪Operating System Scheduling Algorithms‬‬ ‫‪5‬‬

‫في هذا الجدول سيكون متوسط وقت انتظار النظام مرتف ًعا جدًا ويتعين على العمليات األخرى ‪ P2‬و ‪ P3‬انتظار دورها لمدة ‪40‬‬
‫وحدة زمنية على الرغم من أن وقت وصولها منخفض للغاية‪ .‬هذا الجدول يعاني من الجوع ‪starvation‬‬

‫‪Process‬‬ ‫‪Arrival Burst‬‬ ‫‪Completion‬‬ ‫‪Turn Around‬‬ ‫‪Waiting‬‬


‫‪ID‬‬ ‫‪Time Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬
‫‪P1‬‬ ‫‪0‬‬ ‫‪40‬‬ ‫‪40‬‬ ‫‪40‬‬ ‫‪0‬‬
‫‪P2‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪43‬‬ ‫‪42‬‬ ‫‪39‬‬
‫‪P3‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪44‬‬ ‫‪43‬‬ ‫‪42‬‬

‫‪Avg waiting Time = 81/3‬‬

‫في السيناريو الثاني إذا كانت العملية ‪ P1‬قد وصلت إلى آخر قائمة االنتظار والعمليات األخرى ‪ P2‬و ‪ P3‬في وقت سابق ‪ ،‬فلن‬
‫تكون مشكلة الجوع موجودة‪.‬‬

‫يوضح المثال التالي االنحراف في أوقات االنتظار لكال السيناريوهات على الرغم من أن طول الجدول الزمني هو نفسه ‪ 44‬وحدة‬
‫‪ ،‬إال أن وقت االنتظار سيكون أقل في هذا الجدول‪.‬‬

‫‪Process‬‬ ‫‪Arrival Burst‬‬ ‫‪Completion‬‬ ‫‪Turn Around‬‬ ‫‪Waiting‬‬


‫‪ID‬‬ ‫‪Time Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪40‬‬ ‫‪44‬‬ ‫‪43‬‬ ‫‪3‬‬
‫‪2‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪0‬‬
‫‪3‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪3‬‬

‫‪Avg Waiting Time = 6/3‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Scheduling Algorithms‬‬ ‫‪6‬‬

‫‪ .2‬جدولة أقصر مهمة أوالً ‪Shortest Job First (SJF) Scheduling‬‬

‫تقوم خوارزمية جدولة ‪ 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.‬‬

‫‪Arrival Burst Completion‬‬ ‫‪Turn Around‬‬


‫‪PID‬‬ ‫‪Waiting Time‬‬
‫‪Time Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬
‫‪p1‬‬ ‫‪1‬‬ ‫‪7‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪0‬‬
‫‪p2‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪13‬‬ ‫‪10‬‬ ‫‪7‬‬
‫‪p3‬‬ ‫‪6‬‬ ‫‪2‬‬ ‫‪10‬‬ ‫‪4‬‬ ‫‪2‬‬
‫‪p4‬‬ ‫‪7‬‬ ‫‪10‬‬ ‫‪31‬‬ ‫‪24‬‬ ‫‪14‬‬
‫‪p5‬‬ ‫‪9‬‬ ‫‪8‬‬ ‫‪21‬‬ ‫‪12‬‬ ‫‪4‬‬

‫‪P1‬‬ ‫‪P3‬‬ ‫‪P2‬‬ ‫‪P5‬‬ ‫‪P4‬‬


‫‪0‬‬ ‫‪1‬‬ ‫‪8‬‬ ‫‪10‬‬ ‫‪13‬‬ ‫‪21‬‬ ‫‪31‬‬

‫‪Avg Waiting Time = 27/5‬‬

‫كما نالحظ لم تصل أي عملية في الوقت ‪ 0‬وبالتالي ستكون هناك فتحة فارغة في مخطط جانت من الوقت ‪ 0‬إلى ‪( 1‬الوقت الذي‬
‫تصل فيه العملية األولى) ووفقًا للخوارزمية‪ ،‬يقوم نظام التشغيل بجدولة العملية التي لها أقل وقت تنفيذ بين العمليات المتاحة في‬
‫قائمة االنتظار الجاهزة‪.‬‬

‫حتى اآلن‪ ،‬لدينا عملية واحدة فقط في قائمة االنتظار الجاهزة ومن ثم سيقوم المجدول بجدولة ذلك إلى المعالج بغض النظر عن‬
‫وقت تنفيذه وسيتم تنفيذ هذا حتى ‪ 8‬وحدات زمنية‪ .‬حتى ذلك الحين‪ ،‬وصلنا ثالث عمليات أخرى إلى قائمة االنتظار الجاهزة‪،‬‬
‫ومن ثم سيختار المجدول العملية بأقل وقت للتنفيذ‪.‬‬

‫نظرا ألنه يحتوي على أقل وقت تنفيذ بين جميع العمليات المتاحة‬
‫من بين العمليات الواردة في الجدول‪ ،‬سيتم تنفيذ ‪ P3‬بعد ذلك ً‬
‫وهذه هي الطريقة التي سيستمر بها اإلجراء في خوارزمية جدولة أقصر مهمة أوالً‪(SJF).‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Scheduling Algorithms‬‬ ‫‪7‬‬

‫خوارزمية جدولة أقصر وقت متبقي أوالً )‪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.‬‬

‫‪Process Arrival Burst Completion‬‬ ‫‪Turn Around‬‬ ‫‪Waiting‬‬ ‫‪Response‬‬


‫‪ID‬‬ ‫‪Time Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬
‫‪p1‬‬ ‫‪0‬‬ ‫‪8‬‬ ‫‪20‬‬ ‫‪20‬‬ ‫‪12‬‬ ‫‪0‬‬
‫‪p2‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪10‬‬ ‫‪9‬‬ ‫‪5‬‬ ‫‪1‬‬
‫‪p3‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪2‬‬
‫‪p4‬‬ ‫‪3‬‬ ‫‪1‬‬ ‫‪5‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪4‬‬
‫‪p5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪13‬‬ ‫‪9‬‬ ‫‪6‬‬ ‫‪10‬‬
‫‪p6‬‬ ‫‪5‬‬ ‫‪2‬‬ ‫‪7‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪5‬‬

‫‪P1‬‬ ‫‪P2‬‬ ‫‪P3‬‬ ‫‪P4‬‬ ‫‪P5‬‬ ‫‪P6‬‬ ‫‪P7‬‬ ‫‪P8‬‬ ‫‪P9‬‬


‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪8‬‬

‫‪Avg Waiting Time = 24/6‬‬

‫‪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‬تحتوي على وحدتين من الوقت ‪ ،‬فسيتم منحها األولوية على اآلخرين‪.‬‬
‫وقت للتنفيذ المتبقي‪ً .‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Scheduling Algorithms‬‬ ‫‪8‬‬

‫‪ .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.‬‬

‫‪Process Arrival Burst Completion‬‬ ‫‪Turn Around‬‬ ‫‪Waiting‬‬


‫‪ID‬‬ ‫‪Time Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬

‫‪P1‬‬ ‫‪0‬‬ ‫‪9‬‬ ‫‪13‬‬ ‫‪13‬‬ ‫‪4‬‬

‫‪P2‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪0‬‬

‫‪P3‬‬ ‫‪2‬‬ ‫‪9‬‬ ‫‪22‬‬ ‫‪20‬‬ ‫‪11‬‬

‫توجد ثالث وظائف ‪ P1‬و ‪ P2‬و ‪ P3.‬يصل ‪ P1‬في الوحدة الزمنية ‪ 0‬؛ سيتم جدولته أوالً في الوقت حتى وصول العملية التالية‪.‬‬
‫يصل ‪ P2‬في وحدة زمنية واحدة‪ .‬وقت تنفيذها هو ‪ 4‬وحدات وهو األقل بين الوظائف في قائمة االنتظار‪ .‬ومن ثم سيتم جدولتها‬
‫بعد ذلك وفي الوقت ‪ ، 2‬سيصل ‪ P3‬مع وقت تنفيذ ‪ .9‬حيث أن وقت التنفيذ المتبقي لـ ‪ P2‬هو ‪ 3‬وحدات وهي األقل من بين‬
‫نظرا ألن جميع الوظائف قد وصلت ‪ ،‬فلن يتم إجراء أي‬
‫ً‬ ‫الوظائف المتاحة‪ .‬ومن ثم سيستمر المعالج في تنفيذه حتى اكتماله‪.‬‬
‫إجراءات استباقية اآلن وسيتم تنفيذ جميع الوظائف حتى االنتهاء وفقًا لـ ‪SJF.‬‬

‫‪P1‬‬ ‫‪P2‬‬ ‫‪P3‬‬ ‫‪P4‬‬ ‫‪P5‬‬


‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪5‬‬ ‫‪13‬‬ ‫‪22‬‬

‫‪Avg Waiting Time = (4+0+11)/3 = 5 units‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Scheduling Algorithms‬‬ ‫‪9‬‬

‫خوارزمية جدولة روبن ‪Round Robin Scheduling Algorithm‬‬

‫تعد خوارزمية جدولة ‪ Round Robin‬واحدة من أكثر خوارزمية الجدولة شيوعًا والتي يمكن تنفيذها بالفعل في معظم أنظمة‬
‫التشغيل‪ .‬هذه هي النسخة االستباقية ‪ Preemptive version‬من جدولة من يأتي أوالً يُخدم أوالً‪ .‬تركز الخوارزمية على مشاركة‬
‫الوقت‪ .‬في هذه الخوارزمية‪ ،‬يتم تنفيذ كل عملية بطريقة دورية‪ .‬يتم تحديد شريحة زمنية معينة في النظام تسمى كمية الوقت‬
‫‪ Quantum‬يتم تخصيص وحدة المعالجة المركزية لكل عملية موجودة في قائمة االنتظار الجاهزة لهذا الوقت الكمي‪ ،‬إذا اكتمل‬
‫تنفيذ العملية خالل ذلك الوقت‪ ،‬فستنتهي العملية وإال ستعود العملية إلى قائمة االنتظار الجاهزة ‪ Ready queue‬وتنتظر حتى‬
‫يكتمل الدور التالي للتنفيذ‪.‬‬

‫مزايا ‪Advantages‬‬

‫يمكن أن يكون قابالً للتنفيذ فعليًا في النظام ألنه ال يعتمد على وقت التنفيذ‬ ‫•‬
‫ال يعاني من مشكلة الجوع ‪starvation‬‬ ‫•‬
‫تحصل جميع الوظائف على تخصيص ثابت لوحدة المعالجة المركزية‪.‬‬ ‫•‬

‫سلبيات ‪Disadvantages‬‬

‫كلما زاد مقدار الوقت ‪ ،‬زاد وقت االستجابة في النظام‪.‬‬ ‫•‬


‫كلما انخفض مقدار الوقت ‪ ،‬زادت كلفة التبديل في النظام‪.‬‬ ‫•‬
‫تحديد الوقت المثالي ‪ time quantum‬هو في الحقيقة مهمة صعبة للغاية في النظام‪.‬‬ ‫•‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Operating System Scheduling Algorithms 10

Wait time of each process is following

Process Wait Time : Service Time - Arrival Time

P0 (0-0) + (12-3) = 9

P1 (3-1) = 2

P2 6-2) + (15-9) = 10

P3 (9-3) + (18-12) = 12

Average Wait Time: (9+2+10+12) / 4 = 8.25

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.

Dr. Ahmed Khudhair Abbas


Computer Department
Operating System Scheduling Algorithms 11

Process ID Arrival Time Burst Time


P1 0 5
P2 1 6
P3 2 3
P4 3 1
P5 4 5
P6 6 4

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,

1. Turn Around Time = Completion Time - Arrival Time


2. Waiting Time = Turn Around Time - Burst Time

Process Arrival Burst Completion Turn Around Waiting


ID Time Time Time Time Time
P1 0 5 17 17 12
P2 1 6 23 22 16
P3 2 3 11 9 6
P4 3 1 12 9 8
P5 4 5 24 20 15
P6 6 4 21 15 11

Avg Waiting Time = (12+16+6+8+15+11)/6 = 76/6 units

Dr. Ahmed Khudhair Abbas


Computer Department
‫‪Operating System Scheduling Algorithms‬‬ ‫‪12‬‬

‫جدولة األولوية ‪Priority Scheduling‬‬

‫في جدولة األولوية‪ ،‬يوجد رقم أولوية معين لكل عملية‪ .‬في بعض األنظمة كلما انخفض الرقم زادت األولوية‪ .‬بينما في الحاالت‬
‫األخرى كلما زاد الرقم زادت األولوية ويتم إعطاء العملية ذات األولوية األعلى بين العمليات المتاحة وحدة المعالجة المركزية‪.‬‬
‫ويوجد نوعان من خوارزمية جدولة األولوية‪ .‬أحدهما هو جدولة األولوية االستباقية ‪ Preemptive‬بينما اآلخر هو جدولة‬
‫األولوية غير االستباقية ‪Non-Preemptive‬‬

‫قد يتغير أو ال يتغير رقم األولوية المعين لكل عملية‪ .‬إذا لم يتغير رقم األولوية من تلقاء نفسه طوال العملية ‪ ،‬فإنه يسمى أولوية‬
‫ثابتة ‪ Static priority‬بينما إذا استمر في تغيير نفسه على فترات منتظمة ‪ ،‬فإنه يسمى األولوية الديناميكية ‪Dynamic‬‬

‫‪priority‬‬

‫جدولة األولوية غير االستباقية ‪Non Preemptive Priority Scheduling‬‬


‫في جدولة األولوية غير االستباقية‪ ،‬تتم جدولة العمليات وفقًا لرقم األولوية المعين لها‪ .‬بمجرد جدولة العملية‪ ،‬سيتم تشغيلها حتى‬
‫اكتمالها‪ .‬بشكل عام‪ ،‬كلما انخفض رقم األولوية‪ ،‬زادت أولوية العملية‪.‬‬

‫‪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.‬‬

‫‪Process ID‬‬ ‫‪Priority‬‬ ‫‪Arrival Time‬‬ ‫‪Burst Time‬‬


‫‪P1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪3‬‬
‫‪P2‬‬ ‫‪6‬‬ ‫‪2‬‬ ‫‪5‬‬
‫‪P3‬‬ ‫‪3‬‬ ‫‪1‬‬ ‫‪4‬‬
‫‪P4‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪2‬‬
‫‪P5‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪9‬‬
‫‪P6‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪4‬‬
‫‪P7‬‬ ‫‪10‬‬ ‫‪7‬‬ ‫‪10‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Operating System Scheduling Algorithms‬‬ ‫‪13‬‬

‫يمكننا إعداد مخطط جانت وفقًا لجدولة األولوية غير االستباقي ‪ Non Preemptive.‬تصل العملية ‪ P1‬في الوقت ‪ 0‬مع وقت‬
‫نظرا لعدم وصول أي عملية أخرى حتى اآلن‪ ،‬سيقوم نظام التشغيل بجدولتها على الفور وفي‬
‫تنفيذ ‪ 3‬وحدات ورقم األولوية ‪ً .2‬‬
‫نظرا ألن أولوية ‪ P3‬هي ‪ ، 3‬فإن وحدة المعالجة المركزية ستنفذ‬
‫الوقت نفسه‪ ،‬تم تنفيذ‪ P1‬ووصلت عمليتان أخريان ‪ P2‬و ‪ً P3.‬‬
‫‪P3‬على‪ P2.‬وفي الوقت نفسه تنفيذ‪ ، P3‬تتوفر جميع العمليات في قائمة االنتظار الجاهزة‪ .‬ستعطى األولوية للعملية ذات أقل‬
‫نظرا ألن ‪ P6‬له رقم أولوية تم تعيينه على أنه ‪ ، 4‬فسيتم تنفيذه بعد ‪ P3‬مباشرة ً‪ .‬وبعد‪ ، P6‬يكون ‪ P4‬هو أقل رقم‬
‫رقم أولوية‪ً .‬‬
‫نظرا ألن جميع الوظائف متوفرة في قائمة االنتظار الجاهزة ‪،‬‬
‫أولوية بين العمليات المتاحة ؛ سيتم تنفيذه طوال وقت التنفيذ و ً‬
‫فسيتم تنفيذ جميع الوظائف وفقًا ألولوياتها‪ .‬إذا كانت هناك وظيفتان لهما رقم أولوية مماثل مخصص لهما‪ ،‬فسيتم تنفيذ المهمة ذات‬
‫أقل وقت وصول‪.‬‬

‫‪P1‬‬ ‫‪P3‬‬ ‫‪P6‬‬ ‫‪P4‬‬ ‫‪P2‬‬ ‫‪P5‬‬ ‫‪P7‬‬


‫‪0‬‬ ‫‪3‬‬ ‫‪7‬‬ ‫‪11‬‬ ‫‪13‬‬ ‫‪18‬‬ ‫‪27‬‬ ‫‪37‬‬

‫‪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.‬‬

‫‪1. Turn Around Time = Completion Time - Arrival Time‬‬


‫‪2. Waiting Time = Turn Around Time - Burst Time‬‬

‫‪Process‬‬ ‫‪Arrival Burst Completion Turnaround Waiting Response‬‬


‫‪Priority‬‬
‫‪Id‬‬ ‫‪Time Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬ ‫‪Time‬‬
‫‪P1‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪P2‬‬ ‫‪6‬‬ ‫‪2‬‬ ‫‪5‬‬ ‫‪18‬‬ ‫‪16‬‬ ‫‪11‬‬ ‫‪13‬‬
‫‪P3‬‬ ‫‪3‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪2‬‬ ‫‪3‬‬
‫‪P4‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪13‬‬ ‫‪9‬‬ ‫‪7‬‬ ‫‪11‬‬
‫‪P5‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪9‬‬ ‫‪27‬‬ ‫‪21‬‬ ‫‪12‬‬ ‫‪18‬‬
‫‪P6‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪11‬‬ ‫‪6‬‬ ‫‪2‬‬ ‫‪7‬‬
‫‪P7‬‬ ‫‪10‬‬ ‫‪7‬‬ ‫‪10‬‬ ‫‪37‬‬ ‫‪30‬‬ ‫‪18‬‬ ‫‪27‬‬

‫‪Avg Waiting Time = (0+11+2+7+12+2+18)/7 = 52/7 units‬‬

‫جدولة األولوية االستباقية ‪Preemptive Priority Scheduling‬‬

‫في جدولة األولوية االستباقية في وقت وصول العملية في قائمة االنتظار الجاهزة تتم مقارنة أولويتها مع أولوية العمليات األخرى‬
‫الموجودة في قائمة االنتظار الجاهزة وكذلك مع العملية التي يتم تنفيذها بواسطة وحدة المعالجة المركزية في تلك المرحلة من‬
‫الوقت سيتم إعطاء وحدة المعالجة المركزية التي لها أولوية قصوى بين جميع العمليات المتاحة‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Operating System Scheduling Algorithms 14

‫ في الجدولة األولوية االستباقية يمكن‬،‫يتمثل االختالف بين جدولة األولوية االستباقية وجدولة األولوية غير االستباقية في أنه‬
.‫إيقاف العملية التي يتم تنفيذها عند وصول عملية ذات أولوية أعلى‬

‫ مما يعني أن المهمة‬،‫ ستعمل الخوارزمية كجدولة أولوية غير استباقية‬،‫بمجرد توفر جميع الوظائف في قائمة االنتظار الجاهزة‬
‫المجدولة ستعمل حتى االنتهاء ولن يتم إجراء أي إجراءات استباقية‬

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.

Process Id Priority Arrival Time Burst Time


P1 2(L) 0 1
P2 6 1 7
P3 3 2 3
P4 5 3 6
P5 4 4 5
P6 10(H) 5 15
P7 9 15 8

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.

1. Turnaround Time = Completion Time - Arrival Time


2. Waiting Time = Turn Around Time - Burst Time

Burst Completion Turn around Waiting


Process Id Priority Arrival Time
Time Time Time Time
P1 2 0 1 1 1 0
P2 6 1 7 22 21 14
P3 3 2 3 5 3 0
P4 5 3 6 16 13 7
P5 4 4 5 10 6 1
P6 10 5 15 45 40 25
P7 9 6 8 30 24 16

Avg Waiting Time = (0+14+0+7+1+25+16)/7 = 63/7 = 9 units

Dr. Ahmed Khudhair Abbas


Computer Department
Threads in Operating Systems 1

Operating Systems
Lecture # 11

Department of Computer
4th Class

Threads in Operating Systems

By

Dr. Ahmed Khudhair Abbas

Computer and Internet Center


‫‪Threads in Operating Systems‬‬ ‫‪2‬‬

‫الخيوط في نظام التشغيل ‪Threads in Operating System‬‬


‫‪Translation is too long to be saved‬‬
‫الخيط ‪ thread‬هو تدفق تسلسلي واحد لتنفيذ مهام العملية ‪ ،‬لذلك يُعرف أيضًا باسم خيط التنفيذ أو خيط التحكم‪ .‬هناك طريقة لتنفيذ‬
‫الخيط داخل عملية أي نظام تشغيل بصرف النظر عن هذا يمكن أن يكون هناك أكثر من خيط واحد داخل العملية‪ .‬ويستخدم كل‬
‫خيط من نفس العملية عداد برنامج منفصل ومجموعة من سجالت التنشيط وكتل التحكم ‪activation records and control‬‬
‫‪ blocks‬غالبًا ما يشار إلى الخيط على أنه عملية خفيفة الوزن‪.‬‬
‫يشارك الخيط مع نظرائه بعض المعلومات مثل مقطع التعليمات البرمجية وقطاع البيانات والملفات المفتوحة‪ .‬عندما يغير خيط‬
‫عنصر ذاكرة اي جزء من الكود ‪ ،‬ترى كل الخيوط األخرى ذلك وتوفر الخيوط طريقة لتحسين أداء التطبيق من خالل التوازي‪.‬‬
‫تمثل الخيوط طريقة برمجية لتحسين أداء نظام التشغيل وان كل خيط ينتمي إلى عملية واحدة بالضبط وال يمكن أن يوجد اي خيط‬
‫خارج العملية‪.‬‬

‫سا مناسبًا للتنفيذ المتوازي للتطبيقات على‬


‫تم استخدام الخيوط بنجاح في تنفيذ خوادم الشبكة وخادم الويب‪ .‬كما أنها توفر أسا ً‬
‫معالجات الذاكرة المشتركة المتعددة‪ .‬يوضح الشكل التالي عمل عملية معالجة أحادية الخيط ومتعددة الخيوط‪:‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Threads in Operating Systems 3

Difference between Process and Thread

S.N. Process Thread

Process is heavy weight or resource Thread is light weight, taking lesser


1
intensive. resources than a process.

Process switching needs interaction Thread switching does not need to interact
2
with operating system. with operating system.

In multiple processing environments,


each process executes the same code All threads can share same set of open
3
but has its own memory and file files, child processes.
resources.
If one process is blocked, then no
While one thread is blocked and waiting, a
4 other process can execute until the
second thread in the same task can run.
first process is unblocked.

Multiple processes without using Multiple threaded processes use fewer


5
threads use more resources. resources.

In multiple processes each process One thread can read, write or change
6
operates independently of the others. another thread's data.

Advantages of Thread ‫مزايا الخيط‬

context switching ‫الخيوط تقلل من وقت تبديل السياق‬ •


concurrency within a process ‫استخدام الخيوط يوفر التزامن في العملية‬ •
Efficient communication ‫التواصل الفعال‬ •
context switch threads ‫من األكثر اقتصادا إنشاء سالسل الرسائل وتبديل سياقها‬ •
‫ على نطاق وكفاءة أكبر‬multiprocessor architectures ‫الخيوط تسمح باستخدام البنى متعددة المعالجات‬ •

Types of Thread ‫أنواع الخيط‬

: ‫يتم تنفيذ الخيوط باتباع طريقتين‬

‫ الخيوط التي يديرها المستخدم‬: User Level Threads ‫الخيوط على مستوى المستخدم‬ •
‫ أحد نواة نظام‬kernel ‫ خيوط إدارة نظام التشغيل التي تعمل على‬: Kernel Level Threads ‫الخيوط على مستوى النواة‬ •
.‫التشغيل‬

Dr. Ahmed Khudhair Abbas


Computer Department
‫‪Threads in Operating Systems‬‬ ‫‪4‬‬

‫الخيوط على مستوى المستخدم ‪User Level Threads‬‬

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

‫مزايا ‪Advantages‬‬

‫ال يتطلب تبديل الخيط امتيازات وضع‪Kernel.‬‬ ‫•‬


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

‫سلبيات ‪Disadvantages‬‬

‫في نظام تشغيل نموذجي يتم حظر معظم استدعاءات النظام‪.‬‬ ‫•‬
‫‪ Multithreaded application‬االستفادة من المعالجة المتعددة‬ ‫ال يمكن للتطبيق متعدد الخيوط‬ ‫•‬
‫‪multiprocessing‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Threads in Operating Systems‬‬ ‫‪5‬‬

‫الخيوط على مستوى النواة ‪Kernel Level Threads‬‬

‫في هذه الحالة ‪ ،‬تتم إدارة الخيط بواسطة ‪ Kernel.‬ال يوجد رمز إدارة الخيط في منطقة التطبيق ‪ application area‬ويتم‬
‫دعم خيوط ‪ Kernel‬مباشرة بواسطة نظام التشغيل ويمكن برمجة أي تطبيق ليكون متعدد الخيوط‪.‬‬

‫يتم دعم جميع ‪ Kernel threads‬داخل التطبيق في عملية واحدة ‪ single process‬ويحتفظ ‪ Kernel‬بمعلومات السياق‬
‫‪ context information‬للعملية ككل وللخيوط الفردية داخل العملية‪ .‬ويتم إجراء الجدولة بواسطة ‪ Kernel‬على أساس الخيط‬
‫وينفذ ‪ Kernel‬إنشاء الخيوط وجدولتها وإدارتها في مساحة ‪ Kernel.‬تكون خيوط ‪ Kernel‬بشكل عام أبطأ في اإلنشاء واإلدارة‬
‫من خيوط المستخدم‪.‬‬

‫مزايا ‪Advantages‬‬

‫يمكن لـ ‪ Kernel‬جدولة خيوط متعددة في نفس الوقت من نفس العملية على عمليات متعددة‪.‬‬ ‫•‬
‫إذا تم حظر خيط واحد في عملية ما ‪ ،‬يمكن لـ ‪ Kernel‬جدولة مؤشر ترابط آخر لنفس العملية‪.‬‬ ‫•‬
‫يمكن أن تكون إجراءات ‪ Kernel‬نفسها ذاتخيوط متعددة‪.‬‬ ‫•‬

‫سلبيات ‪Disadvantages‬‬

‫خيوط ‪ Kernel‬بشكل عام أبطأ في اإلنشاء واإلدارة من خيوط المستخدم‪.‬‬ ‫•‬


‫يتطلب نقل التحكم من خيط إلى آخر خالل نفس العملية يتطلب تبديل الوضع إلى‪Kernel.‬‬ ‫•‬

‫نماذج متعد الخيوط ‪Multithreading Models‬‬

‫توفر بعض أنظمة التشغيل خيط مشترك على مستوى المستخدم وإمكانية خيط على مستوى‪ . Kernel.‬في النظام المدمج‬
‫‪ combined system‬يمكن تشغيل العديد من الخيوط داخل نفس التطبيق بالتوازي على معالجات متعددة وال يلزم أن يؤدي‬
‫‪ blocking system call‬إلى حظر العملية بأكملها وهناك ثالث نماذج من متعدد الخيوط‬ ‫استدعاء نظام الحظر‬
‫‪ Multithreading‬هي ‪:‬‬

‫•‬ ‫‪Many to many relationship.‬‬


‫•‬ ‫‪Many to one relationship.‬‬
‫•‬ ‫‪One to one relationship.‬‬

‫نموذج كثير إلى كثير ‪Many to many relationship‬‬

‫يقوم نموذج متعدد إلى متعدد بتعدد إرسال أي عدد من خيوط المستخدم ‪ user threads‬على عدد مسا ٍو أو أصغر من ‪kernel‬‬
‫‪threads‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Threads in Operating Systems‬‬ ‫‪6‬‬

‫يُظهر الرسم التخطيطي التالي نموذج ‪ many-to-many threading model‬حيث يتم تعدد إرسال ‪ 6‬خيوط على مستوى‬
‫المستخدم باستخدام ‪ 6‬خيوط على مستوى ‪ kernel.‬في هذا النموذج ‪ ،‬يمكن للمطورين إنشاء أكبر عدد ممكن من خيوط المستخدم‬
‫حسب الضرورة ويمكن أن تعمل خيوط ‪ Kernel‬المقابلة بالتوازي على جهاز متعدد المعالجات ‪ Multiprocessor‬ويوفر هذا‬
‫النموذج أفضل دقة في التزامن وعندما ينفذ خيط استدعاء نظام حظر ‪ ،Block system‬يمكن للنواة جدولة خيط آخر للتنفيذ‪.‬‬

‫نموذج كثير لواحد ‪Many to One Model‬‬

‫يعيّن نموذج متعدد إلى واحد العديد من الخيوط على مستوى المستخدم إلى خيط واحد على مستوى ‪ Kernel.‬وتتم إدارة الموضوع‬
‫في مساحة المستخدم بواسطة مكتبة الخيط ‪ .thread library‬عندما يقوم الخيط بإجراء استدعاء لنظام الحظر ‪ ،‬سيتم حظر‬
‫العملية بأكملها‪ .‬يمكن لخيط واحد فقط الوصول إلى ‪ Kernel‬في كل مرة ‪ ،‬لذلك ال يمكن تشغيل العديد من الخيوط بالتوازي على‬
‫المعالجات المتعددة‪.‬‬

‫إذا تم تنفيذ مكتبات الخيوط على مستوى المستخدم في نظام التشغيل بطريقة ال يدعمها النظام ‪ ،‬عندئ ٍذ تستخدم خيوط ‪Kernel‬‬
‫متعدد الى واحد ‪many-to-one‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Threads in Operating Systems‬‬ ‫‪7‬‬

‫نموذج واحد لواحد ‪One to One Model‬‬


‫توجد عالقة رأس برأس للخيط على مستوى المستخدم بخيط على مستوى ‪ . kernel.‬يوفر هذا النموذج تزامنًا أكثر من نموذج‬
‫متعدد إلى واحد‪ .‬كما يسمح أيضًا بتشغيل خيط آخر عندما يقوم خيط بإجراء استدهاء نظام حظر‪ .‬وهو يدعم خيوط متعددة ليتم‬
‫تنفيذها بالتوازي على المعالجات الدقيقة‪.‬‬
‫عيب هذا النموذج هو أن إنشاء خيط مستخدم يتطلب خيط‪ Kernel‬بالمقابل ويستخدم ‪ OS / 2‬و ‪ windows NT‬و ‪windows‬‬
‫‪2000‬نموذج عالقة واحد لواحد‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Threads in Operating Systems 8

Difference between User-Level & Kernel-Level Thread

S.N. User-Level Threads Kernel-Level Thread

User-level threads are faster to create Kernel-level threads are slower to create
1
and manage. and manage.

Implementation is by a thread library at Operating system supports creation of


2
the user level. Kernel threads.

User-level thread is generic and can run Kernel-level thread is specific to the
3
on any operating system. operating system.

Multi-threaded applications cannot take Kernel routines themselves can be


4
advantage of multiprocessing. multithreaded.

Dr. Ahmed Khudhair Abbas


Computer Department
Deadlock in Operating System 1

Operating Systems
Lecture # 12

Department of Computer
4th Class

Deadlock in Operating System

Dr. Ahmed Khudhair Abbas


Computer Department
‫‪Deadlock in Operating System‬‬ ‫‪2‬‬

‫ما هو ‪ Deadlock‬في نظام التشغيل )‪ (OS‬؟‬


‫كل عملية تحتاج إلى بعض الموارد إلكمال تنفيذها‪ .‬ومع ذلك‪ ،‬يتم منح المورد بترتيب تسلسلي وبالترتيب التالي‪:‬‬
‫‪ . 1‬تطلب العملية بعض الموارد‪.‬‬
‫‪ . 2‬يمنح نظام التشغيل المورد إذا كان متا ًحا وإال ستكون العملية في حالة انتظار‪.‬‬
‫‪ . 3‬تقوم العملية بتحرير المورد بعد استخدامه‪.‬‬
‫الجمود (‪ )Deadlock‬هو الموقف الذي تنتظر فيه كل عملية من عمليات الكمبيوتر موردًا يتم تعيينه لعملية أخرى‪ .‬في هذه الحالة‬
‫نظرا ألن المورد الذي تحتاجه يتم االحتفاظ به بواسطة عملية أخرى تنتظر أيضًا إصدار مورد آخر‪.‬‬ ‫ال يتم تنفيذ أي من العملية ً‬
‫لنفترض أن هناك ثالث عمليات ‪ P1‬و ‪ P2‬و ‪ P3.‬وهناك ثالثة موارد مختلفة ‪ R1‬و ‪ R2‬و ‪ R3.‬يتم تعيين ‪ R1‬إلى‪ ، P1‬ويتم‬
‫تعيين ‪ R2‬إلى‪ ، P2‬ويتم تعيين ‪ R3‬إلى‪ , P3.‬بعد مرور بعض من الوقت ‪ ,‬اذا قامت العملية األولى ( ‪ )P1‬بطلب المورد الثاني‬
‫( ‪ )R2‬الذي تستخدمه العملية الثانية ( ‪ )R2‬فأنها ال تستطيع الحصول عليه لذلك سوف تتوقف ونفس الشي بالنسبة للعمليات‬
‫األخرى اذا طلبت موردا محجوز من قبل عملية أخرى في هذا السيناريو ‪ ،‬يتم تشكيل دورة بين العمليات الثالث‪ .‬ال شيء من‬
‫العملية يتقدم وكلهم ينتظرون‪ .‬يصبح الكمبيوتر غير مستجيب منذ أن تم توقف جميع العمليات‪.‬‬

‫‪Sr.‬‬ ‫‪Deadlock‬‬ ‫‪Starvation‬‬


‫‪Deadlock is a situation where no process Starvation is a situation where the low‬‬
‫‪got blocked and no process proceeds‬‬ ‫‪priority process got blocked and the high‬‬
‫‪ priority processes proceed.‬الجمود هو حالة ال يتم فيها حظر أي عملية وال تتم‬
‫‪1‬‬ ‫الجوع هو حالة يتم فيها حظر العملية ذات األولوية متابعة العملية‬
‫المنخفضة والمضي قد ًما في العمليات ذات األولوية‬
‫العالية‬
‫‪Deadlock is an infinite waiting.‬‬ ‫‪Starvation is a long waiting but not‬‬
‫‪2‬‬ ‫‪ infinite.‬الجمود هو انتظار النهائي‬
‫الجوع هو انتظار طويل ولكنه ليس بال حدود‪.‬‬
‫‪Every Deadlock is always a starvation.‬‬ ‫‪Every starvation need not be deadlock.‬‬
‫‪3‬‬ ‫كل جمود دائما مجاعة‬ ‫ال يجب أن تكون كل مجاعة في طريق مسدود‪.‬‬
‫‪The requested resource is blocked by the The requested resource is continuously‬‬
‫‪other process.‬‬ ‫‪be used by the higher priority processes.‬‬
‫‪4‬‬ ‫يتم استخدام المورد المطلوب بشكل مستمر من خالل تم حظر المورد المطلوب من قبل العملية األخر‬
‫العمليات ذات األولوية األعلى‪.‬‬
‫‪Deadlock happens when Mutual It occurs due to the uncontrolled priority‬‬
‫‪exclusion, hold and wait, No preemption and resource management.‬‬
‫‪5‬‬ ‫يحدث ذلك بسبب األولوية غير المنضبط وإدارة ‪and circular wait occurs simultaneously.‬‬
‫يحدث الجمود عند االستبعاد المتبادل ‪ ،‬االنتظار‬ ‫‪.‬الموارد‬
‫واالنتظار ‪ ،‬ال يحدث أي إجراءات وقائية وانتظار‬
‫‪.‬دائري في وقت واحد‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Deadlock in Operating System‬‬ ‫‪3‬‬

‫الشروط الالزمة للجمود ‪Deadlock‬‬


‫‪ .1‬االستبعاد المتبادل ‪Mutual Exclusion‬‬
‫ال يمكن مشاركة المورد إال بطريقة حصرية للطرفين‪ .‬وهذا يعني أنه إذا كانت هناك عمليتان ال يمكن استخدام نفس المورد في‬
‫نفس الوقت‪.‬‬
‫‪ .2‬امسك وانتظر ‪Hold and Wait‬‬
‫تنتظر العملية بعض الموارد أثناء االحتفاظ بمورد آخر في نفس الوقت‪.‬‬
‫‪ .3‬ال وقائية ‪No preemption‬‬
‫سيتم تنفيذ العملية التي تمت جدولتها مرة واحدة حتى االنتهاء‪ .‬ال يمكن جدولة أي عملية أخرى من قبل المجدول في هذه األثناء‪.‬‬
‫‪ .4‬االنتظار الدائري ‪Circular Wait‬‬
‫يجب أن تنتظر ج ميع العمليات الموارد بطريقة دورية بحيث تنتظر العملية األخيرة المورد الذي تحتفظ به العملية األولى‪.‬‬
‫استراتيجيات للتعامل مع الجمود ‪Strategies for handling Deadlock‬‬
‫‪ . 1‬تجاهل الجمود ‪Deadlock Ignorance‬‬
‫‪ Deadlock Ignorance‬هو النهج األكثر استخدا ًما بين جميع اآلليات‪ .‬يتم استخدام هذا بواسطة العديد من أنظمة التشغيل بشكل‬
‫أساسي الستخدامات المستخدم النهائي‪ .‬في هذا النهج‪ ،‬يفترض نظام التشغيل أن حالة الجمود ال تحدث أبدًا‪ .‬إنه ببساطة يتجاهل‬
‫الجمود‪ .‬هذا النهج هو األنسب لنظام المستخدم الواحد ‪ single end user system‬حيث يتم استخدام النظام فقط للتصفح وجميع‬
‫األشياء العادية األخرى‪.‬‬
‫هناك دائما مفاضلة بين الصحة واألداء ‪ Correctness and performance‬تركز أنظمة التشغيل مثل ‪ Windows‬و ‪Linux‬‬
‫بشكل أساسي على األداء‪ .‬ومع ذلك‪ ،‬فإن أداء النظام ينخفض إذا كان يستخدم آلية معالجة حالة الجمود طوال الوقت إذا حدث‬
‫الجمود مرة واحدة من أصل ‪ 100‬مرة ‪ ،‬فال داعي تما ًما الستخدام آلية معالجة حالة الجمود طوال الوقت‪.‬‬
‫في هذه األنواع من األنظمة‪ ،‬يتعين على المستخدم ببساطة إعادة تشغيل الكمبيوتر في حالة الجمود‪ .‬يستخدم ‪ Windows‬و‬
‫‪ Linux‬هذا النهج بشكل أساسي‪.‬‬
‫‪. 2‬منع الجمود ‪Deadlock prevention‬‬
‫ال يحدث الجمود إال عندما يتم تعليق االستبعاد المتبادل ‪ , Mutual Exclusion‬المسك واالنتظار ‪ ، Hold and Wait‬واال‬
‫وقائية ‪ No preemption‬واالنتظار الدائري ‪ Circular Wait‬في وقت واحد ‪ .at the same time‬إذا كان من الممكن‬
‫انتهاك أحد الشروط األربعة في أي وقت ‪ ،‬فلن يحدث الجمود مطلقًا في النظام‪.‬‬

‫‪ .2‬تجنب الجمود ‪Deadlock avoidance‬‬

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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Deadlock in Operating System‬‬ ‫‪4‬‬

‫‪ .4‬كشف الجمود والتصحيح ‪Deadlock detection and recovery‬‬

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

‫الستعادة النظام من الجمود ‪ ،‬إما أن يأخذ نظام التشغيل بعين االعتبار الموارد أو العمليات‬

‫للموارد ‪For Resource‬‬

‫‪ .1‬استباق المورد ‪Preempt the resource‬‬

‫يمكننا انتزاع أحد الموارد من مالك المورد (العملية) وإعطائها للعملية األخرى مع توقع أنها ستكمل التنفيذ وستطلق هذا المورد‬
‫أمرا صعبًا بعض الشيء‪.‬‬‫قريبًا ولكن سيكون اختيار المورد الذي سيتم انتزاعه ً‬

‫‪ .2‬العودة إلى حالة آمنة ‪Rollback to a safe state‬‬

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

‫للعملية ‪For Process‬‬

‫‪ .1‬اقتل عملية ‪Kill a process‬‬

‫يمكن أن يؤدي قتل العملية إلى حل مشكلتنا ولكن الشاغل األكبر هو تحديد العملية التي يجب قتلها‪ .‬بشكل عام ‪ ،‬يقتل نظام التشغيل‬
‫العملية التي قامت بأقل قدر من العمل حتى اآلن‪.‬‬

‫‪ .2‬اقتل كل العمليات ‪Kill all process‬‬

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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Deadlock in Operating System‬‬ ‫‪5‬‬

‫الوقاية من الجمود ‪Deadlock Prevention‬‬

‫إذا تمكنا من انتهاك أحد الشروط األربعة الضرورية وعدم السماح لها بالحدوث معًا ‪ ،‬فيمكننا منع هذا الجمود ويمكننا منع كل‬
‫شرط من شروط الجمود ‪ Deadlock‬كالتالي ‪:‬‬

‫‪ .1‬االستبعاد المتبادل ‪Mutual Exclusion‬‬

‫القسم المتبادل من وجهة نظر الموارد هو حقيقة أنه ال يمكن استخدام المورد من خالل أكثر من عملية واحدة في وقت واحد وهو‬
‫أمر عادل بما فيه الكفاية ولكن هذا هو السبب الرئيسي وراء الجمود‪ .‬إذا كان من الممكن استخدام أحد الموارد بواسطة أكثر من‬
‫عملية في نفس الوقت ‪ ،‬فلن تنتظر العملية أبدًا أي مورد‪.‬‬

‫ومع ذلك ‪ ،‬إذا تمكنا من ادارة الموارد بالتصرف بطريقة االستبعاد المتبادل للطرفين ‪ ،‬فيمكن منع هذا الجمود‬

‫‪ . 2‬امسك وانتظر ‪Hold and Wait‬‬

‫يكمن شرط المسك واالنتظار عندما تحتفظ العملية بمورد وتنتظر بعض الموارد األخرى إلكمال مهمتها‪ .‬يحدث ‪Deadlock‬‬
‫ألنه يمكن أن يكون هناك أكثر من عملية تحتفظ بمورد واحد وتنتظر اآلخر في الترتيب الدوري ومع ذلك ‪ ،‬علينا أن نكتشف آلية‬
‫ما من خاللها ال تحتفظ العملية بأي مورد أو ال تنتظ ر‪ .‬هذا يعني أنه يجب تعيين جميع الموارد الالزمة للعملية قبل بدء التنفيذ‪.‬‬
‫يجب أال تنتظر العملية أي مورد بمجرد بدء التنفيذ‪.‬‬

‫يمكن تنفيذ ذلك عمليًا إذا كانت العملية تعلن عن جميع الموارد في البداية‪ .‬ومع ذلك ‪ ،‬يبدو هذا عمليًا جدًا ولكن ال يمكن إجراؤه‬
‫في نظام الكمبيوتر ألن العملية ال يمكنها تحديد الموارد الالزمة في البداية والعملية هي مجموعة التعليمات التي يتم تنفيذها بواسطة‬
‫وحدة المعالجة المركزية‪ .‬قد تتطلب كل تعليمات موارد متعددة في أوقات متعددة‪ .‬ال يمكن إصالح الحاجة من خالل نظام التشغيل‪.‬‬
‫وعمليا هذا غير ممكن وكذلك تزداد احتمالية الجوع بسبب حقيقة أن بعض العمليات قد تحتفظ بمورد لفترة طويلة جدًا‪.‬‬

‫‪. 3‬ال وقائية ‪No Preemption‬‬

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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Deadlock in Operating System‬‬ ‫‪6‬‬

‫ضع في اعتبارك أن الطابعة قيد االستخدام في أي عملية‪ .‬إذا أخذنا الطابعة بعيدًا عن تلك العملية وقمنا بتعيينها إلى عملية أخرى‬
‫‪ ،‬فقد تصبح جميع البيانات التي تمت طباعتها غير متسقة وغير فعالة وأيضًا حقيقة أن العملية ال يمكن بدء الطباعة مرة أخرى‬
‫من حيث تركت مما يؤدي إلى األداء عدم الكفاءة‪.‬‬

‫‪. 4‬االنتظار الدائري ‪Circular Wait‬‬

‫النتهاك االنتظار الدائري ‪ ،‬يمكننا تعيين رقم أولوية لكل مورد‪ .‬ال يمكن أن تطلب العملية موردًا أقل أولوية‪ .‬هذا يضمن أنه ال‬
‫يمكن لعملية واحدة أن تطلب موردًا يتم استخدامه بواسطة عملية أخرى ولن يتم تشكيل أي دورة‪.‬‬

‫الرسم البياني لتخصيص الموارد ‪Resource Allocation Graph‬‬

‫الرسم البياني لتخصيص الموارد هو تمثيل تصويري لحالة النظام‪ .‬كما يوحي اسمه ‪ ،‬الرسم البياني لتخصيص الموارد هو‬
‫المعلومات الكاملة حول جميع العمليات التي تحتفظ ببعض الموارد أو تنتظر بعض الموارد ويحتوي أيضًا على معلومات حول‬
‫جميع الموارد سواء كانت متاحة أو مستخدمة بواسطة العمليات وفي الرسم البياني لتخصيص الموارد ‪ ،‬يتم تمثيل العملية بدائرة‬
‫بينما يتم تمثيل المورد بمستطيل‪.‬‬

‫الحواف في ‪ RAG‬هي أيضًا من نوعين ‪ ،‬أحدهما يمثل مهمة واآلخر يمثل انتظار عملية لمورد‪ .‬ويتم عرض المورد على أنه‬
‫مخصص لعملية ما إذا تم إرفاق ذيل السهم بالمورد وتم إرفاق الرأس بعملية‪ .‬وتظهر العملية على أنها انتظار لمورد إذا كان ذيل‬
‫السهم مرتب ً‬
‫طا بالعملية بينما يشير الرأس نحو المورد‪ .‬كما في الرسم ادناه‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
Deadlock in Operating System 7

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.

Dr. Ahmed Khudhair Abbas


Computer Department
Process Synchronization in OS 1

Operating Systems
Lecture # 13

Department of Computer
4th Class

Process Synchronization in OS

Dr. Ahmed Khudhair Abbas - Computer Department


‫‪Process Synchronization in OS‬‬ ‫‪2‬‬

‫مقدمة ‪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):‬‬

‫‪Dr. Ahmed Khudhair Abbas - Computer Department‬‬


‫‪Process Synchronization in OS‬‬ ‫‪3‬‬

‫مثل مراحل عدة‪:‬‬


‫‪ .1‬قبل الدخول المنطقة الحرجة‪ :‬التأكد أن الموارد متاحة وحجزها قبل استكمال العمل‬
‫‪ .2‬المنطقة الحرجة‪ :‬الوصول للبيانات المتنازع عليها والقيام بالتعديل‬
‫‪ .3‬الخروج من المنطقة الحرجة‪ :‬إعادة تحديد المنطقة الحرجة كمتاحة وفك الحجز عنها‬
‫ق العمليات من التعديل أو قراءة قيمة‬
‫المثال العلمي‪ :‬في المعامالت البنكية‪ ،‬قبل التعديل على رصيد أحد الحسابات يتم منع با ِ‬
‫الرصيد حتى يتم االنتهاء من المعاملة الحالية وتعديل الرصيد‪.‬‬

‫حالة السباق ‪Race Condition‬‬

‫تحدث حالة السباق عادة ً عندما يحاول اثنان أو أكثر من الخيوط القراءة والكتابة وربما اتخاذ القرارات بنا ًء على الذاكرة التي‬
‫يصلون إليها بشكل متزامن‪.‬‬
‫•إذا كان لدينا متغير ‪، x‬مشترك بين عمليتين ‪ ،‬وقامت كل عملية باآلتي‬
‫قراءة قيمة المتغير ‪read x‬‬
‫زيادة قيمة المتغير بواحد‪X=X+1‬‬
‫حفظ قيمة المتغير الجديد ‪Write x‬‬
‫المشكلة ستظهر عندما تقوم أحد العمليات بقراءة قيمة المتغير ثم تقوم العملية الثانية بقراءة المتغير قبل ان تقوم العملية األولى‬
‫بحفظ القيمة فستكون النتيجة النهائية بعد تنفيذ اإلجرائيتان أن المتغير سيزيد بمقدار ‪ 1‬بدال من ‪ . 2‬الحل هو أن نمنع أي إجرائية‬
‫أخرى من الوصول للمتغير ‪ x‬إذا كانت هنالك جرائية تستخدم هذا المتغير‪.‬‬
‫الجزء حرج ‪Critical Section‬‬

‫تسمى مناطق البرنامج التي تحاول الوصول إلى الموارد المشتركة والتي قد تتسبب في ظروف السباق بالقسم الحرج‪ .‬لتجنب‬
‫حالة السباق بين العمليات‪ ،‬نحتاج إلى التأكد من أنه يمكن تنفيذ عملية واحدة فقط في كل مرة داخل القسم الحرج‪.‬‬
‫مشكلة الجزء الحرج‬
‫القسم الحرج هو جزء من ال برنامج الذي يحاول الوصول إلى الموارد المشتركة‪ .‬قد يكون هذا المورد أي مورد في جهاز‬
‫كمبيوتر مثل موقع الذاكرة أو بنية البيانات أو وحدة المعالجة المركزية أو أي جهاز إدخال ‪ /‬إخراج‪.‬‬
‫ال يمكن تنفيذ القسم الحرج بأكثر من عملية في نفس الوقت ويواجه نظام التشغيل صعوبات في السماح وعدم السماح للعمليات‬
‫بالدخول إلى القسم الحرج ويتم استخدام مشكلة القسم الحرج لتصميم مجموعة من البروتوكوالت التي يمكن أن تضمن عدم‬
‫ظهور حالة السباق بين العمليات ومن أجل مزامنة العمليات التعاونية‪ ،‬تتمثل مهمتنا الرئيسية في حل مشكلة القسم الحرج‪ .‬نحن‬
‫بحاجة إلى تقديم حل بطريقة يمكن من خاللها تلبية الشروط التالية‪.‬‬
‫يجب أن يفي أي حل لمشكلة القسم الحرج بثالثة متطلبات‪:‬‬
‫‪ .1‬االستبعاد المتبادل ‪Mutual Exclusion‬‬

‫إذا كانت العملية قيد التنفيذ في قسمها الحرج‪ ،‬فال يُسمح بتنفيذ أي عملية أخرى في القسم الحرج‪ .‬نعني باالستبعاد المتبادل أنه إذا‬
‫كانت إحدى العمليات يتم تنفيذها داخل قسم حرج ‪ critical section‬فيجب أال تدخل العملية األخرى في القسم الحرج‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas - Computer Department‬‬


‫‪Process Synchronization in OS‬‬ ‫‪4‬‬

‫استبعاد التشارك أو إقصاء التشارك باإلنجليزية )‪ ) 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‬‬

‫يجب أن يكون هناك ارتباط بعدد المرات التي يُسمح فيها للعمليات األخرى بإدخال أقسامها الحرجة بعد أن تقدم العملية طلبًا‬
‫إلدخال قسمها الحرج وقبل منح هذا الطلب‪ ،‬أي يجب أن نكون قادرين على التنبؤ بوقت االنتظار لكل عملية للوصول إلى القسم‬
‫الحرج‪ .‬يجب أال تنتظر العملية إلى ما ال نهاية للوصول إلى القسم الحرج‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas - Computer Department‬‬


‫‪Process Synchronization in OS‬‬ ‫‪5‬‬

‫المتغير المقفول ‪Lock Variable‬‬

‫هذه هي أبسط آلية مزامنة وهي آلية برمجية مطبقة في وضع المستخدم‪( .‬حل االنتظار المشغول) يمكن استخدامه ألكثر من‬
‫عمليتين‪ .‬في هذه اآللية‪ ،‬يتم استخدام متغير يعمل بشكل قفل‪ .‬يمكن أن يكون هناك قيمتان للقفل‪ ،‬إما ‪ 0‬أو ‪ .1‬تعني قيمة القفل ‪0‬‬
‫أن القسم الحرج شاغر بينما تعني قيمة القفل ‪ 1‬أنه مشغول‪.‬‬
‫تقوم العملية التي تريد الدخول إلى القسم الحرج أوالً بفحص قيمة متغير القفل‪ .‬إذا كانت القيمة ‪ ،0‬فإنها تحدد قيمة القفل على‬
‫أنها ‪ 1‬وتدخل في القسم الحرج‪ ،‬وإال فإنها تنتظر‪.‬‬
‫‪The pseudo code of the mechanism looks like following.‬‬

‫→ ‪1. Entry Section‬‬

‫;)‪2. While (lock! = 0‬‬

‫;‪3. Lock = 1‬‬

‫‪4. //Critical Section‬‬

‫→ ‪5. Exit Section‬‬

‫;‪6. Lock =0‬‬

‫إذا نظرنا إلى الكود اعاله‪ ،‬نجد أن هناك ثالثة أقسام في الكود‪ .‬قسم الدخول‪ ،‬قسم الحرج وقسم الخروج‪.‬‬
‫مبدئيًا‪ ،‬تكون قيمة متغير القفل ‪ .0‬العملية التي تحتاج إلى الدخول إلى القسم الحرج‪ ،‬تدخل في قسم اإلدخال وتتحقق من الحالة‬
‫المتوفرة في حلقة‪while.‬‬
‫نظرا ألنه في المرة األولى‬
‫ً‬ ‫ستنتظر العملية إلى ما ال نهاية حتى تصبح قيمة القفل ‪ 1‬وهذا يعني ضمنيًا بواسطة حلقة ‪while‬‬
‫شاغرا‪ ،‬ستدخل العملية إلى القسم الحرج عن طريق تعيين متغير القفل على ‪ .1‬عندما تخرج العملية من‬ ‫ً‬ ‫يكون القسم الحرج‬
‫القسم الحرج‪ ،‬ثم في قسم الخروج‪ ،‬فإنها تعيد تعيين قيمة القفل على أنها ‪.0‬‬

‫حل بيترسون ‪Peterson’s Solution‬‬


‫هو حل كالسيكي قائم على البرامج لمشكلة القسم الحرج‪ .‬في حل بيترسون‪ ،‬لدينا متغيرين مشتركين‪:‬‬
‫]‪ Boolean flag[i‬تمت تهيئته إلى ‪ ، FALSE‬في البداية ال أحد مهتم بدخول القسم الحرج‬ ‫‪-‬‬
‫‪ int turn‬العملية التي يكون دورها للدخول إلى القسم الحرج‪.‬‬ ‫‪-‬‬
‫يحافظ ‪ Peterson’s Solution‬على الشروط الثالثة‪:‬‬
‫االستبعاد المتبادل مضمون حيث يمكن لعملية واحدة فقط الوصول إلى القسم الحرج في أي وقت‪.‬‬ ‫‪-‬‬
‫التقدم مضمون أيضًا‪ ،‬ألن العملية خارج القسم الحرج ال تمنع العمليات األخرى من دخول القسم الحرج‪.‬‬ ‫‪-‬‬
‫يتم االحتفاظ باالنتظار المقيد حيث تحصل كل عملية على فرصة عادلة‪.‬‬ ‫‪-‬‬
‫عيوب حل بيترسون ‪Disadvantages of Peterson’s solution‬‬
‫ال يفضل االنتظار المشغول ألنه يهدر دورات وحدة المعالجة المركزية التي يمكن استخدامها ألداء مهام أخرى‬ ‫‪-‬‬
‫يقتصر على عمليتين‪.‬‬ ‫‪-‬‬
‫ال يمكن استخدام حل بيترسون في بنيات وحدة المعالجة المركزية الحديثة‪.‬‬ ‫‪-‬‬

‫‪Dr. Ahmed Khudhair Abbas - Computer Department‬‬


‫‪Process Synchronization in OS‬‬ ‫‪6‬‬

‫السيمافور ‪Semaphore‬‬
‫تم اقتراح سيمافور بواسطة ‪ Dijkstra‬في عام ‪ 1965‬وهي تقنية مهمة جدًا إلدارة العمليات المتزامنة باستخدام قيمة عدد‬
‫صحيح بسيط ‪ ،‬والتي تُعرف باسم ‪ .semaphore‬وهي ببساطة عدد صحيح متغير يتم مشاركته بين الخيوط‪ .‬يستخدم هذا‬
‫المتغير لحل مشكلة القسم الحرج ولتحقيق مزامنة العملية في بيئة المعالجة المتعددة و‪ Semaphores‬من نوعين‪:‬‬

‫‪Binary Semaphore .1‬‬


‫يُعرف هذا أيضًا باسم قفل المزامنة (‪ .)mutex lock‬يمكن أن يحتوي على قيمتين فقط (‪ )1 , 0‬ويتم تهيئة قيمته إلى ‪ 1‬ليتم‬
‫استخدامه لتنفيذ الحل لمشاكل القسم الحرج مع عمليات متعددة‪.‬‬
‫‪Counting Semaphore .2‬‬

‫يمكن أن تتراوح قيمتها على مجال غير مقيد‪ .‬يتم استخدامه للتحكم في الوصول إلى مورد له مثيالت متعددة ‪multiple‬‬
‫‪instances‬‬
‫مشكلة المنتج‪-‬المستهلك ‪Producer Consumer problem‬‬
‫مشكلة المنتج‪-‬المستهلك هي مشكلة كالسيكية تُستخدم للمزامنة متعددة العمليات‪ ،‬أي المزامنة بين أكثر من عملية واحدة‪.‬‬
‫في مشكلة المنتج ‪ -‬المستهلك‪ ،‬يوجد منتج واحد ينتج شيئًا ما وهناك مستهلك واحد يستهلك المنتجات التي ينتجها المنتج‪ .‬يشترك‬
‫المنتجون والمستهلكون في نفس مخزن الذاكرة ذي الحجم الثابت‪.‬‬
‫تتمثل وظيفة ال ُمنتِج في إنشاء البيانات ووضعها في المخزن المؤقت والبدء مرة أخرى في إنشاء البيانات‪ .‬بينما وظيفة المستهلك‬
‫هي استهالك البيانات من المخزن المؤقت‪.‬‬
‫ما هي المشكلة هنا؟‬
‫فيما يلي المشاكل التي قد تحدث في المنتج ‪ -‬المستهلك‪:‬‬
‫يجب أن ينتج المنتج البيانات فقط عندما ال يكون المخزن المؤقت ممتلئًا‪ .‬إذا كان المخزن المؤقت ممتلئًا‪ ،‬فال ينبغي‬ ‫‪-‬‬
‫السماح للمنتج بوضع أي بيانات في المخزن المؤقت‪.‬‬
‫ً‬ ‫ً‬
‫يجب أن يستهلك المستهلك البيانات فقط عندما ال يكون المخزن المؤقت فارغا‪ .‬إذا كان المخزن المؤقت فارغا‪ ،‬فال‬ ‫‪-‬‬
‫ينبغي أن يُسمح للمستهلك بأخذ أي بيانات من المخزن المؤقت‪.‬‬
‫يجب أال يصل المنتج والمستهلك إلى المخزن المؤقت في نفس الوقت‪.‬‬ ‫‪-‬‬
‫ما هو الحل؟‬
‫في مشكلة المنتج ‪ -‬المستهلك‪ ،‬نستخدم ثالث متغيرات إشارات‪:‬‬
‫‪ : Semaphore S‬يستخدم لتحقيق االستبعاد المتبادل بين العمليات‪ .‬باستخدام هذا المتغير‪ ،‬سيتم السماح لل ُمنتِج أو المستهلك‬
‫باستخدام المخزن المؤقت المشترك أو الوصول إليه في وقت معين‪ .‬تم تعيين هذا المتغير على ‪ 1‬في البداية‪.‬‬
‫‪ : Semaphore E‬يستخدم لتحديد المساحة الفارغة في المخزن المؤقت‪ .‬في البداية‪ ،‬يتم تعيينه على كامل مساحة المخزن‬
‫المؤقت‪ ،‬الن المخزن المؤقت فارغ في البداية‪.‬‬
‫‪ : Semaphore F‬يستخدم لتحديد المساحة التي يمألها المنتج‪ .‬مبدئيًا‪ ،‬يتم ضبطه على "‪ "0‬ألنه ال توجد مساحة يمألها المنتج‬
‫في البداية‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas - Computer Department‬‬


‫‪Process Synchronization in OS‬‬ ‫‪7‬‬

‫باستخدام متغيرات السيمافور الثالثة المذكورة أعاله وباستخدام وظيفة االنتظار () واإلشارة () ‪ ،‬يمكننا حل المشكلة ‪.‬‬
‫‪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‬‬
‫}‬

‫‪Dr. Ahmed Khudhair Abbas - Computer Department‬‬


‫‪Process Synchronization in OS‬‬ ‫‪8‬‬

‫يمكن تلخيص الكود أعاله على النحو التالي‪:‬‬


‫وتكرارا‪.‬‬
‫ً‬ ‫مرارا‬
‫ً‬ ‫وتكرارا ‪ ،‬إذا كانت ترغب في استهالكها ‪،‬‬
‫ً‬ ‫مرارا‬
‫ً‬ ‫)( ‪ : while‬تستخدم الستهالك البيانات ‪،‬‬
‫)‪ : Wait(F‬يستخدم لتقليل متغير السيمافور "‪ "F‬بواحد ألنه إذا كان المستهلك يستهلك بعض البيانات ‪ ،‬فيجب إنقاص المتغير‬
‫"‪"F‬بمقدار واحد‪.‬‬
‫)‪ : Wait(S‬يستخدم لتعيين متغير اإلشارة "‪ "S‬على "‪ "0‬بحيث ال يمكن ألي عملية أخرى الدخول في القسم الحرج‪.‬‬
‫)( ‪ : take‬وظيفة ألخذ البيانات من المخزن المؤقت من قبل المستهلك‪.‬‬
‫يتم استخدام )‪ signal(S‬لتعيين متغير السيمافور "‪ "S‬على "‪ "1‬بحيث يمكن أن تدخل العمليات األخرى إلى القسم الحرج اآلن‬
‫ألن االستهالك يتم ويتم إجراء عملية االستالم أيضًا‪.‬‬
‫يتم استخدام )‪ signal(E‬لزيادة متغير السيمافور "‪ "E‬بواحد ألنه بعد أخذ البيانات من المخزن المؤقت ‪ ،‬يتم تحرير مساحة‬
‫واحدة من المخزن المؤقت ويجب زيادة المتغير‪"E".‬‬
‫)( ‪ : use‬هي وظيفة تُستخدم الستخدام البيانات المأخوذة من المخزن المؤقت بواسطة العملية للقيام ببعض العمليات‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas - Computer Department‬‬


Memory Managament in Operating System 1

Operating Systems
Lecture # 14

Department of Computer
4th Class

Memory management in Operating System

Dr. Ahmed Khudhair Abbas


Computer Department
‫‪Memory Managament in Operating System‬‬ ‫‪2‬‬

‫ما هي الذاكرة ‪ Memory‬؟‬


‫يمكن تعريف ذاكرة الكمبيوتر على أنها مجموعة من بعض البيانات الممثلة في تنسيق ثنائي‪ .‬على أساس الوظائف المختلفة‪،‬‬
‫ويمكن تصنيف الذاكرة إلى فئات مختلفة‪ .‬ويسمى جهاز الكمبيوتر القادر على تخزين أي معلومات أو بيانات بشكل مؤقت أو دائم‪،‬‬
‫بجهاز التخزين‪.‬‬
‫كيف يتم تخزين البيانات في نظام الكمبيوتر؟ ‪How Data is being stored in a computer system‬‬

‫لفهم إدارة الذاكرة‪ ،‬يتعين علينا توضيح كل شيء حول كيفية تخزين البيانات في نظام الكمبيوتر‪.‬‬
‫يفهم الجهاز اللغة الثنائية فقط التي تكون ‪ 0‬أو ‪ .1‬يحول الكمبيوتر كل البيانات إلى لغة ثنائية أوالً ثم يخزنها في الذاكرة‪ .‬هذا يعني‬
‫أنه إذا كان لدينا سطر برنامج مكتوب كـ ( ‪ ، ) int α = 10‬فسيحوله الكمبيوتر إلى اللغة الثنائية ثم يخزنه في كتل الذاكرة ويظهر‬
‫كما في الشكل ادناه‬

‫الحاجة إلى البرمجة المتعددة ‪Need for Multi programming‬‬


‫يمكن لوحدة المعالجة المركزية الوصول مباشرة إلى الذاكرة الرئيسية والسجالت وذاكرة التخزين المؤقت للنظام ويتم تنفيذ‬
‫البرنامج دائ ًما في الذاكرة الرئيسية‪ .‬كما ويؤثر حجم الذاكرة الرئيسية على درجة البرمجة المتعددة لمعظم ما هو موجود‪ .‬إذا كان‬
‫حجم الذاكرة الرئيسية أكبر ‪ ،‬فيمكن لوحدة المعالجة المركزية تحميل المزيد من العمليات في الذاكرة الرئيسية في نفس الوقت ‪،‬‬
‫وبالتالي ستزيد من درجة البرمجة المتعددة وكذلك استخدام وحدة المعالجة المركزية‪.‬‬

‫إدارة الذاكرة في نظام التشغيل )‪(OS) Memory Management in Operating System (OS‬‬
‫أمرا بالغ األهمية لنظام الكمبيوتر ألن حجم الذاكرة‬
‫الذاكرة هي الجزء المهم من الكمبيوتر المستخدم لتخزين البيانات‪ .‬تعد إدارتها ً‬
‫الرئيسية المتوفرة في نظام الكمبيوتر محدود للغاية‪ .‬في أي وقت ‪ ،‬تتنافس العديد من العمليات على ذلك‪ .‬عالوة على ذلك ‪ ،‬لزيادة‬
‫األداء ‪ ،‬يت م تنفيذ العديد من العمليات في وقت واحد‪ .‬لهذا ‪ ،‬يجب أن نحتفظ بالعديد من العمليات في الذاكرة الرئيسية وذلك من‬
‫األهمية الإدارتها بفعالية‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪3‬‬

‫دور إدارة الذاكرة ‪Role of Memory management‬‬

‫فيما يلي األدوار المهمة إلدارة الذاكرة في نظام الكمبيوتر‪:‬‬

‫مدير الذاكرة يستخدم لتتبع حالة مواقع الذاكرة ‪ ،‬سواء كانت خالية أو مخصصة‪ .‬إنه يعالج الذاكرة األولية من خالل‬ ‫•‬
‫توفير التجريدات بحيث يدرك البرنامج أن ذاكرة كبيرة مخصصة لها‪.‬‬
‫يسمح مدير الذاكرة ألجهزة الكمبيوتر التي تحتوي على كمية صغيرة من الذاكرة الرئيسية بتنفيذ برامج أكبر من حجم‬ ‫•‬
‫أو مقدار الذاكرة المتوفرة‪ .‬يقوم بذلك عن طريق نقل المعلومات ذهابًا وإيابًا بين الذاكرة األولية والذاكرة الثانوية باستخدام‬
‫مفهوم المبادلة‪.‬‬
‫مدير الذاكرة مسؤول عن حماية الذاكرة المخصصة لكل عملية من التلف بسبب عملية أخرى‪ .‬إذا لم يتم ضمان ذلك ‪،‬‬ ‫•‬
‫فقد يُظهر النظام سلو ًكا غير متوقع‪.‬‬
‫يجب على مديري الذاكرة تمكين مشاركة مساحة الذاكرة بين العمليات‪ .‬وبالتالي ‪ ،‬يمكن أن يتواجد برنامجان في نفس‬ ‫•‬
‫موقع الذاكرة ولكن في أوقات مختلفة‪.‬‬

‫توفر إدارة الذاكرة الحماية باستخدام سجلين ‪ ،‬وسجل أساسي ‪ ،base register‬وسجل حد ‪ . limit register‬يحتفظ السجل األساسي‬
‫بأصغر عنوان للذاكرة الفعلية القانونية ‪ physical memory‬ويحدد سجل الحد حجم النطاق‪ .‬على سبيل المثال ‪ ،‬إذا كان السجل‬
‫األساسي يحمل ‪ 300000‬وكان سجل الحد هو ‪ ، 1209000‬فيمكن للبرنامج الوصول بشكل قانوني إلى جميع العناوين من‬
‫‪ 300000‬إلى ‪ .411999‬ويمكن عمل التعليمات والبيانات الخاصة بعناوين الذاكرة بالطرق التالية‬

‫‪ .1‬وقت التجميع ‪ Compile time‬عندما يكون معروفًا في وقت الترجمة حيث ستقيم العملية ‪ ،‬يتم استخدام ربط وقت‬
‫التجميع إلنشاء الشفرة المطلقة‪.‬‬
‫‪ .2‬وقت التحميل ‪ Load time‬عندما ال يكون معروفًا في وقت الترجمة مكان وجود العملية في الذاكرة ‪ ،‬يقوم المحول‬
‫البرمجي بإنشاء رمز يمكن إعادة تحديد موقعه‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪4‬‬

‫‪ .3‬وقت التنفيذ ‪ Execution time‬إذا كان من الممكن نقل العملية أثناء تنفيذها من مقطع ذاكرة إلى آخر ‪ ،‬فيجب تأجيل‬
‫الربط ليتم إجراؤه في وقت التشغيل‬

‫التحميل الديناميكي ‪ Dynamic Loading‬في التحميل الديناميكي ‪ ،‬ال يتم تحميل روتين البرنامج حتى يتم استدعاؤه بواسطة‬
‫البرنامج ويتم االحتفاظ بجميع اإلجراءات على القرص بتنسيق ويمكن إعادة تحديد موقعه‪ .‬يتم تحميل البرنامج الرئيسي ‪main‬‬
‫‪ program‬في الذاكرة ويتم تنفيذه ويتم تحميل طرق أو وحدات روتينية أخرى ‪Other routines methods or modules‬‬
‫عند الطلب‪ .‬التحميل الديناميكي يجعل استخدام مساحة الذاكرة أفضل وال يتم تحميل اإلجراءات غير المستخدمة‪.‬‬

‫االرتباط الديناميكي ‪ Dynamic Linking‬االرتباط هو عملية تجميع ودمج وحدات مختلفة من التعليمات البرمجية والبيانات‬
‫في ملف قابل للتنفيذ يمكن تحميله في الذاكرة وتنفيذه‪ .‬يمكن لنظام التشغيل ربط المكتبات على مستوى النظام بالبرنامج‪ .‬عندما‬
‫يجمع المكتبات في وقت التحميل ‪ Load Time‬يُطلق على هذا النوع باالرتباط الثابت ‪ static linking‬وعندما يتم هذا االرتباط‬
‫في وقت التنفيذ ‪ ،Execution Time‬يُطلق عليه االرتباط الديناميكي ‪ dynamic linking‬في االرتباط الثابت ‪ ،‬المكتبات‬
‫المرتبطة في وقت الترجمة ‪ ،‬بحيث يصبح حجم رمز البرنامج أكبر بينما في مكتبات االرتباط الديناميكي المرتبطة في وقت التنفيذ‬
‫يظل حجم كود البرنامج أصغر‪.‬‬

‫تقنيات إدارة الذاكرة ‪Memory Management Techniques‬‬

‫يمكن تصنيف تقنيات إدارة الذاكرة إلى الفئات الرئيسية التالية‪:‬‬

‫أنظمة إدارة الذاكرة المجاورة ‪Contiguous memory management schemes‬‬ ‫•‬


‫مخططات إدارة الذاكرة غير المتجاورة ‪Non-Contiguous memory management schemes‬‬ ‫•‬
‫‪:‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪5‬‬

‫مخططات إدارة الذاكرة المجاورة ‪Contiguous memory management schemes‬‬

‫في مخطط إدارة الذاكرة المتجاورة ‪ ،‬يحتل كل برنامج كتلة واحدة متجاورة من مواقع التخزين ‪ ،‬أي مجموعة من مواقع الذاكرة‬
‫بعناوين متتالية‪.‬‬

‫مخططات إدارة الذاكرة المتجاورة الفردية ‪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‬ال يدعم البرمجة المتعددة ‪ ،‬أي أنه ال يمكنه التعامل مع برامج متعددة في نفس الوقت‪.‬‬

‫التقسيم المتعدد ‪Multiple Partitioning‬‬

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

‫يمكن أن تكون أنظمة التقسيم المتعددة من نوعين‪:‬‬

‫‪ .1‬التقسيم الثابت ‪Fixed Partitioning‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪6‬‬

‫‪ .2‬التقسيم الديناميكي ‪Dynamic Partitioning‬‬

‫التقسيم الثابت ‪Fixed Partitioning‬‬

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

‫في التقسيم الثابت ‪،‬‬

‫‪ .1‬ال يمكن أن تتداخل األقسام‪.‬‬


‫‪ .2‬يجب أن تكون العملية موجودة بشكل متواصل في قسم للتنفيذ‪.‬‬

‫هناك عيوب مختلفة الستخدام هذه التقنية ‪:‬‬

‫‪ .1‬التجزئة الداخلية ‪Internal Fragmentation‬‬

‫إذا كان حجم العملية أقل ‪ ،‬فسيتم إهدار حجم القسم ويظل غير مستخدم‪ .‬هذا هو إهدار للذاكرة ويسمى التجزئة الداخلية‪ .‬كما هو‬
‫موضح في الصورة أدناه ‪ ،‬يتم استخدام قسم ‪ 4‬ميغا بايت لتحميل عملية ‪ 3‬ميغا بايت فقط ويتم إهدار ‪ 1‬ميغا بايت المتبقية‪.‬‬

‫‪ .2‬التجزئة الخارجية ‪External Fragmentation‬‬

‫ال يمكن استخدام المساحة اإلجمالية غير المستخدمة ألقسام مختلفة لتحميل العمليات على الرغم من وجود مساحة متاحة ولكن‬
‫ليس في الشكل المتجاور‪ .‬كما هو موضح في الصورة أدناه ‪ ،‬ال يمكن استخدام المساحة المتبقية ‪ 1‬ميجا بايت لكل قسم كوحدة‬
‫لتخزين عملية ‪ 4‬ميجا بايت‪ .‬على الرغم من توفر المساحة الكافية لتحميل العملية ‪ ،‬لن يتم تحميل العملية‪.‬‬

‫‪ .3‬تحديد حجم العملية ‪Limitation on the size of the process‬‬

‫إذا كان حجم العملية أكبر من حجم القسم األقصى ‪ ،‬فال يمكن تحميل هذه العملية في الذاكرة‪ .‬لذلك ‪ ،‬يمكن فرض قيود على حجم‬
‫العملية بحيث ال يمكن أن تكون أكبر من حجم القسم األكبر‪.‬‬

‫‪ .4‬درجة تعدد البرمجة أقل ‪Degree of multiprogramming is less‬‬

‫حسب درجة البرمجة المتعددة ‪ ،‬فإننا نعني ببساطة الحد األقصى لعدد العمليات التي يمكن تحميلها في الذاكرة في نفس الوقت‪ .‬في‬
‫نظرا لحقيقة أن حجم القسم ال يمكن تغييره وفقًا لحجم العمليات‬
‫التقسيم الثابت ‪ ،‬تكون درجة البرمجة المتعددة ثابتة وأقل جدًا ً‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪7‬‬

‫مزايا أنظمة إدارة ذاكرة التقسيم الثابت ‪Advantages of Fixed Partitioning memory management‬‬
‫‪schemes‬‬

‫‪ .2‬س سهل التنفيذ‪.‬‬


‫‪ .3‬سهل اإلدارة والتصميم‪.‬‬

‫عيوب أنظمة إدارة ذاكرة التقسيم الثابت ‪Disadvantages of Fixed Partitioning memory management‬‬
‫‪schemes‬‬

‫‪ .1‬يعاني هذا المخطط من تجزئة داخلية‪.‬‬


‫‪ .2‬يتم تحديد عدد األقسام في وقت إنشاء النظام‪.‬‬

‫التقسيم الديناميكي ‪Dynamic Partitioning‬‬

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

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪8‬‬

‫مزايا التقسيم الديناميكي على التقسيم الثابت ‪Advantages of Dynamic Partitioning over fixed partitioning‬‬
‫‪ .1‬ال تجزئة داخلية ‪No Internal Fragmentation‬‬

‫بالنظر إلى حقيقة أن األقسام في التقسيم الديناميكي يتم إنشاؤها وفقًا الحتياجات العملية ‪ ،‬فمن الواضح أنه لن يكون هناك أي تجزئة‬
‫داخلية ألنه لن يكون هناك أي مساحة متبقية غير مستخدمة في القسم‪.‬‬

‫‪ .2‬ال قيود على حجم العملية ‪No Limitation on the size of the process‬‬

‫في التقسيم الثابت ‪ ،‬ال يمكن تنفيذ العملية ذات الحجم األكبر من حجم القسم األكبر بسبب عدم وجود ذاكرة متجاورة كافية‪ .‬هنا ‪،‬‬
‫في التقسيم الديناميكي ‪ ،‬ال يمكن تقييد حجم العملية حيث يتم تحديد حجم القسم وفقًا لحجم العملية‪.‬‬

‫‪ .3‬درجة البرمجة المتعددة ديناميكية ‪Degree of multiprogramming is dynamic‬‬

‫نظرا لعدم وجود تجزئة داخلية ‪ ،‬لن يكون هناك أي مساحة غير مستخدمة في القسم ‪ ،‬وبالتالي يمكن تحميل المزيد من العمليات‬
‫ً‬
‫في الذاكرة في نفس الوقت‪.‬‬

‫مساوئ التقسيم الديناميكي ‪Disadvantages of dynamic partitioning‬‬


‫التجزئة الخارجية ‪External Fragmentation‬‬

‫ال يعني عدم وجود التجزئة الداخلية أنه لن يكون هناك تجزئة خارجية‪ .‬لنفكر في ثالث عمليات )‪ P1 (1 MB‬و )‪P2 (3 MB‬‬
‫و )‪ P3 (1 MB‬يتم تحميلها في األقسام المعنية من الذاكرة الرئيسية‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪9‬‬

‫بعد مرور بعض الوقت ‪ ،‬تم االنتهاء من ‪ P1‬و ‪ P3‬وتم تحرير المساحة المخصصة لهما‪ .‬يوجد اآلن قسمان غير مستخدمين (‪1‬‬
‫نظرا لعدم‬
‫ميجابايت و ‪ 1‬ميجابايت) متاحان في الذاكرة الرئيسية ولكن ال يمكن استخدامهما لتحميل عملية ‪ 2‬ميجابايت في الذاكرة ً‬
‫وجودهما في مكان قريب‪.‬‬

‫تنص القاعدة على أن العملية يجب أن تكون موجودة باستمرار في الذاكرة الرئيسية ليتم تنفيذها‪ .‬نحتاج إلى تغيير هذه القاعدة‬
‫لتجنب التجزئة الخارجية‪.‬‬

‫تخصيص الذاكرة المعقدة ‪Complex Memory Allocation‬‬

‫في التقسيم الثابت ‪ ،‬يتم إنشاء قائمة األقسام مرة واحدة ولن تتغير أبدًا ولكن في التقسيم الديناميكي ‪ ،‬يكون التخصيص وإلغاء‬
‫نظرا ألن حجم القسم سيتغير في كل مرة يتم فيها تعيينه لعملية جديدة‪ .‬يجب أن يتتبع نظام التشغيل جميع‬
‫التخصيص معقدين للغاية ً‬
‫نظرا لحقيقة أن التخصيص وإلغاء التخصيص يتم بشكل متكرر جدًا في تخصيص الذاكرة الديناميكي وسيتم تغيير حجم‬
‫األقسام‪ً .‬‬
‫القسم في كل مرة ‪ ،‬سيكون من الصعب جدًا على نظام التشغيل إدارة كل شيء‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪10‬‬

‫مخططات إدارة الذاكرة غير المتجاورة ‪Non-Contiguous memory management schemes‬‬

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

‫ما هو نظام الصفحات ‪ What is paging‬؟‬

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

‫مزايا نظام الصفحات ‪Advantages‬‬

‫‪ .1‬تقلل الصفحات التجزئة الخارجية‪.‬‬


‫‪ .2‬س سهل التنفيذ‪.‬‬
‫‪ .3‬كفاءة الذاكرة‪.‬‬
‫أمرا سهالً للغاية‪.‬‬
‫نظرا لحجم اإلطارات المتساوي ‪ ،‬يصبح التبديل ً‬
‫ً‬ ‫‪.4‬‬
‫‪ .5‬يتم استخدامه للوصول السريع إلى البيانات‪.‬‬

‫ما هو التقسيم ‪ Segmentation‬؟‬

‫التجزئة هي تقنية تلغي متطلبات التخصيص المتجاور للذاكرة الرئيسية‪ .‬في هذا ‪ ،‬يتم تقسيم الذاكرة الرئيسية إلى كتل متغيرة‬
‫الحجم من الذاكرة الفعلية تسمى المقاطع‪ .‬يعتمد على الطريقة التي يتبعها المبرمج لهيكلة برامجهم‪ .‬مع تخصيص الذاكرة المجزأة‬
‫‪ ،‬يتم تقسيم كل مهمة إلى عدة أقسام بأحجام مختلفة ‪ ،‬واحدة لكل وحدة‪.‬‬

‫يمكن تقليل التجزئة الخارجية عن طريق الضغط أو خلط محتويات الذاكرة لوضع كل الذاكرة الخالية م ًعا في كتلة واحدة كبيرة‪.‬‬
‫لجعل الضغط ممكنًا ‪ ،‬يجب أن يكون النقل ديناميكيًا‬

‫العنوان منطقي مقابل مساحة العنوان الفعلي ‪Logical versus Physical Address Space‬‬

‫العنوان الذي تم إنشاؤه بواسطة وحدة المعالجة المركزية هو عنوان منطقي بينما العنوان المتاح بالفعل على وحدة الذاكرة هو‬
‫عنوان فعلي ( فيزيائي ) يُعرف العنوان المنطقي أيضًا باسم العنوان الظاهري‪ .‬العناوين الظاهرية والمادية هي نفسها في أنظمة‬
‫ربط العناوين وقت الترجمة ووقت التحميل‪ .‬تختلف العناوين الظاهرية والمادية في مخططات ربط عناوين وقت التنفيذ‪.‬‬

‫يشار إلى مجموعة جميع العناوين المنطقية التي تم إنشاؤها بواسطة برنامج بمساحة العنوان المنطقية‪ .‬ويشار إلى مجموعة جميع‬
‫العناوين الفعلية المقابلة لهذه العناوين المنطقية باسم مساحة العنوان الفعلية‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪11‬‬

‫يتم إجراء تعيين وقت التشغيل من العنوان الظاهري إلى العنوان الفعلي بواسطة وحدة إدارة الذاكرة (‪ )MMU‬وهي عبارة عن‬
‫جهاز‪ .‬تستخدم ‪ MMU‬اآللية التالية لتحويل العناوين االفتراضية إلى عناوين فعلية‪.‬‬

‫يتم إضافة القيمة الموجودة في السجل األساسي إلى كل عنوان تم إنشاؤه بواسطة عملية مستخدم يتم التعامل معها على أنها‬ ‫•‬
‫تعويض في وقت إرسالها إلى الذاكرة‪ .‬على سبيل المثال ‪ ،‬إذا كانت قيمة السجل األساسي هي ‪ ، 10000‬فسيتم إعادة‬
‫تخصيص محاولة المستخدم الستخدام موقع العنوان ‪ 100‬ديناميكيًا إلى الموقع ‪.10100‬‬
‫يتعامل برنامج المستخدم مع العناوين االفتراضية‪ .‬ال يرى أبدًا العناوين المادية الحقيقية‪ .‬المبادلة هي آلية يمكن من خاللها‬ ‫•‬
‫تبديل العملية مؤقتًا من الذاكرة الرئيسية إلى مخزن النسخ ‪ ،‬ثم إعادتها إلى الذاكرة لمواصلة التنفيذ‪ .‬عادة ً ما يكون مخزن‬
‫النسخ عبارة عن محرك أقراص ثابتة أو أي وحدة تخزين ثانوية أخرى تتميز بسرعة الوصول إليها وكبيرة بما يكفي‬
‫قادرا على توفير وصول مباشر إلى صور‬
‫ً‬ ‫الستيعاب نسخ من جميع صور الذاكرة لجميع المستخدمين‪ .‬يجب أن يكون‬
‫الذاكرة هذه‪.‬‬

‫الجزء الرئيسي الذي يستغرق وقتًا طويالً في المبادلة هو وقت النقل‪ .‬إجمالي وقت النقل يتناسب طرديا مع مقدار الذاكرة التي تم‬
‫تبديلها‪ .‬لنفترض أن حجم عملية المستخدم هو ‪ 100‬كيلو بايت وأن مخزن النسخ هو قرص ثابت قياسي بمعدل نقل ‪ 1‬ميغا بايت‬
‫في الثانية‪ .‬سيستغرق النقل الفعلي لعملية ‪ 100‬كيلو بايت إلى أو من الذاكرة ‪ 100‬كيلو بايت ‪ 1000 /‬كيلو بايت في الثانية =‬
‫‪ 10/1‬ثانية = ‪ 100‬ميلي ثانية‬

‫خوارزميات التقسيم ‪Partitioning Algorithms‬‬


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

‫‪First Fit Algorithm .1‬‬

‫تقوم خوارزمية ‪ First Fit‬بمسح القائمة المرتبطة وعندما تجد أول مساحة كبيرة بما يكفي لتخزين عملية ما ‪ ،‬فإنها تتوقف عن‬
‫المسح وتحميل العملية في تلك المساحة‪ .‬ينتج عن هذا اإلجراء قسمين‪ .‬خارجها ‪ ،‬سيكون أحد األقسام فراغ بينما يقوم القسم اآلخر‬
‫بتخزين العملية‪ .‬تحتفظ خوارزمية ‪ First Fit‬بالقائمة المرتبطة وفقًا للترتيب المتزايد لمؤشر البداية‪ .‬هذا هو أبسط تطبيق بين‬
‫جميع الخوارزميات وينتج فراغات أكبر مقارنة بالخوارزميات األخرى‪.‬‬

‫‪Next Fit Algorithm . 2‬‬

‫تشبه خوارزمية ‪ Next Fit‬خوارزمية ‪ First Fit‬باستثناء حقيقة أن ‪ Next fit‬تفحص القائمة المرتبطة من العقدة حيث خصصت‬
‫فراغا مسبقًا‪ .‬ال يقوم الخيار التالي بمسح القائمة بأكملها ‪ ،‬بل يبدأ في مسح القائمة من العقدة التالية‪ .‬الفكرة وراء المالءمة التالية‬
‫هي حقيقة أن القائمة قد تم مسحها مرة واحدة وبالتالي فإن احتمال العثور على الفراغ أكبر في الجزء المتبقي من القائمة‪ .‬وقد‬
‫أظهرت التجارب على الخوارزمية أن ‪ Next fit‬ليس أفضل من ‪ First fit‬لذلك ال يتم استخدامه هذه األيام في معظم الحاالت‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬
‫‪Memory Managament in Operating System‬‬ ‫‪12‬‬

‫‪Best Fit Algorithm . 3‬‬

‫تحاول خوارزمية ‪ Best Fit‬اكتشاف أصغر فراغ ممكن في القائمة يمكنه استيعاب متطلبات الحجم للعملية‪.‬‬

‫استخدام ‪ Best Fit‬له بعض العيوب‪.‬‬

‫‪ .1‬انه أبطأ ألنه يمسح القائمة بأكملها في كل مرة ويحاول اكتشاف أصغر فراغ يمكنه تلبية متطلبات العملية‪.‬‬
‫نظرا لحقيقة أن الفرق بين الحجم الكلي وحجم العملية صغير جدًا ‪ ،‬فإن الفراغات الناتجة ستكون صغيرة بحيث ال يمكن‬
‫ً‬ ‫‪.2‬‬
‫استخدامها لتحميل أي عملية وبالتالي تظل غير مجدية‪ .‬على الرغم من حقيقة أن هذه الخوارزمية هي األنسب ‪ ،‬إال أنها‬
‫ليست أفضل خوارزمية بين الجميع‪.‬‬

‫‪Worst Fit Algorithm .4‬‬

‫تقوم الخوارزمية األسوأ بمسح القائمة بأكملها في كل مرة وتحاول اكتشاف أكبر فراغ في القائمة والتي يمكن أن تفي بمتطلبات‬
‫العملية‪ .‬على الرغم من حقيقة أن هذه الخوارزمية تنتج فراغات أكبر لتحميل العمليات األخرى ‪ ،‬إال أن هذا ليس النهج األفضل‬
‫وتكرارا‪.‬‬
‫ً‬ ‫مرارا‬
‫ً‬ ‫نظرا لكونه أبطأ ألنه يبحث في القائمة بأكملها في كل مرة‬
‫ً‬

‫‪Quick Fit Algorithm .5‬‬

‫تقترح خوارزمية التوافق السريع الحفاظ على القوائم المختلفة لألحجام المستخدمة بشكل متكرر‪ .‬على الرغم من أنه ليس قابالً‬
‫لإليحاء عمليًا ألن اإلجراء يستغرق وقتًا طويالً إلنشاء قوائم مختلفة ثم يتم إنفاق الفراغات لتحميل عملية‪.‬‬

‫أول خوارزمية مناسبة هي أفضل خوارزمية بين الجميع ألن‬

‫‪ .1‬يستغرق وقتًا أقل مقارنة بالخوارزميات األخرى‪.‬‬


‫‪ .2‬إنها تنتج ثقوبًا أكبر يمكن استخدامها لتحميل عمليات أخرى الحقًا‪.‬‬
‫‪ .3‬أسهل في التنفيذ‪.‬‬

‫‪Dr. Ahmed Khudhair Abbas‬‬


‫‪Computer Department‬‬

You might also like