You are on page 1of 24

‫السعر‬

‫‪2880‬‬ ‫كلية الهندسة المعلوماتية‬


‫عملي‬
‫نظري‬
‫السنة الرابعة‬
‫‪9‬‬

‫‪Introduction to OS‬‬
‫‪1‬‬
‫د‪.‬المثنى خضر‬
‫‪03/10/2023‬‬ ‫‪24‬‬

‫نظم تشغيل (‪)1‬‬

‫تعريف نظام التشغيل‬


‫التعريف األبسط لنظام التشغيل هو أنه برنامج يعمل كوسيط بين المستخدم ( أنا و أنت 😊) و أجهزة الحاسوب الماديّة‬
‫(‪ ، )Hardware‬و يؤمن بيئة مناسبة لتنفيذ البرامج ‪.‬‬
‫أهداف نظام التشغيل ‪:‬‬
‫تنفيذ برامج و تطبيقات المستخدم و جعل حل مشاكل المستخدم أسهل ‪.‬‬ ‫▪‬
‫توفير بيئة مناسبة و مالئمة لالستخدام ‪. convenient‬‬ ‫▪‬
‫االستفادة القصوى من الموارد و ذلك بجعلها تعمل بشكل فعّال ‪. efficient‬‬ ‫▪‬
‫الخاصة بنظام التشغيل ‪:‬‬
‫ّ‬ ‫بعض التعاريف‬

‫‪: Kernel‬‬

‫هو جزء من نظام التشغيل الذي ال يعمل بدونه‪ ،‬و الذي يجب أن يبقى قيد التشغيل طالما الحاسب يعمل ‪ ،‬و عند تعرّضه‬
‫إلى أي ضرر يؤدي إلى توقف نظام التشغيل و عدم قدرة الحاسب على العمل‪.‬‬
‫أي باختصار هو عبارة عن لب نظام التشغيل ‪.‬‬
‫)‪. Is the main component of Linux Operating System (OS‬‬
‫لماذا يعتبر ال ‪ Kernel‬نواة ؟؟‬
‫سُمّي بذلك ألنه مثل البذرة الموجودة داخل الغالف الصّلب تتحكم بجميع الوظائف األساسيّة لألجهزة ‪.‬‬
‫مهام ال ‪: Kernel‬‬
‫‪Memory management .1‬‬
‫‪Process management .2‬‬
‫‪Device drivers .3‬‬
‫‪System Calls and Security .4‬‬

‫‪1‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫‪: System Programs‬‬

‫مجموعة من البرامج التي ‪:‬‬


‫تؤمن بيئة مناسبة لتنفيذ و تشغيل البرامج ‪.‬‬ ‫▪‬
‫و تقديم خدمات للمستخدمين ‪. USER‬‬ ‫▪‬
‫ليست جزء من ال ‪ Kernel‬إنما تأتي مع نظام التشغيل أو يمكن تثبيته الحقاً مثل ‪:‬‬ ‫▪‬
‫‪Assembler , Compiler , Command Line‬‬

‫‪: Application Programs‬‬

‫هي جميع البرامج التي ال ترتبط مع نظام التشغيل مباشرةً ‪ :‬مثل‬


‫( ‪) Adobe , VLC , Notepad , Call of duty‬‬

‫‪ ( Middleware‬برمجيات وسيطة ) ‪:‬‬

‫هي مجموعة ال ‪ Software frameworks‬التي تزوّد مطوّرين البرامج ( مثل انت يا ‪ )😊 IT‬بخدمات إضافيّة مثل ‪:‬‬
‫(‪ ) Databases – Multimedia – Graphics‬و هي مضّمنة ضمن أنظمة التشغيل ذات االستخدام العام و أيضاً توجد‬
‫في الحوسبة المحمولة ‪. Mobile Computing‬‬

‫مهام نظام التشغيل حسب الحاجة‬


‫تنقسم الحواسيب إلى أنواع مختلفة و منها ‪:‬‬
‫‪: Mainframe Computers‬‬
‫عبارة عن جهاز حاسوب مركزي واحد تتصل به عدّة طرفيات تسمى (‪ )dump terminal‬هذه الطرفيات عبارة عن شاشة‬
‫و لوحة مفاتيح ‪ ،‬ليس بها ذاكرة أو معالج و إنما تستخدم معالج و ذاكرة الحاسب المركزي ‪.‬‬
‫‪: Minicomputers‬‬
‫هي فئة من الحواسيب متعددة المستخدمين و تقع في المدى األوسط من الطيف الحاسوبي بين األنظمة متعددة‬
‫المستخدمين الكبرى و األنظمة أحاديّة المستخدم الصغرى (الحاسب الشخصي)‪.‬‬
‫‪: Servers‬‬
‫هو نظام حاسوبي متصل بشبكة أي أنه عقدة فيها و متخصص في أداء وظيفة معيّنة و تلبيّة الطلبات التي ترده من‬
‫حواسيب أخرى على الشبكة و عادة ما يكون عتاده المادي ذات إمكانيات متفوقة و تصميمات خاصة لتحمل العمل لفترات‬
‫طويلة بال انقطاع و لمواجهة األعطال بكفاءة أكبر ‪.‬‬

‫‪2‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫‪: Embedded System‬‬


‫هي أنظمة لمعالجة المعلومات و تكون متضمنة في منتج أكبر و هي عادة ما تكون غير مرئيّة مباشرة للمستخدم و تكون‬
‫واجهاتها قليلة أو معدومة أحياناً مثل األنظمة الموجودة في السيارات الحديثة ‪.‬‬
‫المستخدمون ‪:‬‬
‫يريدون أن يكون نظام التشغيل سهل االستخدام و أن يعطي أداء عالي من دون االهتمام بما يقوم من استهالك لموارد‬
‫الحاسب ‪.‬‬
‫الحواسيب المشتركة ‪:‬‬
‫مثل ال ‪ mainframe‬أو ال ‪ minicomputer‬على نظام التشغيل إدارة الجهاز المركزي لخدمة الكم الكبير من‬
‫المستخدمين بحيث يكون زمن االستجابة لكل مستخدم سريع (أقل من ثانية) ـ و حتى يشعر كل مستخدم أن الجهاز‬
‫المركزي يخدمه لوحده‪.‬‬
‫األنظمة المخصصة ‪:‬‬
‫مثل ال ‪ workstations‬لديها موارد مخصصة ولكنها غالباً تتشارك في الموارد من ال ‪ ، servers‬وعلى أنظمة التشغيل‬
‫تأمين أدوات إلدارة الخدمات التي يقدمها ال ‪. server‬‬
‫األجهزة المحمولة ‪:‬‬
‫‪ Mobile devices‬مثل الهواتف الذكيّة و ال ‪ tablets‬هي أجهزة تمتلك موارد ضعيفة و يتم تطوير هذه األجهزة من‬
‫أجل تحسين االستخدامية و عمر البطاريّة ‪ ،‬تكون أنظمة التشغيل في هذه الحالة تستجيب لل ‪ touch screens‬و التعرّف‬
‫الصوتي ‪.voice recognition‬‬
‫مضمنة ‪:‬‬
‫ّ‬ ‫حواسيب‬
‫بعض الحواسيب تمتلك واجهات قليلة أو ال تمتلك واجهات أساساً ‪ ،‬مثل األنظمة الموجودة في ‪embedded computer‬‬
‫(الحواسيب المضّمنة) ‪ ،‬و هذه األنظمة تعمل بشكل أساسي دون أي تدخل من المستخدم ‪.‬‬

‫مكونات النظام الحاسوبي‬

‫مكونات النظام الحاسوبي‬

‫العتاديات‬ ‫البرامج‬ ‫المستخدمين‬


‫نظام التشغيل‬
‫‪Hardware‬‬ ‫التطبيقيّة‬ ‫‪Users‬‬

‫‪3‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫البرامج التطبيقيّة ‪:‬‬


‫معالجة النصوص – مترجم – نظام قاعدة بيانات – تمثّل األساليب التي تستخدم بها موارد الجهاز لحل مشاكل‬
‫المستخدمين ‪.‬‬
‫أي هي عبارة عن األساليب التي تستخدم بها موارد الجهاز لحل مشاكل المستخدمين‬
‫العتاديات (‪: )Hardware‬‬
‫وحدة المعالجة – الذاكرة – أجهزة اإلدخال و اإلخراج ‪( I/O‬موارد الحاسوب) ‪.‬‬
‫يتولى نظام التشغيل مهمّة مراقبة و تنسيق استخدام العتاديات بين مختلف البرامج التطبيقيّة لمختلف المستخدمين ‪.‬‬

‫المتحكم ‪Controller‬‬
‫• لكل جهاز أو لكل طرفيّة يوجد متحكّم ‪ controller‬أو ما يسمى أيضاً بـ ‪ Adapter‬يتحكم به ‪ ،‬قد يكون مدمجاً‬
‫بالجهاز أو أحياناً قد يكون خارجياً (مثل كرت الشاشة هو ‪ controller‬يتحكم بالشاشة) و لكنه ليس جزء من نظام‬
‫التشغيل ‪.‬‬
‫• و يتعامل نظام التشغيل مع ال ‪ controller‬عن طريق ‪ software‬يدعى ‪. Device driver‬‬
‫• كل متحكم يحتوي على مخزن محلّي مؤقت (‪. )Buffer‬‬
‫• يوجد أكثر من ‪ CPUs , device controllers‬متصلة من خالل خطوط النقل المشتركة (‪ )Bus‬توفر الوصول‬
‫إلى الذاكرة المشتركة ‪.‬‬
‫• التنفيذ المتزامن لوحدات المعالجة المركزية و األجهزة يجعل منهم يتنافسون على دورات الذاكرة حيث أن الذاكرة‬
‫يمكنها أن تتعامل مع جهاز ‪ CPU/‬واحد في الدورة الواحدة ‪.‬‬
‫• يقوم المتحكّم بإعالم المعالج أنه قد أنهى عمله عن طريق التسبب في مقاطعة ‪. Interrupt‬‬

‫‪4‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫المقاطعات ‪Interrupt‬‬
‫• المقاطعة ‪ :‬هي إشارة أو طلب ترسل من المكونات الماديّة أو المكونات البرمجيّة إلى المعالج من أجل تنفيذ‬
‫خدمة مستعجلة (‪. )interrupt service routine‬‬
‫• هنالك مجموعة من الخدمات تختلف باختالف نظام التشغيل ‪ ،‬و هي عبارة عن دوال خاصّة بالمقاطعات ‪ ،‬فكل‬
‫مقاطعة تقابلها مجموعة من الدوال ‪.‬‬
‫• عندما يتم إرسال المقاطعة إلى المعالج يوقف ما كان يعمل فيه ‪ ،‬ثمّ ينفذ دالة معينة من دوال المقاطعة (تحدد‬
‫الدالة برقم في مسجل معين) ‪ ،‬ثم يرجع المعالج مرة أخرى ليواصل ما أوقفه قبل استالمه للمقاطعة ‪.‬‬

‫هنالك أنواع مختلفة من المقاطعات ‪:‬‬


‫‪ : Hardware‬تستخدمها ال ‪ Hardware devices‬للتخاطب مع نظام التشغيل‬ ‫▪ ‪interrupt‬‬
‫عندما تريد طلب عمل ما منه و هي عبارة عن بنبضة كهربائيّة ‪.‬‬

‫‪ : Software‬و هي عبارة عن ‪ Trap‬أو ‪ Exception‬و تحدث لثالثة أسباب ‪:‬‬ ‫▪ ‪interrupt‬‬


‫‪ )1‬عند حصول خطأ برمجي ما (‪)division by zero‬‬
‫‪ )2‬طلب معيّن من برنامج ليقوم بتنفيذه نظام التشغيل (‪)System Call‬‬
‫‪ )3‬مشاكل برمجيّة أخرى (‪ )Infinity loop‬أو عمليات تقوم بتعديل بعضها البعض ‪.‬‬

‫‪5‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫الخط الزمني لمقاطعات أجهزة الدخل و الخرج‬


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

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

‫• عندما يطلب أحد البرامج عمليّة دخل أو خرج ‪ ،‬فنظام التشغيل يقوم بعمليّة مقاطعة و نكون أمام حالتين ‪:‬‬

‫إما االنتظار ‪:‬‬


‫يعود التحكم إلى برنامج المستخدم فقط بعد إتمام عمليات ال ‪. I/O‬‬ ‫▪‬
‫تعليمات االنتظار تجعل وحدة المعالجة المركزيّة بحالة خمول حتى المقاطعة التاليّة ‪.‬‬ ‫▪‬
‫حلقة االنتظار تؤدي إلى التنازع بين الموارد للوصول إلى الذاكرة ‪.‬‬ ‫▪‬
‫من الممكن أن يتواجد طلب ‪ I/O‬واحد على األكثر في الوقت الواحد ‪.‬‬ ‫▪‬
‫أو االستمرار ‪:‬‬

‫يعود التحكّم إلى برنامج المستخدم دون انتظار انتهاء عمليات ال ‪. I/O‬‬ ‫▪‬
‫يفهرس نظام التشغيل جداول أجهزة ‪ I/O‬لتحديد حالة الجهاز و تعديل سطور الجدول لتضمين المقاطعة ‪.‬‬ ‫▪‬
‫‪ Device-status table‬جدول حالة الجهاز يحتوي على دخل لكل جهاز ‪ I/O‬يشير إلى نوعه و عنوانه و حالته ‪.‬‬ ‫▪‬

‫‪6‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫‪Direct Memory Access Structure‬‬


‫و هي عملية نقل مباشر بين أجهزة الدخل و الخرج و الذاكرة الرئيس ّية دون تدخل المعالج ‪ ،‬و تُدار هذه العمل ّية عن‬
‫طريق ال ‪ device controller‬الخاص بالذاكرة الرئيسية ‪.‬‬

‫• تستخدم ألجهزة ‪ I/O‬عالية السرعة القادرة على إرسال المعلومات بسرعة قريبة من سرعة ال ‪. RAM‬‬
‫‪Device controller‬ينقل ال ‪ block of data‬من المخازن المؤقتة ‪ buffer‬بشكل مباشر إلى الذاكرة الرئيسية‬ ‫•‬
‫دون تدخل ال ‪. CPU‬‬
‫• يتم إنشاء مقاطعة واحدة فقط لكل ‪ ، block‬بدالً من المقاطعة واحدة لكل بايت ‪.‬‬

‫هرميّة الذاكرة‬
‫تتكون هرم ّية الذاكرة من التالي ‪:‬‬
‫المسجالت ‪. registers‬‬ ‫▪‬
‫الذاكرة المخبأة (الكاش) ‪. cache‬‬ ‫▪‬
‫الذاكرة الرئيسية (الرام) ‪. main memory‬‬ ‫▪‬
‫األقراص الممغنطة ‪. magnetic disk‬‬ ‫▪‬
‫األقراص الضوئية ‪. optical disks‬‬ ‫▪‬
‫األشرطة الممغنطة ‪. magnetic tape‬‬ ‫▪‬

‫هنالك عوامل تؤثر في هرميّة الذاكرة هي ‪:‬‬


‫( التطاير – السرعة – السعة – السعر ) ‪.‬‬
‫• أعلى الهرم ‪ :‬يخزن البيانات تخزينا مؤقتاً يزول عند إغالق الحاسب (متطايرة) ‪. volatile‬‬

‫‪7‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫• أسفل الهرم ‪ :‬يخزن البيانات تخزيناً دائماً ال يزول (غير متطايرة) ‪. non-volatile‬‬

‫واجهة نداء النظام ‪System Call Interface‬‬


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

‫‪ ‬كيف ّية عمل نداءات النظام ‪:‬‬


‫يتم تنفيذ نداء النظام في وضع النواة ‪ Kernel mode‬و لكل استدعاء نظام رقم مرتبط به ‪:‬‬
‫‪ .1‬يرسل هذا الرقم إلى النواة ليعرف نظام التشغيل ما هو استدعاء النظام المطلوب ‪.‬‬
‫‪ .2‬عندما يرسل المستخدم هذا الرقم فهو في الحقيقة يستدعى روتين مكتبة (‪ ، )Library routine‬فيقوم‬
‫الروتين بإرسال مقاطعة (‪ )issues a trap‬لنظام التشغيل ‪ ،‬ثم يمرر رقم االستدعاء و معطياته إلى النواة‬
‫باستخدام مسجالت معينة ‪.‬‬
‫‪ .3‬تقوم النواة بتنفيذ الروتين و ترسل النتائج للمستخدم عبر مسجل معيّن ‪.‬‬
‫‪ .4‬إذا كانت النتائج كبيرة الحجم ال يستطيع المسجل تخزينها ‪ ،‬سترسل بطريقة أخرى مثل استدعاء الروتين‬
‫‪ copy-to-user‬لتخزينها في موقع ما بالذاكرة ‪.‬‬

‫‪Single & Multi Processing‬‬


‫‪: Single Processor‬‬
‫و هو معالج يستخدم عندما يكون للحاسب أو الجهاز المراد برمجته هدف عام وحيد يعمل عليه و يهتم به ‪.‬‬
‫‪: Multi Processor‬‬
‫تعرف األنظمة الخاصة بها األنظمة التفرعيّة (‪ )Parallel System‬أو (‪ )tightly-coupled system‬و المعنى بالنهاية‬
‫واحد ‪ ،‬حيث يكون لدينا أكثر من معالج ضمن نطاق اتصال متقارب و يتشاركون موارد الحاسب (ملحقات – ذاكرة – نواقل‬
‫‪)..... ، Bus‬‬
‫و تم استخدام هذا النوع من المعالجات في البداية مع المخدّمات ‪ services‬ثمّ أخذ ينتشر شيئاً فشيئاً مع باقي أجهزة‬
‫الحاسب كالحواسب المكتبيّة أو حتى الحمولة و اليوم أصبحنا نرى أيضاً المعالجات المتعددة وصلت إلى الهواتف الذكيّة ‪.‬‬
‫من ميزات المعالجات المتعددة ‪:‬‬
‫‪ .1‬زيادة اإلنتاجيّة ‪ ،‬أي عمل أكثر خالل زمن أقل ‪.‬‬
‫‪ .2‬اقتصادي من حيث الكلفة و التوفير ‪.‬‬
‫‪ .3‬وثوقيّة أكثر ‪ :‬أي عندما يعمل نظام معيّن على أكثر من معالج فإن فشل معالج ما بشكل فجائي لن يؤدي إلى‬
‫توقف عمل النظام ككل بل على األكثر من الممكن أن يؤدي ذلك إلى بطئ عام ‪.‬‬

‫‪8‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫المعالجات المتعددة ‪Multi Processors‬‬


‫يوجد نوعان للمعالجات المتعددة ‪:‬‬

‫المعالجات المتماثلة )‪: Symmetric multiprocessing (SMP‬‬ ‫▪‬


‫هنا كل المعالجات متساويّة و ينفذ كل معالج مهمة منفصلة ‪ ،‬و تتصل هذه المعالجات مع بعضها عند الحاجة ‪.‬‬
‫يحجز كل معالج مسجالته الخاصة (‪ )Registers‬باإلضافة إلى ذاكرة مخبئية خاصة به ‪ ،‬بينما من ناحية مورد الذاكرة‬
‫الفيزيائيّة (‪ )Physical Memory‬تقوم المعالجات بالتشارك به‪.‬‬

‫المعالجات غير المتمائلة ‪: Asymmetric multiprocessor‬‬ ‫▪‬


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

‫" ‪Difficulties in your life do not come to destroy you, but to help‬‬
‫‪you realize your hidden potential and power, let Difficulties‬‬
‫‪".know that you are difficult‬‬
‫—‪Abdul Kalam‬‬

‫‪9‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫التصميم ثنائي النوى ‪Dual-core Design‬‬


‫• إن النوع السابق من المعالجات المتعددة كان يستخدم رقاقة ‪ chip‬لكل معالج بينما في النمط الجديد –‬
‫المعالجات متعددة األنويّة – ‪ multicore‬فأصبحنا نستخدم رقاقة واحدة ألكثر من معالج بنفس الوقت‬
‫(من الممكن ‪ ) multichip & multicore‬مما وفّر الطاقة المستهلكة و زاد الفعاليّة و بالتالي حصلنا على سرعة‬
‫أكبر ‪.‬‬
‫• السرعة في هذا النوع هي بسبب أن التواصل بين المعالجات الموجودة على رقاقة واحدة هو أسرع من التواصل‬
‫بين المعالجات الموجودة على أكثر من رقاقة ‪.‬‬

‫‪Multiprogramming vs Multitasking‬‬
‫‪: Multiprogramming‬‬
‫هي ضروريّة لزيادة الفعاليّة ‪ ،‬ألنه ال يمكن للمعالج و ألجهزة الدخل و الخرج أن يكونان‬ ‫▪‬
‫مشغولين في آن واحد طوال الوقت ‪ ،‬فال بد من أوقات أن يكونا فيها ينتظران أعمال أو في‬
‫حالة فراغ فعندها يجب ملئ هذا الفراغ بأعمال أخرى ‪.‬‬
‫و تقوم هذه التقنيّة بوضع المهام في الذاكرة و من ثمّ تقوم بسحبها واحدة تلو األخرى‬ ‫▪‬
‫بطريقة ال ‪ job scheduling‬لينفذها المعالج ‪ ،‬و في حالة المعالج كان في حالة انتظار‬
‫فإنه يقوم بتنفيذ عمل آخر و ذلك بأمر من نظام التشغيل ‪ ،‬أي أن المعالج يقوم باستغالل‬
‫الوقت المهدور في انتظار عمليات أخرى ‪.‬‬
‫من األمثلة لهذا النوع نظام التشغيل ويندوز ‪. XP‬‬ ‫▪‬
‫على عكس المعالج في تقنيّة ‪ non-multiprogrammed system‬فإن المعالج سيبقى‬ ‫▪‬
‫في حالة خمول و ذلك عند انتظاره لتنفيذ مهمة ما ‪ ،‬من األمثلة لهذا النوع نظام التشغيل‬
‫(‪. )DOS‬‬

‫‪10‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫)‪: Timesharing (Multi-tasking‬‬

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

‫أنماط عمل نظام التشغيل‬

‫• تسمح عملية ‪ Dual-mode‬بحماية نظام التشغيل و مكوناته األخرى ‪.‬‬

‫‪11‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫نمط المستخدم (تتعامل مع البرامج و واجهات المستخدم) – ‪user mode‬‬ ‫▪‬


‫نمط النواة (تتعامل مع العتاديات) ‪Privileges Mode – System Mode – supervisor Mode‬‬ ‫▪‬
‫نمط المستخدم ‪: User mode‬‬
‫يهتم بالواجهة الفعليّة بين المستخدم و النظام ‪ ،‬و يتحكّم بتشغيل التطبيقات و النفاذ إلى الملفات ‪.‬‬

‫نمط النواة ‪:‬‬


‫يهتم نمط النواة بكل ما يجري في الخلفيّة (‪ ، )background‬و يتحكم بالنفاذ إلى الموارد ‪ ،‬و معالجة تعليمات‬
‫البرامج و التحكّم بوظائف العتاديّات ‪.‬‬
‫• يُحدّد النمط من خالل بت يُسمى ‪ ( mode bit‬نمط النواة ‪ ، 0‬و نمط المستخدم ‪.)1‬‬

‫‪: Need Of Dual Mode Operation‬‬


‫السبب يجب إخفاء أنواع مع ّينة من‬
‫ال تتطلب أنواع مع ّينة من المهام أي نوع من ‪ hardware support‬و لهذا ّ‬
‫العمليات على المستخدم ‪ ،‬يمكن التعامل مع هذه المهام بشكل منفصل باستخدام ال ‪Dual Mode Of The‬‬
‫‪. Operating System‬‬
‫تؤدي ال ‪ Kernel level Programs‬جميع وظائف المستوى األدنى ألنظمة التشغيل مثل إدارة الذاكرة و إدارة‬
‫العمليات و ما إلى ذلك و لهذا الغرض يحتاج نظام التشغيل إلى العمل في ‪. Dual Mode‬‬
‫يعتبر ال ‪ Dual Mode‬ضروري لتحديد وصول المستخدمين فقط إلى المهام التي يستخدمونها في نظام التشغيل ‪.‬‬

‫المؤقت ‪Timer‬‬
‫• من مهما نظام التشغيل التحكّم في المعالج و منع برامج المستخدمين من االستثمار بهذا المورد الهام و العمل‬
‫لمدة طويلة داخل المعالج ‪.‬‬
‫• إذا كان هنالك برنامج ينفذ في تكرار غير منتهي ‪ infinite loop‬أو استدعى دالة خدمة و لم يُعيد السيطرة لنظام‬
‫التشغيل ‪ ،‬فهذا يسبب إهدار لزمن العالج ‪.‬‬
‫• هنا ال بدّ لنظام التشغيل من آلية تمكنه من توقيف مقل هذه البرامج ‪ ،‬و كان المؤقت ‪ timer‬هو الحل ‪.‬‬
‫‪ ‬كيف يعمل المؤقت ‪:‬‬
‫▪ قبل تشغيل برنامج المستخدم يتأكد نظام التشغيل من أن المؤقت مرتبط مع المقاطعة ‪.‬‬
‫▪ يتم إعداد المؤقت ليصدر المقاطعة بعد فترة محددة (ال تزيد عن ثانية) ‪.‬‬
‫▪ يكون هنالك عداد و ساعة لحساب هذه الفترة ‪:‬‬
‫‪ ) 1‬يقوم نظام التشغيل بتجهيز العداد ‪.‬‬
‫‪ ) 2‬كل دقة ساعة تنقص العداد ‪.‬‬
‫‪ )3‬عندما يصل العداد صفر تصدر المقاطعة و ينتقل التحكم تلقائياً إلى نظام التشغيل ‪.‬‬

‫‪12‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

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

‫‪( Fatal error‬الخطأ الفادح) ‪:‬‬


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

‫مهام نظام التشغيل‬

‫‪ ‬يقوم نظام التشغيل بالمهام التالية ‪:‬‬


‫‪( Process management .1‬إدارة العمليات) ‪ :‬عن طريق مدير العمليات ‪.‬‬
‫‪( Memory management .2‬إدارة الذاكرة الرئيسية) ‪ :‬عن طريق مدير الذاكرة ‪.‬‬
‫‪( File-system management .3‬إدارة الملفات) ‪ :‬عن طريق مدير الملفات ‪.‬‬
‫‪( Device management .4‬إدارة األجهزة) ‪ :‬عن طريق مدير األجهزة الذي يقسم إلى ‪:‬‬
‫‪ ( Mass-Storage Management‬إدارة التخزين)‬
‫‪( I/O Management‬إدارة أجهزة الدخل و الخرج)‬
‫‪.‬‬ ‫‪( Protection and Security .5‬األمن و الحماية)‬

‫سنقوم بدراسة كل منها بالتفصيل ‪.‬‬

‫‪( Process management‬إدارة العمليات) ‪:‬‬

‫• ما هي ال ‪ Process‬؟؟‬
‫هي عبارة عن برنامج ‪ source code‬في حيّز التنفيذ ‪.‬‬
‫• و من هنا جاء التصنيف التالي لكل من ال ‪ Process‬و ال ‪: Program‬‬
‫حيث أعتبر ال ‪ Program‬أنه ‪ Passive entity‬و ذلك ألنه عبارة عن تعليمات موجودة في الذاكرة الثانويّة‬ ‫▪‬
‫"‪ "hard disk‬حيث تكون نائمة أي لم توضع ضمن حيز التنفيذ ‪.‬‬
‫في حين اعتبر ال ‪ Process‬بأنها ‪ Active entity‬و ذلك ألنها عبارة عن مجموعة من البرامج الموجودة‬ ‫▪‬
‫في الذاكرة الرئيسية "‪ "RAM‬حيث تكون فعّالة أي يتم تنفيذها من قبل المعالج ‪.‬‬

‫‪13‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

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

‫إنشاء و إنهاء ال ‪ Process‬المفعّلة من قبل ال ‪ user‬أو الخاصة بال ‪ system‬بحد ذاته ‪.‬‬ ‫▪‬
‫اإليقاف المؤقت لتنفيذ ال ‪ Process‬و استئناف التنفيذ من حيث تم إيقافه ‪.‬‬ ‫▪‬
‫إيجاد اآللية المناسبة من أجل تزامن العمليات ‪. Process Synchronization‬‬ ‫▪‬
‫إيجاد اآللية المناسبة من أجل التواصل بين العمليات ‪. Process Communication‬‬ ‫▪‬
‫إيجاد اآللية المناسبة من أجل ‪. deadlock handling‬‬ ‫▪‬

‫‪( Memory Management‬إدارة الذاكرة الرئيسية) ‪:‬‬

‫• بما أن ال ‪ Process‬هي مجموعة من ال ‪ ، Instructions‬فال بد أن تكون هذه التعليمات أو جزء منها ضمن‬
‫الذاكرة ‪ RAM‬عندما يبدأ التنفيذ ‪.‬‬

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

‫• من األنشطة التي تعنى فيهها ال ‪ Memory Management‬أيضاً ‪:‬‬

‫تتبع جميع أجزاء الذاكرة التي تعمل في الوقت الراهن و معرفة هوية العمليات العاملة بها ‪.‬‬ ‫▪‬
‫تحديد أي ال ‪ Process‬و أي ال ‪ data‬يجب أن تدخل إلى ال ‪ ، RAM‬و أيها يجب أن نحرر الذاكرة منها ‪.‬‬ ‫▪‬
‫تخصيص و تحرير مساحات من الذاكرة حسب الحاجة ‪.‬‬ ‫▪‬

‫‪( File-system Management‬إدارة الملفات) ‪:‬‬

‫• نظام التشغيل يؤمن طريقة موحدة و منطقيّة لتخزين المعلومات ‪ ،‬و يتم تحقيق هذا األمر من خالل ‪:‬‬
‫عملية تجريد الخصائص الفيزيائية للمعلومات ليتم تخزينها بوحدات منطقيّة على شكل ملفات ‪. files‬‬ ‫▪‬
‫كل بيئة تخزينية يتم التحكم بها من قبل جهاز معيّن (‪.) disk drive , tape drive ,, etc‬‬ ‫▪‬
‫تنويع الخصائص التي تتمتع بها كل بيئة تخزينية و المتمثلة ب ‪access speed , capacity , data‬‬ ‫▪‬
‫‪. transfer rate‬‬

‫‪14‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫• و بما أن المعلومات في وحدات التخزين تعرض بشكل ملفات ‪ ،‬تطلب هذا األمر وجود ‪File-system‬‬
‫‪( manager‬مدير الملفات) ‪ ،‬و تتمثل األنشطة التي يقوم بها بالتالي ‪:‬‬

‫‪ .1‬إنشاء و حذف الملفات و الـ ‪. directories‬‬


‫‪ .2‬النقل و التعديل بالملفات و الـ ‪. directories‬‬
‫‪ .3‬تنظيم الملفات ضمن الـ ‪. directories‬‬
‫‪ .4‬التحكم بصالحيات الوصول في معظم األنظمة لتحديد من يمنح سماحية الوصول و إلى ماذا يمنح ‪.‬‬
‫‪ .5‬عملية وضع الملفات على وحدات التخزين الثانوية ‪. secondary storage‬‬
‫‪ .6‬عملية الـ ‪ Backup‬للملفات على وحدات التخزين المستقرة الغير متطايرة "‪. "non-volatile‬‬

‫‪( Mass-Storage Management‬إدارة التخزين) ‪:‬‬

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

‫األنشطة التي يديرها نظام التشغيل في هذا الخصوص ‪:‬‬


‫إدارة عمليات تحرير المساحة ‪. free space management‬‬ ‫▪‬
‫عمليات ال ‪ mounting‬و ال ‪. unmounting‬‬ ‫▪‬
‫عمليات الحجز من أجل التخزين ‪. storage allocation‬‬ ‫▪‬
‫و عمليات الجدولة لألقراص ‪. disk scheduling‬‬ ‫▪‬
‫عملية تجزئة و حماية القرص ‪. partitioning & protecting‬‬ ‫▪‬

‫مالحظة ‪:‬‬
‫بعض أجهزة التخزين ليس من الضروري أن تعمل بسرعة ‪ ،‬مثل أجهزة التخزين ما بعد الثانوية‬
‫‪ tertiary storage‬و التي تشمل ‪ optical storage , magnetic storage‬و لكنها ما تزال تحتاج‬
‫اإلدارة من قبل نظام التشغيل ‪.‬‬

‫‪15‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

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

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

‫‪( I/O Management‬إدارة أجهزة الدخل و الخرج) ‪:‬‬

‫• أحد مهام نظام التشغيل هي إخفاء خصوصيات األجهزة عن المستخدمين ‪.‬‬


‫• يعد ‪ I/O Manager‬مسؤوالً عن ‪:‬‬
‫‪ ) 1‬إدارة الذاكرة فيما يخص ال ‪ I/O‬و من العمليات التي يديرها ‪:‬‬
‫‪ : Buffering‬و هي عمليّة تخزين البيانات بشكل مؤقت إلى أن يتم نقلها من أجل التنفيذ ‪.‬‬
‫‪ : Cashing‬و هي عملية تخزين أجزاء من البيانات الواردة في وحدات أسرع بغية تحسين األداء ‪.‬‬
‫‪ : Spooling‬و هي عملية التضارب الحاصل بين خرج مهمة ما و دخل مهمة أخرى ‪.‬‬
‫‪ )2‬واجهة عامة للـ ‪. device driver‬‬
‫‪ )3‬يعد أيضاً عن ال ‪ drivers‬لمختلف األجهزة المادية ‪.‬‬

‫‪16‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫‪( Protection and Security‬األمن و الحماية) ‪:‬‬

‫‪: Protection‬‬
‫تعرف بأنها أي آلية تتحكم بسماحيّة الوصول للموارد المتاحة من قبل ال ‪ processes‬أو ال ‪. users‬‬
‫‪: Security‬‬
‫تعرف بأنها عملية الدفاع من قبل النظام ضد أي هجمات داخلية أو خارجية ‪.‬‬

‫• من أوائل خطوات األمان هي عملية تصنيف المستخدمين لتحديد من يمكنه فعل ماذا ‪ ،‬تتم هذه العملية على‬
‫المراحل التالية ‪:‬‬

‫تعريف هوية المستخدم "‪ " user IDs , security Ids‬و التي تتضمن االسم و ‪associated‬‬ ‫‪.1‬‬
‫‪ number‬الخاص بالمستخدم ‪.‬‬
‫‪.2‬‬
‫بعد ذلك يتم ربط ‪ id‬المستخدم بجميع و العمليات و ذلك ليتم إعطاؤه صالحيات الوصول المناسبة ‪.‬‬
‫‪ .3‬تعريف المجموعات "‪ "group ID‬و التي تسمح بتعريف مجموعة من المستخدمين و إدارة إمكانياتهم في‬
‫التحكم ‪ ،‬و من ثم ربط هذه المجموعة بصالحيات الوصول إلى الملفات و ال ‪ Processes‬المشتركة ‪.‬‬
‫و أخيراً القيام بزيادة الصالحيات ‪ Privilege escalation‬و التي تسمح للمستخدم بتغير ال ‪ id‬الفعالة‬ ‫‪.4‬‬
‫الخاصة به في نظام ليحصل على صالحيات أوسع ‪.‬‬

‫هيكلية نواة نظام التشغيل ‪Kernel Data Structures‬‬


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

‫• بنية المعطيات الخاصة بال ‪ Kernel‬شبيهة تماما ببنى المعطيات البرمجية األساسية ‪ ،‬نذكرها سريعا ‪:‬‬

‫‪Single Linked List :‬‬

‫‪17‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫‪Doubly Linked List :‬‬

‫‪Circular Linked List :‬‬

‫‪Binary Search tree :‬‬

‫• حيث تكون األفرع اليسارية => األفرع اليمينية ‪.‬‬


‫• تعقيد البحث ضمن هذه البنية يساوي إلى )‪ O(n‬أما في األشجار الثنائية المتوازنة يكون التعقيد مساو إلى‬
‫)‪. O(lg n‬‬

‫‪Hash map :‬‬

‫‪18‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

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

‫‪Bitmap :‬‬

‫• هي أيضاً أحد بنى المعطيات المستخدمة و التي يمكن تعريفها بأنها سلسلة محرفيه مؤلفة من عدد ‪ n‬من ال‬
‫‪ binary digit‬و التي تمثل حالة ‪ n‬عنصر من الموارد ‪.‬‬
‫• و بالتالي فإن الموقع ‪ i‬ضمن ‪ bitmap‬مرتبط بحالة المورد ‪. i‬‬

‫مثال ‪:‬‬

‫و ليكن لدينا ال ‪ Bitmap‬التالية ‪001011101‬‬

‫إذا بدأنا العد من الصفر و من اليسار ‪ ،‬و باعتبار أن ‪ 0‬تعني أن المورد متاح و ال ‪ 1‬تعني أن المورد غير متاح ‪.‬‬

‫فنجد أن الموارد ‪ 2,4,5,6,8‬جميعها موارد غير متاحة ‪.‬‬

‫أما الموارد ‪ 0,1,3,7‬فهي موارد متاحة ‪.‬‬

‫بيئات الحوسبة ‪Computing Environments‬‬


‫يمكن تصنيف بيئات الحوسبة إلى األقسام التالية ‪:‬‬
‫التقليدية ‪. Traditional‬‬ ‫‪.1‬‬
‫المتنقلة ‪. Mobile‬‬ ‫‪.2‬‬
‫المخدم – زبون ‪. Client – Server‬‬ ‫‪.3‬‬
‫الند للند ‪. Pree-to-Peer‬‬ ‫‪.4‬‬
‫البيئة االفتراضية ‪. Virtualization‬‬ ‫‪.5‬‬
‫الحوسبة السحابية ‪. Cloud Computing‬‬ ‫‪.6‬‬
‫أنظمة الزمن الحقيقي ‪. Real – Time Embedded Systems‬‬ ‫‪.7‬‬
‫النظم الموزعة ‪. Distributed Systems‬‬ ‫‪.8‬‬

‫‪19‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫التقليدية ‪: Traditional‬‬

‫• آالت قائمة بذاتها عامة األهداف ‪ ،‬نستطيع القول أنها هي األجهزة العادية التي نستخدمها كالحواسيب الشخصية‪.‬‬
‫• البوابات (‪ : )Portals‬هي التي توفر وصول الويب لألنظمة الداخلية ‪.‬‬
‫• األجهزة الشبكية (‪ : )Network computers( )thin clients‬تعمل كمحطة الويب ‪.‬‬
‫• ‪ : Thin clients‬عبارة عن حاسوب عادي لكنه مصمم الستخدام الشبكة بطريقة خاصة ‪ ،‬حاسوب ال تهم ما هي‬
‫مواصفاته ألن كل ال ‪ Process‬التي سيقوم بها سيؤديها على ال ‪ server‬الذي يتمتع بمواصفات عالية ‪.‬‬

‫المتنقلة ‪: Mobile‬‬

‫• ‪ : Mobile computers‬حاسوب يتصل بالشبكة عن طريق ال ‪ wireless‬و أغلب الحواسيب اآلن مجهزة لهذا‬
‫األمر ‪.‬‬
‫• ما يتميز به ال ‪ Mobile‬عن ال ‪: Traditional‬‬
‫ميزات إضافية لنظام التشغيل مثل ‪ GPS‬و ‪. Gyroscope‬‬ ‫▪‬
‫مناسب ألنواع جديدة من التطبيقات مثل ‪. augmented reality‬‬ ‫▪‬
‫يستخدم ‪ IEEE 802.11‬الالسلكيّة أو شبكيات الهاتف المحمول لالتصال ‪.‬‬ ‫▪‬
‫• رواد ال ‪ Computing Environments – Mobile‬هما ‪ Apple IOS‬و ‪. Google Android‬‬

‫المخدم – زبون ‪: Client-Server‬‬

‫• ال ‪ server‬هو حاسوب بإمكانيات عالية مجهز ليقدم مجموعة خدمات محددة لمجموعة من ال ‪ client‬عن‬
‫طريق الشبكة ‪.‬‬
‫• ‪ : Dumb terminals‬تستبدل بالحواسيب الذكية ‪.‬‬
‫• معظم األنظمة اآلن هي مخدمات تستجيب للطلبات المقدمة من قبل ال ‪. client‬‬

‫‪ : Compute-server system‬يقدم واجهة بالخدمات المتاحة لل ‪. client‬‬ ‫▪‬


‫‪ : File-server system‬يقدم واجهة لل ‪ client‬لتخزين و استرجاع الملفات ‪.‬‬ ‫▪‬

‫‪20‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫الند للند ‪: Peer-to-Peer‬‬

‫• في هذا النموذج المستخدم يعمل بشكل مباشر مع المستخدم اآلخر فال يوجد ‪ client‬و ‪. server‬‬
‫يعتبر كل العقد (األجهزة) أنداد ‪.‬‬ ‫▪‬
‫يجب أن يتم وصل كل عقدة مع كل عقدة أخرى ‪.‬‬ ‫▪‬
‫كل ‪ node‬تتصرف كـ ‪ client‬أو كـ ‪ server‬أو ككليهما ‪.‬‬ ‫▪‬
‫كل عقدة تضع خدماتها في الشبكة بتقنية الـ ‪central lookup‬‬ ‫▪‬
‫كل عقدة تبث طلبها لخدمة معينة ‪ ،‬و تستجيب للطلبات عبر الخدمة ‪. discovery protocol‬‬ ‫▪‬

‫• مثال عنها ‪:‬‬


‫‪ Napster‬و ‪ Gnutella‬و )‪ Voice over IP (VoIP‬كالسكايب ‪.‬‬

‫البيئة االفتراضية ‪: Virtualization‬‬

‫• نظام التشغيل األساسي للجهاز يستضيف نظام تشغيل جديد و يعمل كأنه أساسي أيضاً ‪.‬‬
‫• مثالً ال ‪ VMware‬يُشغل ال ‪ Linux‬كضيف ‪ ،‬كل تطبيقات ال ‪ Linux‬يمكن تشغيلها دون أن يؤثر هذا على‬
‫الحاسوب أو نظام التشغيل األساسي ‪ ،‬و كل تطبيقات نظام التشغيل األساسي يمكن تشغيلها ‪.‬‬
‫• )‪ : VMM (Virtual Machine Manager‬يوفر خدمات المحاكاة االفتراضية ‪.‬‬
‫• عندما أضع نظام تشغيل جديد فوق نظام التشغيل الحالي للجهاز فنظام التشغيل األساسي للجهاز يرى النظام‬
‫الجديد كتطبيق عادي ‪ ،‬لكن المستخدم عند تطبيقه ألي أمر على نظام التشغيل الجديد يتوقع أن يتم تنفيذه تماماً‬
‫• كما لو أنه طبق األمر على نظام التشغيل األساسي ‪.‬‬

‫‪21‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

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

‫الحوسبة السحابية ‪: Cloud Computing‬‬

‫• خدمات الحوسبة و التخزين و حتى التطبيقات أصبحت متوفرة كخدمة عبر الشبكة ‪.‬‬
‫• تعتبر امتداد لل ‪ Virtualization‬كونها تعتمد ال ‪ Virtualization‬أساس للمهام التي تقدمها ‪.‬‬
‫• بيئات الحوسبة السحابية ‪ Cloud Computing‬تتألف من أنظمة التشغيل التقليدية ‪ ،‬باإلضافة إلى ‪. VMM‬‬
‫أدوات إدارة السحابة ‪:‬‬
‫اتصال اإلنترنت يتطلب األمن مثل ‪. firewalls‬‬ ‫▪‬
‫موازنات التحميل (‪ )load balancers‬تعمل على فصل حركة مرور البيانات عبر عدة تطبيقات ‪.‬‬ ‫▪‬
‫• نستطيع القول أن ال ‪ Virtualization‬هي تقنية تقسيم الموارد و إعطائها ل ‪ OS‬مختلفة ‪.‬‬
‫أما ال ‪ cloud‬فهي تحدد لمن أقدم المورد فهي تقوم بإدارة لل ‪. Virtualization‬‬
‫• أمثلة عن الكالود (‪)IBM cloud – Google drive – Dropbox‬‬

‫أنظمة الزمن الحقيقي ‪: Real – Time Embedded Systems‬‬

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

‫متنوع األهداف و االستخدامات ‪.‬‬ ‫▪‬


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

‫‪22‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

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

‫النظم الموزعة ‪: Distributed systems‬‬

‫• الحوسبة الموزعة ‪ :‬هي عملية توزيع ‪ data‬موجودة على جهاز لتكون على عدة أجهزة و كل جهاز يقوم باستخدامها‬
‫بشكل مختلف إلنجاز مهمة ما ‪.‬‬
‫• تعرف بأنها عملية جمع ألنظمة منفصلة و قد تكون غير متجانسة و ربطها لتعمل معاً ‪.‬‬
‫• الشبكة هب طريقة التواصل ‪ ،‬و استخدام بروتوكول ال ‪ TCP/IP‬هو األكثر شيوعاً ‪:‬‬
‫)‪. Local Area Network (LAN‬‬ ‫▪‬
‫)‪. Wide Area Network (WAN‬‬ ‫▪‬
‫)‪. Metropolitan Area Network (MAN‬‬ ‫▪‬
‫)‪. Personal Area Network (PAN‬‬ ‫▪‬
‫• من مزايا نظام التشغيل الموزع ‪:‬‬

‫يسمح مخطط التواصل ‪ Communication scheme‬بتبادل الرسائل بين األنظمة ‪.‬‬ ‫▪‬
‫يقدم انطباع أو إيهام بالعمل على نظام واحد ‪.‬‬ ‫▪‬
‫توزيع الحمل بين هذه الحاسبات (‪. )load balancing‬‬ ‫▪‬
‫• من العيوب ‪ :‬زمن االتصال بين أجزاء النظام قد يؤثر على أداء النظام ككل ‪.‬‬

‫نظم التشغيل األكثر شيوعاً‬

‫• ميكروسوفت ويندوز ‪: Windows‬‬


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

‫‪23‬‬
‫‪/ITE.RBCs‬‬
‫نظم تشغيل ‪ | 1‬عملي مشترك‬

‫• يونيكس ‪: UNIX‬‬
‫صمم في عام ‪ 1974‬بواسطة ‪ Dennis Ritchie‬و ‪ Ken Thompson‬بينما كانا يعمالن في معامل ‪.‬‬
‫‪ AT & T Bell‬كان الهدف نظام تشغيل صغير و متنقل ‪.‬‬
‫ثم أنتشر في الجامعات مراكز البحوث في عام ‪.1980‬‬
‫• و من نسخ يونيكس المشهورة ‪. BSD – V Unix :‬‬
‫• و هو أول نظام تشغيل يكتب بالكامل بلغة برمجة عالية ‪ ، high level language‬فهو مكتوب بلغة ‪C‬‬
‫• توزيعات لينكس ‪: Linux‬‬
‫هي نسخة مصغرة من يونيكس صممت لتعمل على الحاسبات الشخصية ‪ ،‬و هو مفتوح المصدر حيث يتيح حرية‬
‫تعديل الشفرة و إعادة التوزيع ‪.‬‬
‫و يوجد منها مئات التوزيعات أحدثها و أشهرها أوبونتو التي تدعم كل لفات العالم واجهة و كتابة بما فيها اللغة‬
‫العربية‬

‫انتهت املحاضرة ‪...‬‬

‫‪24‬‬
‫‪/ITE.RBCs‬‬

You might also like