طرق تنفيذ بيئات البرمجيات التطبيقية. البرمجيات التطبيقية طرق تنفيذ البرمجيات التطبيقية

طرق تنفيذ بيئات البرمجيات التطبيقية. البرمجيات التطبيقية طرق تنفيذ البرمجيات التطبيقية

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

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

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

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

يعتمد نوع التوافق المحتمل على العديد من العوامل. وأهمها بنية المعالج. إذا كان المعالج يستخدم نفس مجموعة التعليمات (ربما مع الإضافات، كما في حالة كمبيوتر IBM: المجموعة القياسية + الوسائط المتعددة + الرسومات + الدفق) ونفس نطاق العناوين، فيمكن تحقيق التوافق الثنائي بكل بساطة. وللقيام بذلك يجب استيفاء الشروط التالية:

    يجب أن يدعم نظام التشغيل واجهة برمجة التطبيقات (API) التي يستخدمها التطبيق؛

    يجب أن تتوافق البنية الداخلية لملف التطبيق القابل للتنفيذ مع بنية الملفات القابلة للتنفيذ لنظام التشغيل المحدد.

إذا كانت المعالجات لها بنيات مختلفة، فبالإضافة إلى الشروط المذكورة أعلاه، فمن الضروري تنظيم مضاهاة الكود الثنائي. على سبيل المثال، يتم استخدام محاكاة أوامر معالج Intel على معالج Motorola 680x0 لجهاز كمبيوتر Macintosh على نطاق واسع. يقوم محاكي البرنامج في هذه الحالة بتحديد التعليمات الثنائية بشكل تسلسلي معالج إنتلوينفذ الروتين المكافئ المكتوب في تعليمات معالج موتورولا. نظرًا لأن معالج Motorola لا يحتوي على نفس السجلات والأعلام ووحدة الحساب الحسابي (ALU) الداخلية وما إلى ذلك، كما هو الحال في معالجات Intel، فيجب عليه أيضًا محاكاة (محاكاة) كل هذه العناصر باستخدام السجلات أو الذاكرة الخاصة به.

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

ترجع فعالية هذا النهج إلى حقيقة أن معظم برامج اليوم تعمل ضمن واجهة المستخدم الرسومية (GUI). نوع ويندوزأو MAC أو UNIX Motif، حيث تقضي التطبيقات ما بين 60 إلى 80% من وقتها في تنفيذ وظائف واجهة المستخدم الرسومية واستدعاءات مكتبة نظام التشغيل الأخرى. إن خاصية التطبيقات هذه هي التي تسمح لبيئات التطبيقات بالتعويض عن مقدار الوقت الكبير الذي تقضيه في محاكاة كل برنامج على حدة. تشتمل بيئة تطبيقات البرامج المصممة بعناية على مكتبات تحاكي مكتبات واجهة المستخدم الرسومية، ولكنها مكتوبة برمز أصلي. وبالتالي، يتم تحقيق تسريع كبير في تنفيذ البرامج باستخدام API لنظام تشغيل آخر. يُطلق على هذا الأسلوب اسم الترجمة، لتمييزه عن العملية الأبطأ المتمثلة في محاكاة أمر واحد في كل مرة.

على سبيل المثال، بالنسبة لبرنامج Windows الذي يعمل على نظام Macintosh، عند تفسير أوامر المعالج أداء إنتلقد تكون منخفضة جدا. ولكن عند استدعاء وظيفة واجهة المستخدم الرسومية، يتم فتح نافذة، وما إلى ذلك، وحدة نظام التشغيل التي تنفذ التطبيق بيئة ويندوز، يمكنه اعتراض هذه المكالمة وإعادة توجيهها إلى روتين فتح النافذة المعاد ترجمته لمعالج Motorola 680x0. ونتيجة لذلك، في مثل هذه الأقسام من التعليمات البرمجية، يمكن أن تصل سرعة البرنامج (وربما تتجاوز) سرعة العمل على معالجه الأصلي.

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

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

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

على أرز. 1.9يدعم OS1 OS، بالإضافة إلى تطبيقاته الأصلية، تطبيقات من أنظمة التشغيل OS2 وOS3. ولهذا الغرض يحتوي على تطبيقات خاصة، بيئات برامج التطبيقات التي تترجم واجهات أنظمة التشغيل "الأجنبية" API OS2 وAPI OS3 إلى واجهة نظام التشغيل "الأصلي" الخاص بها - API OS1. لذلك، على سبيل المثال، إذا كان OS2 هو UNIX، وOS1 هو OS/2، لإجراء استدعاء نظام لإنشاء عملية fork() في تطبيق UNIX، يجب أن تتصل بيئة البرنامج بنواة نظام التشغيل OS/2 باستخدام الأمر نظام يدعو DOS ExecPgm ().

أرز. 1.9.تنظيم بيئات التطبيقات المتعددة

لسوء الحظ، فإن سلوك جميع الوظائف تقريبًا التي تشكل واجهة برمجة التطبيقات (API) لنظام تشغيل واحد، كقاعدة عامة، يختلف بشكل كبير عن سلوك الوظائف المقابلة لنظام تشغيل آخر. على سبيل المثال، لكي تتوافق وظيفة إنشاء العملية في OS/2 Dos ExecPgm () بشكل كامل مع وظيفة إنشاء عملية fork () في الأنظمة المشابهة لـ UNIX، يجب تغييرها وكتابة وظيفة جديدة: دعم لـ القدرة على نسخ مساحة العنوان الخاصة بالعملية الأصلية إلى مساحة العملية الفرعية [ 17 ].

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

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

يتمتع هذا النهج في تصميم بيئات تطبيقات متعددة بجميع مزايا وعيوب الهندسة النووية الدقيقة، على وجه الخصوص:

    من السهل جدًا إضافة بيئات التطبيقات واستبعادها، وذلك نتيجة للتوسعة الجيدة لأنظمة تشغيل النواة الدقيقة؛

    إذا فشلت إحدى بيئات التطبيق، تظل البقية قيد التشغيل، مما يساهم في موثوقية واستقرار النظام ككل؛

    يؤثر الأداء المنخفض لأنظمة تشغيل النواة الدقيقة على سرعة أدوات التطبيق، وبالتالي سرعة التطبيقات.

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

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

في العديد من إصدارات نظام التشغيل UNIX، يتم تنفيذ مترجم بيئة التطبيق كتطبيق عادي. في أنظمة التشغيل المبنية باستخدام مفهوم النواة الدقيقة، مثل Windows NT، تعمل بيئات التطبيقات كخوادم لوضع المستخدم. وفي نظام التشغيل OS/2، ببنيته البسيطة، تم دمج وسائل تنظيم بيئات التطبيقات بعمق في نظام التشغيل.

يعتمد أحد الخيارات الأكثر وضوحًا لتنفيذ بيئات التطبيقات المتعددة على بنية نظام التشغيل القياسية متعددة الطبقات. في التين. 3. 8 نظام التشغيل OS1 يدعم، بالإضافة إلى تطبيقاته "الأصلية"، تطبيقات نظام التشغيل OS2. ولهذا الغرض، فهو يحتوي على تطبيق خاص - بيئة برمجية تطبيقية تترجم واجهة نظام التشغيل "الأجنبي" - API OS2 إلى واجهة نظام التشغيل "الأصلي" - API OS1.

أرز. 3. 8. بيئة البرامج التطبيقية التي تبث
مكالمات النظام

في تجسيد آخر لبيئات التطبيقات المتعددة، يحتوي نظام التشغيل على العديد من واجهات برمجة التطبيقات النظيرة. في الشكل الموضح. 3. في المثال، يدعم نظام التشغيل التطبيقات المكتوبة لأنظمة التشغيل OS1 وOS2 وOS3. وللقيام بذلك، توجد واجهات برامج التطبيق لجميع أنظمة التشغيل هذه مباشرة في مساحة نواة النظام: API OS1، وAPI OS2، وAPI OS3.

أرز. 3. 9. تنفيذ التوافق على أساس عدة
واجهات برمجة التطبيقات النظيرة

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

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

وفقًا لبنية النواة الدقيقة، يتم تنفيذ جميع وظائف نظام التشغيل بواسطة النواة الدقيقة وخوادم وضع المستخدم. من المهم أن يتم تصميم كل بيئة تطبيق كخادم منفصل لوضع المستخدم ولا تتضمن الآليات الأساسية (الشكل 3. 10). التطبيقات التي تستخدم الوصول إلى API مكالمات النظامإلى بيئة التطبيق المقابلة عبر النواة الدقيقة. تعالج بيئة التطبيق الطلب، وتنفذه (ربما عن طريق استدعاء وظائف النواة الدقيقة الأساسية للقيام بذلك)، وترسل النتيجة مرة أخرى إلى التطبيق. عند تنفيذ طلب، يجب على بيئة التطبيق بدورها الوصول إلى آليات نظام التشغيل الأساسية التي تنفذها النواة الدقيقة وخوادم نظام التشغيل الأخرى.

أرز. 3. 10. نهج Microkernel لتنفيذ متعددة
بيئات التطبيق

يتمتع هذا النهج في تصميم بيئات تطبيقات متعددة بجميع مزايا وعيوب بنية النواة الدقيقة، على وجه الخصوص:

· من السهل جدًا إضافة واستبعاد بيئات التطبيقات، وهو نتيجة للتوسعة الجيدة لأنظمة تشغيل النواة الدقيقة؛

· يتم التعبير عن الموثوقية والاستقرار في حقيقة أنه في حالة فشل إحدى بيئات التطبيق، تظل جميع البيئات الأخرى قيد التشغيل؛

· يؤثر الأداء المنخفض لأنظمة تشغيل النواة الدقيقة على سرعة بيئات التطبيقات، وبالتالي سرعة تنفيذ التطبيق.

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

أسئلة الاختبار الذاتي

  1. ما المقصود ببنية نظام التشغيل؟
  2. ما هي الطبقات الثلاث الرئيسية في هيكل نظام الحوسبة؟
  3. ما الدور الذي يلعبه نظام التشغيل في واجهة استدعاء النظام؟
  4. ما هي الشروط التي يجب استيفاؤها عند تصميم نظام التشغيل حتى يكون نظام التشغيل قابلاً للحمل بسهولة؟
  5. ما الفرق بين بنية microkernel وبنية نظام التشغيل التقليدية؟
  6. لماذا تعد النواة الدقيقة مناسبة تمامًا لدعم الحوسبة الموزعة؟
  7. ما المقصود بمفهوم بيئات التطبيقات المتعددة؟
  8. ما هو جوهر طريقة الترجمة المكتبية؟

نهاية العمل -

هذا الموضوع ينتمي إلى القسم:

نظام التشغيل والعمليات والأجهزة

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

إذا كنت بحاجة إلى مواد إضافية حول هذا الموضوع، أو لم تجد ما كنت تبحث عنه، نوصي باستخدام البحث في قاعدة بيانات الأعمال لدينا:

ماذا سنفعل بالمواد المستلمة:

إذا كانت هذه المادة مفيدة لك، فيمكنك حفظها على صفحتك على الشبكات الاجتماعية:

جميع المواضيع في هذا القسم:

ميزات منصات الأجهزة
تتأثر خصائص نظام التشغيل بشكل مباشر بالأجهزة التي تم تصميمه عليها. يتم تصنيف أنظمة التشغيل حسب نوع الأجهزة. حواسيب شخصية، مي

المهام والتمارين
1. ما هي الأحداث في تطوير القاعدة التقنية لأجهزة الكمبيوتر التي أصبحت علامات بارزة في تاريخ أنظمة التشغيل؟ 2. ما هو الفرق الأساسي بين شاشات معالجة الدفعة الأولى و

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

إدارة الذاكرة الرئيسية
الذاكرة عبارة عن مجموعة كبيرة من الكلمات أو البايتات، لكل منها عنوان خاص بها. هذا هو مستودع البيانات الذي يمكن الوصول إليه الوصول السريع، موزعة بين المعالج و

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

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

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

النواة ووحدات نظام التشغيل المساعدة
النهج الأكثر عمومية لبناء نظام التشغيل هو تقسيم جميع وحداته إلى مجموعتين: kernel - وحدات نظام التشغيل التي تؤدي الوظائف الأساسية؛

النواة والوضع المميز
للتحكم بشكل موثوق في تقدم التطبيقات، يجب أن يتمتع نظام التشغيل بامتيازات معينة على التطبيقات. وإلا فإن التطبيق قد لا يعمل بشكل صحيح

هيكل نظام التشغيل متعدد الطبقات
يمكن اعتبار نظام الحوسبة الذي يقوم بتشغيل نظام تشغيل قائم على kernel بمثابة نظام يتكون من ثلاث طبقات مرتبة هرميًا: تشكل الطبقة السفلية الأجهزة

الهيكل الأساسي
أدوات دعم أجهزة نظام التشغيل. حتى الآن، تم الحديث عن نظام التشغيل باعتباره مجموعة من البرامج، ولكن يمكن أيضًا تنفيذ بعض وظائف نظام التشغيل بواسطة الأجهزة. شاعر

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

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

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

التوافق الثنائي والمصدر
من الضروري التمييز بين التوافق على المستوى الثنائي والتوافق على مستوى المصدر. عادةً ما يتم تخزين التطبيقات في نظام التشغيل كملفات قابلة للتنفيذ تحتوي على صور ثنائية.

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

مفهوم العملية
العملية هي نشاط يتم تشغيله على المعالج. المعالج في بالمعنى الواسعيسمى أي جهاز يشكل جزءا من جهاز كمبيوتر

مفهوم الموارد
تتمثل إحدى وظائف نظام التشغيل في توفير طريقة فعالة وخالية من الصراعات لإدارة موارد نظام الكمبيوتر. غالبًا ما يُفهم المورد على أنه مؤشر

مفهوم المحاكاة الافتراضية
يتم تنفيذ المحاكاة الافتراضية لمورد معين في إطار نظام توزيع مركزي للموارد. من خلال المحاكاة الافتراضية، يتم تنفيذ شكلين من أشكال خداع المستخدمين:

تخصصات خدمة قائمة الانتظار الواحدة
أ) FIFO (أولاً في - أولًا يخرج) - انضباط الخدمة حسب ترتيب الوصول. تذهب كافة التطبيقات إلى نهاية قائمة الانتظار. يتم تقديم الطلبات في بداية قائمة الانتظار أولاً. تخطيطيا

نظام المقاطعة
موقف ينشأ نتيجة لتأثير حدث مستقل ويؤدي إلى الإنهاء المؤقت لتنفيذ سلسلة من الأوامر في برنامج واحد لغرض ما

مفهوم العملية
العملية (المهمة) هي برنامج في وضع التنفيذ. ترتبط كل عملية بمساحة عنوان يمكنها القراءة منها و

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

إنهاء العملية
(استدعاء الخروج أو ExitProcess): الخروج المجدول (نهاية التنفيذ) الخروج المجدول عند حدوث خطأ معروف (على سبيل المثال، ملف مفقود)

التسلسل الهرمي للعملية
تتمتع أنظمة UNIX بتسلسل هرمي صارم للعمليات. كل عملية جديدة تم إنشاؤها بواسطة استدعاء نظام الشوكة هي عملية تابعة للعملية السابقة. تتلقى العملية الفرعية فوائد من العملية الأصلية.

حالة العملية
الحالات الثلاث للعملية هي: التشغيل (تشغل وحدة المعالجة المركزية) جاهز (العملية معلقة مؤقتًا للسماح بتشغيل عملية أخرى) الانتظار (العملية

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

نموذج التدفق
يرتبط كل مؤشر ترابط بما يلي: عداد تنفيذ التعليمات، تسجيلات للمتغيرات الحالية، حالة المكدس، مشاركة العناصر فيما بينها

فوائد استخدام المواضيع
تبسيط البرنامج في بعض الحالات عن طريق استخدام مساحة عنوان مشتركة. تبلغ سرعة إنشاء الدفق مقارنة بالعملية حوالي 100 مرة. ترقية

تنفيذ المواضيع في مساحة المستخدم والنواة والمختلطة
أ - المواضيع في مساحة المستخدم ب

ميزات تنفيذ ويندوز
يتم استخدام أربعة مفاهيم: المهمة - مجموعة من العمليات ذات حصص وحدود مشتركة العملية - حاوية من الموارد (الذاكرة...)، تحتوي على موضوع واحد على الأقل. بوتو

التواصل بين العمليات
المواقف التي يتعين فيها أن تتفاعل العمليات: نقل المعلومات من عملية إلى أخرى التحكم في أنشطة العمليات (على سبيل المثال: عندما تتقاتل من أجل المعلومات)

نقل المعلومات من عملية إلى أخرى
يمكن إجراء النقل بعدة طرق: قنوات الذاكرة المشتركة (الأنابيب)، وهو ملف زائف تكتب عليه عملية وتقرأه عملية أخرى.

حالة السباق
حالة السباق هي حالة تقوم فيها عمليات متعددة بقراءة البيانات أو كتابتها (إلى الذاكرة أو الملف) في نفس الوقت. دعونا نلقي نظرة على مثال حيث تحاول عمليتان القيام بذلك

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

قفل المتغيرات
تم تقديم مفهوم متغير القفل، أي. إذا كانت قيمة هذا المتغير مثلا 1، فإن المورد مشغول بعملية أخرى، وتنتقل العملية الثانية إلى وضع الاستعداد (الكتل) حتى

دوران صارم
في هذا النموذج، يمكن تنفيذ العمليات بشكل صارم بالتناوب باستخدام متغير.

عملية الاتصالات البدائية
يتم تقديم مفاهيم اثنين من البدائيين. السكون هو طلب نظام يتسبب في حظر عملية الاستدعاء حتى تبدأ عملية أخرى. واك

الإشارات
الإشارات هي متغيرات لحساب إشارات الزناد المخزنة للاستخدام المستقبلي. تم اقتراح عمليتين: للأسفل وللأعلى (نظائرها من النوم والاستيقاظ

الجدولة في أنظمة المعالجة الدفعية
6.2.1 "الوارد أولاً - يخرج أولاً" (FIFO - أول ما يدخل بقبضة الخارج) يتم وضع العمليات في قائمة الانتظار عند وصولها. مزايا:

الجدولة الدورية
أبسط خوارزمية جدولة وتستخدم بشكل متكرر. يتم منح كل عملية شريحة من وقت المعالج. عندما ينتهي الكم، يتم نقل العملية بواسطة المجدول إلى نهاية العملية.

جدولة الأولوية
يتم تعيين أولوية لكل عملية، ويتم نقل التحكم إلى العملية ذات الأولوية العليا. يمكن أن تكون الأولوية ديناميكية أو ثابتة. متحرك

التخطيط في أنظمة الوقت الحقيقي
تنقسم أنظمة الوقت الفعلي إلى: جامدة (مواعيد نهائية صارمة لكل مهمة) - التحكم في الحركة مرن (انتهاك الجدول الزمني غير مرغوب فيه ولكنه مقبول) - وحدوي

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

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

محاكاة الجمود
نمذجة الطرق المسدودة باستخدام الرسوم البيانية. أسطورةعلى هذا النموذج جدا

كشف حالة الجمود وحلها
لا يحاول النظام منع حالة توقف تام، ولكنه يحاول اكتشافه وحله. اكتشاف حالة توقف تام عندما يكون هناك مورد واحد من كل نوع

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

منع الشروط الأربعة المطلوبة للجمود
تجنب شروط الاستبعاد المتبادل يمكنك تقليل عدد العمليات المتنافسة على الموارد. على سبيل المثال، استخدام التخزين المؤقت للطابعة عندما

مبادئ أجهزة الإدخال/الإخراج
المستويان السفليان لنظام التحكم في الإدخال/الإخراج هما الأجهزة: الأجهزة نفسها، التي تؤدي العمليات مباشرة، ووحدات التحكم الخاصة بها، والتي تعمل على التنظيم تعاونجهاز

وحدات تحكم الجهاز
تتكون أجهزة الإدخال/الإخراج عادةً من جزأين: ميكانيكي (لا تأخذ الأمر حرفيًا) - قرص أو طابعة أو شاشة إلكترونية - وحدة تحكم أو

مساحة عنوان الذاكرة المعينة للإدخال/الإخراج
تحتوي كل وحدة تحكم على عدة سجلات تستخدم للتواصل مع المعالج المركزي. باستخدام هذه السجلات، يتحكم نظام التشغيل (يقرأ، ويكتب، ويشغل، وما إلى ذلك) ويحدد

الوصول المباشر للذاكرة (DMA)
يتم تنفيذ الوصول المباشر إلى الذاكرة باستخدام وحدة تحكم DMA. تحتوي وحدة التحكم على عدة سجلات: سجل عنوان الذاكرة وعداد البايت

يقاطع
بعد أن يبدأ جهاز الإدخال/الإخراج في العمل، ينتقل المعالج إلى مهام أخرى. للإشارة إلى انتهاء عمل المعالج، يبدأ الجهاز في المقاطعة،

مهام برامج الإدخال/الإخراج
المهام الرئيسية التي يجب حلها برمجةالإدخال/الإخراج: استقلالية الجهاز - على سبيل المثال، لا يحتاج البرنامج الذي يقرأ البيانات من ملف إلى التفكير في مكانها

الإدخال/الإخراج للبرامج
في هذه الحالة، يقوم المعالج المركزي بكل العمل. دعونا نلقي نظرة على عملية طباعة السلسلة ABCDEFGH باستخدام هذه الطريقة.

عمليات الإدخال/الإخراج التي تعتمد على المقاطعة
إذا لم يتم استخدام المخزن المؤقت في المثال السابق، وكانت الطابعة تطبع 100 حرف في الثانية، فسيستغرق كل حرف 10 مللي ثانية، وخلال هذه الفترة سيكون المعالج خاملاً، في انتظار أن تصبح الطباعة جاهزة

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

برامج تشغيل الأجهزة
برنامج تشغيل الجهاز - مطلوب لكل جهاز. تتطلب أنظمة التشغيل المختلفة برامج تشغيل مختلفة. يجب أن تكون برامج التشغيل جزءًا من النواة (في نظام متجانس) من أجل الوصول إلى سجلات التحكم

برنامج الإدخال/الإخراج المستقل عن الجهاز
ميزات برنامج الإدخال/الإخراج المستقل للجهاز: واجهة متسقة لبرامج تشغيل الأجهزة، ورسائل خطأ التخزين المؤقت

ملخص لمستويات الإدخال/الإخراج والوظائف
المستويات والوظائف الرئيسية لنظام الإدخال والإخراج الأساسي

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

التخزين المؤقت والتخزين المؤقت
عادةً ما يُفهم المخزن المؤقت على أنه مساحة من الذاكرة لتخزين المعلومات عند تبادل البيانات بين جهازين أو عمليتين أو عملية وجهاز. تبادل

التخزين المؤقت واختطاف الأجهزة
تحدثنا عن مفهوم التخزين المؤقت في المحاضرة الأولى من دورتنا، كآلية أتاحت لأول مرة الجمع بين عمليات الإدخال/الإخراج الحقيقية لمهمة واحدة مع تنفيذ مهمة أخرى.

التعامل مع المقاطعات والأخطاء
إذا كان نظام الكمبيوتر، عند العمل مع جهاز خارجي، لا يستخدم طريقة استطلاع حالته، ولكنه يستخدم آلية المقاطعة، فعند حدوث المقاطعة، كما فعلنا بالفعل

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

المبادئ الأساسية للنظام الفرعي للتحكم في الإدخال/الإخراج في UNIX
1. تم بناء هذا النظام الفرعي بطريقة موحدة مع النظام الفرعي لإدارة البيانات (نظام الملفات). يتم تزويد المستخدم بطريقة موحدة للوصول إلى كل من واجهة المستخدم والملفات. تحت الملف في نظام التشغيل

إدارة الذاكرة في نظام التشغيل
4.1. مفهوم التنظيم والإدارة ذاكرة جسديةفي أنظمة التشغيل 4.2. طرق التخصيص المتماسك للذاكرة الرئيسية 4.2.1. متصلة موزعة

مفهوم تنظيم وإدارة الذاكرة الفعلية في أنظمة التشغيل
يعد تنظيم وإدارة الذاكرة الرئيسية (الأولية والمادية والحقيقية) لجهاز الكمبيوتر أحد أهم العوامل التي تحدد بناء أنظمة التشغيل. باللغة الإنجليزية التقنية

تخصيص ذاكرة متماسكة لمستخدم واحد
يتم استخدام تخصيص الذاكرة المتماسك لمستخدم واحد، ويسمى أيضًا التخصيص المستمر الفردي، في أجهزة الكمبيوتر التي تعمل في وضع البرنامج الفردي الدفعي تحت سيطرة أبسط البرامج

تخصيص الذاكرة المتماسكة لمعالجة البرامج المتعددة
مع معالجة البرامج المتعددة، يتم وضع العديد من المهام في ذاكرة الكمبيوتر في وقت واحد. يمكن توزيع الذاكرة بين المهام في هذه الحالة بالطرق التالية:

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

مفاهيم الذاكرة الافتراضية الأساسية
عادة ما يرتبط مصطلح الذاكرة الافتراضية بالقدرة على معالجة مساحة ذاكرة أكبر بكثير من سعة الذاكرة الأساسية (الحقيقية والمادية) لجهاز حاسوبي معين.

تنظيم صفحة الذاكرة الافتراضية
العنوان الظاهري مع تنظيم ذاكرة الصفحة البحتة هو زوج مرتب (p، d)، حيث p هو رقم الصفحة ذاكرة افتراضيةو d هو الإزاحة داخل الصفحة p. يمكن تنفيذ العملية

التنظيم القطاعي للذاكرة الافتراضية
العنوان الظاهري في مؤسسة مجزأة للذاكرة الظاهرية هو زوج مرتب n = (s, d)، حيث s هو رقم مقطع الذاكرة الظاهرية، وd هو الإزاحة داخل هذا المقطع. يمكن للعملية

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

استراتيجيات إدارة الذاكرة الافتراضية
تنقسم استراتيجيات إدارة الذاكرة الافتراضية، مثل استراتيجيات إدارة الذاكرة الفعلية، إلى ثلاث فئات: استراتيجيات الدفع، واستراتيجيات التنسيب، واستراتيجيات الدفع.

استراتيجيات الدفع (المضخة).
للتحكم في الدفع يتم استخدام الاستراتيجيات التالية: · الدفع (الترحيل) عند الطلب (on request)؛ · الدفع (الضخ) مع الترقب (متقدم).

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

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

تسمية الملف
يعتمد طول اسم الملف على نظام التشغيل، ويمكن أن يتراوح من 8 (MS-DOS) إلى 255 حرفًا (Windows وLINUX). يمكن لأنظمة التشغيل التمييز بين الأحرف الكبيرة والصغيرة. على سبيل المثال، WINDOWS وWindows لـ MS-DOS هما نفس الشيء

هيكل الملف
ثلاثة هياكل أساسية للملفات: 1. تسلسل البايتات - نظام التشغيل غير مهتم بمحتويات الملف، فهو يرى البايتات فقط. الميزة الرئيسية لمثل هذا النظام هي المرونة

أنواع الملفات
الأنواع الرئيسية للملفات: · عادية - تحتوي على معلومات المستخدم. تستخدم على نظامي التشغيل Windows و UNIX. · الكتالوجات - ملفات النظام، توفير

سمات الملف
سمات الملف الأساسية: · الحماية - من يمكنه الوصول إلى الملف وكيف (المستخدمون، المجموعات، القراءة/الكتابة). تستخدم على نظامي التشغيل Windows و UNIX. · كلمة المرور - كلمة المرور للاتحاد الانجليزي

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

أنظمة الكتالوج ذات المستوى الواحد
في هذا النظام، يتم تضمين جميع الملفات في دليل واحد. التطوير التنظيمي

اسم المسار
لتنظيم شجرة الدليل، تحتاج إلى طريقة ما لتحديد ملف. طريقتان رئيسيتان لتحديد ملف: اسم المسار المطلق - يشير إلى المسار من الملف الجذر

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

تنفيذ أسماء الملفات الطويلة
في السابق، كانت أنظمة التشغيل تستخدم أسماء ملفات قصيرة، MS-DOS يصل إلى 8 أحرف، وUNIX الإصدار 7 يصل إلى 14 حرفًا. يتم الآن استخدام أسماء الملفات الأطول (حتى 255 حرفًا أو أكثر).

تسريع البحث عن الملفات
إذا كان الدليل كبيرًا جدًا (عدة آلاف من الملفات)، فإن قراءة الدليل بالتسلسل لن تكون فعالة جدًا. 1 استخدام جدول التجزئة لتسريع البحث عن الملفات.

أ- ملف مشترك
يسمى نظام الملفات هذا بالرسم البياني الحلقي الموجه (DAG، Directed Acyclic Graph). تنشأ مشكلة إذا كانت عناوين القرص موجودة في ملفات الدليل نفسها.

مقاس الكتله
إذا تم اتخاذ القرار بتخزين الملف في كتل، فإن السؤال الذي يطرح نفسه هو حجم هذه الكتل. هناك نوعان من النقيضين: · كتل كبيرة - على سبيل المثال، 1 ميجابايت، ثم ملف حتى 1 بايت سيأخذ كتلة كاملة

المحاسبة للكتل المجانية
هناك طريقتان رئيسيتان لحساب الكتل المجانية: · قائمة مرتبطة بكتل القرص، تحتوي كل كتلة على أكبر عدد ممكن من الكتل المجانية التي يمكن تضمينها في الكتلة. في كثير من الأحيان لقائمة الاحتياطي

حصص القرص
للحد من المستخدم، هناك آلية الحصص. نوعان من الحدود: · صلبة – لا يمكن تجاوزها · مرنة – يمكن تجاوزها ولكن عند خروج المستخدم

دعم
الحالات التي يلزم فيها النسخ الاحتياطي: · حالات الطوارئ التي تؤدي إلى فقدان البيانات الموجودة على القرص · الحذف العرضيأو تلف البرامج للملفات الأساسية

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

التخزين المؤقت
ذاكرة التخزين المؤقت للكتلة (ذاكرة التخزين المؤقت) هي مجموعة من الكتل المخزنة في الذاكرة، ولكنها تنتمي منطقيًا إلى القرص. يتم اعتراض كافة طلبات القراءة إلى القرص وتوافر ما هو مطلوب

نظام الملفات ايزو 9660
أكثر معلومات مفصلة- http://ru.wikipedia.org/wiki/ISO_9660 تم اعتماد المعيار في عام 1988. وفقًا للمعيار، يمكن تقسيم الأقراص إلى أقسام منطقية، لكننا سننظر في الأقراص ذات

إدخال كتالوج ISO 9660
موقع الملف هو رقم كتلة البداية، لأنه يتم ترتيب الكتل بالتسلسل. L - طول اسم الملف بالبايت اسم الملف - 8 أحرف، 3 أحرف ملحقة (بسبب التوافق

ملحقات روك ريدج لنظام التشغيل UNIX
تم إنشاء هذا الامتداد للسماح بتمثيل نظام الملفات UNIX على القرص المضغوط. يتم استخدام حقل استخدام النظام لهذا الغرض. تحتوي الامتدادات على الحقول التالية: 1.PX -

نظام الملفات UDF (تنسيق القرص العالمي)
مزيد من المعلومات التفصيلية - http://ru.wikipedia.org/wiki/Universal_Disk_Format تم إنشاؤه في الأصل لـ DVD، منذ الإصدار 1.50 أضافوا دعمًا لـ CD-RW وCD-R. الآن الإصدار الأحدث

نظام الملفات MS-DOS (FAT-12,16,32)
في الإصدارات الأولى كان هناك دليل واحد فقط (MS-DOS 1.0). منذ MS-DOS 2.0، تم تطبيق بنية هرمية. يتم إصلاح إدخالات الدليل عند 32 بايت. أسماء الملفات -

سيتم استخدامها في نظام التشغيل Windows 98
سمة الأرشيف مطلوبة للبرامج نسخة احتياطيةوباستخدامه يحددون ما إذا كان سيتم نسخ الملف أم لا. ينقسم الحقل الزمني (16 بت) إلى ثلاثة حقول فرعية:

ملحق Windows 98 لـ FAT-32
تم استخدام 10 بتات مجانية للتوسيع. استمارة

الوظيفة الإضافية الرئيسية عبر FAT-32 هي أسماء الملفات الطويلة
لكل ملف، بدأ تعيين اسمين: 1. اختصار 8+3 للتوافق مع MS-DOS 2. اسم طويلالملف بتنسيق Unicode ويمكن الوصول إلى الملف بواسطة أي شخص

كتابة تنسيق الدليل مع جزء اسم ملف طويل في نظام التشغيل Windows 98
يسمح لك حقل "السمات" بتمييز جزء من الاسم الطويل (القيمة 0x0F) عن واصف الملف. إدخالات دليل برنامج MS-DOS القديمة بقيمة حقل السمة 0x0

نظام الملفات NTFS
ملف نظام NTFSتم تطويره لنظام التشغيل Windows NT. الميزات: عناوين 64 بت، أي. نظريًا يمكن أن يدعم 264*216 بايت (1,208,925,819 ميجا بايت)

ابحث عن الملف بالاسم
عند إنشاء ملف، يستدعي البرنامج إجراء المكتبة CreateFile("C:windowsreadmy.txt"، ...) ينتقل هذا الاستدعاء إلى مستوى المكتبة المشتركة p

ضغط الملفات
إذا تم وضع علامة على الملف على أنه مضغوط، يقوم النظام تلقائيًا بضغطه عند الكتابة، وفك الضغط عند القراءة. خوارزمية العمل: 1. تم أخذ أول 16 قطعة من الملف للدراسة (ن

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

نظام الملفات UNIX V7
على الرغم من أن هذا نظام ملفات قديم، إلا أن العناصر الأساسية لا تزال مستخدمة في أنظمة UNIX الحديثة. الميزات: · تقتصر أسماء الملفات على 14 حرف ASCII، باستثناء الشرطة المائلة "/&q"

هيكل العقدة i
وحدات البايت الميدانية الوصف الوضع نوع الملف وبتات الأمان وبتات setuid وsetgid Nlinks

إنشاء والعمل مع ملف
fd=creat("abc", mode) - مثال على إنشاء ملف abc باستخدام وضع الحماية المحدد في متغير الوضع (الذي يمكن للمستخدمين الوصول إليه). يتم استخدام النظام

نظام الملفات بي إس دي
الأساس هو نظام الملفات الكلاسيكي UNIX. الميزات (الفرق من النظام السابق): · زيادة طول اسم الملف إلى 255 حرفًا · إعادة تنظيم الدلائل

وضع نظام الملفات EXT2 على القرص
ميزات أخرى: حجم الكتلة 1 كيلو بايت. حجم كل عقدة i 128 بايت. · تحتوي العقدة i على 12 عنوان مباشر و3 عناوين غير مباشرة، وأصبح طول العنوان في العقدة i 4 بايت، وهو ما

نظام الملفات EXT3
على عكس EXT2، EXT3 هو نظام ملفات يومية، أي. لن ينتهي الأمر في حالة غير متناسقة بعد الفشل. ولكنه متوافق تمامًا مع EXT2.

نظام الملفات XFS
XFS هو نظام ملفات للمذكرات تم تطويره بواسطة Silicon Graphics، ولكنه تم إصداره الآن كمصدر مفتوح. المعلومات الرسمية على http://oss.sgi.com/projec

نظام الملفات RFS
RFS (RaiserFS) هو نظام ملفات يومية تم تطويره بواسطة Namesys. معلومات رسمية عن RaiserFS بعض الميزات: · العمل بشكل أكثر كفاءة

نظام الملفات JFS
جي إف إس (مجلة نظام الملفات) هو نظام ملفات مسجل تم تطويره بواسطة IBM لنظام التشغيل AIX، ولكن تم إصداره الآن كمصدر مفتوح. معلومات رسمية عن Journaled File S

هيكل طبقة نظام الملفات NFS
VFS (نظام الملفات الظاهري) - نظام الملفات الظاهري. مطلوب لإدارة جدول الملفات المفتوحة. الإدخالات للجميع ملف مفتوحتسمى العقد v

مضاهاة بديلة – بيئات التطبيقات المتعددةوالذي يتضمن مجموعة من وظائف التطبيق واجهة API. إنها تحاكي الوصول إلى وظائف المكتبة في بيئة التطبيق، لكنها في الواقع تصل إلى مكتباتها الداخلية. تسمى بث المكتبة. هذه حزمة برامج بحتة.

لكي يعمل البرنامج المكتوب ضمن نظام تشغيل واحد ضمن نظام تشغيل آخر، من الضروري ضمان التفاعل الخالي من الصراعات بين أساليب إدارة العمليات في أنظمة تشغيل مختلفة.

طرق تنفيذ بيئات البرمجيات التطبيقية

اعتمادا على الهندسة المعمارية:

1. بيئة البرامج التطبيقية في شكل تطبيق (الطبقة العليا من نواة نظام التشغيل الأصلي).

وضع المستخدم للتشغيل، وترجمة مكالمات النظام (مكالمات API) إلى مكالمات نظام التشغيل "الأصلي". يتوافق مع نظام التشغيل الكلاسيكي متعدد الطبقات (Unix، Windows).

2. وجود عدة بيئات تطبيقية تعمل بشكل متساوي. كل منها على شكل طبقة منفصلة من اللب.

وضع التشغيل المميز. تصل واجهة برمجة التطبيقات (API) إلى وظائف طبقة نظام التشغيل الأساسية (المميزة). النظام مكلف بالتعرف على المكالمة وتكييفها. مطلوب عدد كبير منموارد. يتم تمرير مجموعة من الخصائص التعريفية إلى النواة للتعرف عليها.

3. المبدأ النووي الصغير.

تم تصميم أي بيئة تطبيق كخادم منفصل لوضع المستخدم. تقوم التطبيقات التي تستخدم واجهات برمجة التطبيقات بإجراء مكالمات النظام إلى بيئة التطبيق المقابلة من خلال النواة الدقيقة. تقوم بيئة التطبيق بمعالجة الطلب وإرجاع النتيجة من خلال النواة الدقيقة. يمكن استخدام وظائف Microkernel. من الممكن الوصول إلى الموارد الأخرى عدة مرات (أثناء تشغيل النواة الدقيقة).

واجهات نظام التشغيل

واجهة نظام التشغيلهو نظام برمجة التطبيقات. يتم تنظيمها باستخدام معايير (POSIX، ISO).

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

يتم استدعاء مجموعة من هذه الوحدات مترجم. يقوم بتنفيذ المعجم والتحليل ويقوم إما بتنفيذ الأمر نفسه أو تمريره إلى واجهة برمجة التطبيقات.

2. واجهة برمجة التطبيقات- مصمم لتزويد البرامج التطبيقية بموارد نظام التشغيل وتنفيذ وظائف أخرى. تصف واجهة برمجة التطبيقات (API) مجموعة من الوظائف والإجراءات التي تنتمي إلى نواة نظام التشغيل والوظائف الإضافية. يستخدم API برامج النظامسواء داخل نظام التشغيل أو خارجه، باستخدام برامج التطبيقات من خلال بيئة برمجة.

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

واجهات نظام التشغيل Linux:

· البرمجيات (بدون وسطاء - تنفيذ مكالمات النظام فعلياً)؛

· سطر الأوامر(الوسيط هو غلاف مترجم Shell الذي يعيد توجيه المكالمة)؛

· الرسومية (الوسطاء – القشرة + القشرة الرسومية).

نظام الملفات

نظام الملفات هو جزء من نظام التشغيل المصمم لتزويد المستخدمين واجهة سهلة الاستخدامالعمل مع الملفات والتأكد من استخدام الملفات المخزنة على الوسائط الخارجية ( الأقراص الصلبة+ RAM) من قبل العديد من المستخدمين والعمليات.

وفقا لتكوين FS:

· مجمل كافة الملفات الموجودة على القرص وعلى جميع الوسائط،

· مجموعات من هياكل البيانات المستخدمة لإدارة الملفات، مثل أدلة الملفات، واصفات الملفات، وجداول تخصيص مساحة القرص المجانية والمستعملة،

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

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

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

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

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

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

يعتمد نوع التوافق المحتمل على العديد من العوامل. وأهمها بنية المعالج. إذا كان المعالج يستخدم نفس مجموعة التعليمات (ربما مع الإضافات، كما في حالة كمبيوتر IBM: المجموعة القياسية + الوسائط المتعددة + الرسومات + الدفق) ونفس نطاق العناوين، فيمكن تحقيق التوافق الثنائي بكل بساطة. وللقيام بذلك يجب استيفاء الشروط التالية:

  • يجب أن يدعم نظام التشغيل واجهة برمجة التطبيقات (API) التي يستخدمها التطبيق؛
  • يجب أن تتوافق البنية الداخلية لملف التطبيق القابل للتنفيذ مع بنية الملفات القابلة للتنفيذ لنظام التشغيل المحدد.

إذا كانت المعالجات لها بنيات مختلفة، فبالإضافة إلى الشروط المذكورة أعلاه، فمن الضروري تنظيم مضاهاة الكود الثنائي. على سبيل المثال، يتم استخدام محاكاة أوامر معالج Intel على معالج Motorola 680x0 لجهاز كمبيوتر Macintosh على نطاق واسع. يقوم محاكي البرنامج في هذه الحالة بجلب تعليمات ثنائية من معالج Intel بشكل تسلسلي وتنفيذ روتين مكافئ مكتوب في التعليمات من معالج Motorola. نظرًا لأن معالج Motorola لا يحتوي على نفس السجلات والأعلام ووحدة الحساب الحسابي (ALU) الداخلية وما إلى ذلك، كما هو الحال في معالجات Intel، فيجب عليه أيضًا محاكاة (محاكاة) كل هذه العناصر باستخدام السجلات أو الذاكرة الخاصة به.

هذه مهمة بسيطة ولكنها بطيئة جدًا، حيث يتم تنفيذ تعليمات Intel الفردية بشكل أسرع بكثير من تسلسل معالج Motorola الذي يحاكيها. الحل في مثل هذه الحالات هو استخدام ما يسمى ببيئات البرامج التطبيقية أو بيئات التشغيل. أحد مكونات هذه البيئة هو مجموعة وظائف API التي يوفرها نظام التشغيل لتطبيقاته. لتقليل الوقت الذي يستغرقه تنفيذ البرامج الأجنبية، تحاكي بيئات التطبيقات استدعاءات وظائف المكتبة.

تنبع فعالية هذا النهج من حقيقة أن معظم البرامج اليوم تعمل ضمن واجهات المستخدم الرسومية (واجهات المستخدم الرسومية) مثل Windows أو MAC أو UNIX Motif، حيث تقضي التطبيقات 60-80% من وقتها في تنفيذ وظائف واجهة المستخدم الرسومية واستدعاءات مكتبة نظام التشغيل الأخرى. إن خاصية التطبيقات هذه هي التي تسمح لبيئات التطبيقات بالتعويض عن مقدار الوقت الكبير الذي تقضيه في محاكاة كل برنامج على حدة. تشتمل بيئة تطبيقات البرامج المصممة بعناية على مكتبات تحاكي مكتبات واجهة المستخدم الرسومية، ولكنها مكتوبة برمز أصلي. وبالتالي، يتم تحقيق تسريع كبير في تنفيذ البرامج باستخدام API لنظام تشغيل آخر. يُطلق على هذا الأسلوب اسم الترجمة، لتمييزه عن العملية الأبطأ المتمثلة في محاكاة أمر واحد في كل مرة.

على سبيل المثال، بالنسبة لبرنامج Windows الذي يعمل على نظام Macintosh، عند تفسير أوامر معالج Intel أداءقد تكون منخفضة جدا. ولكن عند استدعاء وظيفة واجهة المستخدم الرسومية، أو فتح نافذة، وما إلى ذلك، يمكن لوحدة نظام التشغيل التي تنفذ بيئة تطبيقات Windows اعتراض هذا الاستدعاء وإعادة توجيهه إلى روتين فتح النافذة المعاد ترجمته لمعالج Motorola 680x0. ونتيجة لذلك، في مثل هذه الأقسام من التعليمات البرمجية، يمكن أن تصل سرعة البرنامج (وربما تتجاوز) سرعة العمل على معالجه الأصلي.

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

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

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

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

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

يتمتع هذا النهج في تصميم بيئات تطبيقات متعددة بجميع مزايا وعيوب الهندسة النووية الدقيقة، على وجه الخصوص:

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

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

1.9. الأجهزة الافتراضية كنهج حديث لتنفيذ بيئات التطبيقات المتعددة

نشأ مفهوم "مراقبة الآلة الافتراضية" (VMM) في أواخر الستينيات كبرنامج مستوى التجريد، والتي قسمت منصة الأجهزة إلى عدة أجهزة افتراضية. كانت كل واحدة من هذه الأجهزة الافتراضية (VMs) مشابهة جدًا للآلة المادية الأساسية التي كانت موجودة بالفعل برمجةيمكن تنفيذها عليه دون تغيير. في ذلك الوقت، مشاكل الحوسبة عامتم حلها على حاسبات كبيرة باهظة الثمن (مثل IBM/360)، وأشاد المستخدمون بقدرة VMM على توزيع الموارد النادرة بين تطبيقات متعددة.

في الثمانينات والتسعينات، انخفضت التكلفة بشكل ملحوظ معدات الحاسوبوفعالة نظام تشغيل متعدد المهاممما قلل من قيمة MVM في نظر المستخدمين. أفسحت الحواسيب الكبيرة المجال لأجهزة الكمبيوتر الصغيرة ثم أجهزة الكمبيوتر الشخصية، ولم تعد هناك حاجة إلى أجهزة VMM. ونتيجة لذلك، اختفوا ببساطة من هندسة الكمبيوتر. المعداتلتنفيذها بفعالية. بحلول نهاية الثمانينات، في العلوم والصناعة، كان يُنظر إلى MVMs على أنها ليست أكثر من فضول تاريخي.

اليوم عادت MVM إلى دائرة الضوء مرة أخرى. تقوم شركات Intel وAMD وSun Microsystems وIBM بإنشاء استراتيجيات المحاكاة الافتراضية، ويجري تطوير الأساليب القائمة على الأجهزة الافتراضية في المختبرات العلمية والجامعات لحل مشاكل التنقل والأمن وسهولة الإدارة. ماذا حدث بين استقالة MVM وإحيائها؟

في التسعينيات، بدأ الباحثون في جامعة ستانفورد باستكشاف إمكانية استخدام الأجهزة الافتراضية للتغلب على قيود الأجهزة وأنظمة التشغيل. نشأت مشاكل مع أجهزة الكمبيوتر ذات المعالجة المتوازية واسعة النطاق (المعالجة المتوازية الضخمة، MPP)، والتي كانت صعبة البرمجة ولا يمكنها تشغيل نظام التشغيل الحالي. لقد وجد الباحثون أنه باستخدام الأجهزة الافتراضية، يمكنهم جعل هذه البنية الغريبة مشابهة بدرجة كافية للمنصات الحالية للاستفادة من أنظمة التشغيل الجاهزة. ومن هذا المشروع جاء الأشخاص والأفكار التي أصبحت الصندوق الذهبي لشركة VMware (www.vmware.com)، المورد الأول لأجهزة VMM لأجهزة الكمبيوتر ذات الأسواق الكبيرة.

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

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

حاليًا، لم تصبح MVM وسيلة لتنظيم المهام المتعددة، كما كان من المفترض أن تكون في السابق، بل أصبحت حلاً لمشاكل ضمان الأمان والتنقل والموثوقية. من نواحٍ عديدة، يمنح VMM منشئي أنظمة التشغيل القدرة على تطوير وظائف غير ممكنة في أنظمة التشغيل المعقدة الحالية. يتم تنفيذ ميزات مثل الترحيل والأمان بسهولة أكبر على مستوى VMM، مما يدعم التوافق مع الإصدارات السابقة لنشر ابتكارات نظام التشغيل مع الحفاظ على التطورات القديمة.

المحاكاة الافتراضية هي تقنية متطورة. بشكل عام، تسمح لك المحاكاة الافتراضية بفصل البرامج عن البنية التحتية الأساسية للأجهزة. في الواقع، فهو يقطع الاتصال بين مجموعة معينة من البرامج وجهاز كمبيوتر معين. يتم فصل شاشة الجهاز الظاهري برمجةمن الأجهزة ويشكل مستوى متوسطًا بين البرامج قيد التشغيل الأجهزة الظاهريةوالأجهزة. يسمح هذا المستوى لـ VMM بالتحكم الكامل في استخدام موارد الأجهزة أنظمة التشغيل الضيف (GuestOS)، والتي يتم تنفيذها على VM.

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

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

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

يتوسط VMM جميع التفاعلات بين VM والأجهزة الأساسية، ويدعم تنفيذ العديد من الأجهزة الافتراضية على منصة أجهزة واحدة ويضمن عزلها الموثوق. يسمح لك VMM بتجميع مجموعة من الأجهزة الافتراضية ذات متطلبات الموارد المنخفضة على جهاز كمبيوتر منفصل، مما يقلل من تكلفة المعداتوالحاجة إلى مساحة الإنتاج.

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

يجب أن يقوم جهاز VMM بتوصيل واجهة الأجهزة بجهاز VM مع الحفاظ على التحكم الكامل فيه آلة قاعدةوإجراءات التفاعل مع أجهزته. لتحقيق هذا الهدف، هناك طرق مختلفة تعتمد على بعض التنازلات التقنية. عند البحث عن مثل هذه التنازلات، يتم أخذ المتطلبات الأساسية لأجهزة MVM في الاعتبار: التوافق، أداءوالبساطة. يعد التوافق أمرًا مهمًا لأن الفائدة الرئيسية لـ VMM هي قدرته على تشغيل التطبيقات القديمة. أداءيحدد مقدار الحمل الزائد للمحاكاة الافتراضية - يجب تنفيذ البرامج الموجودة على الجهاز الافتراضي بنفس سرعة الجهاز الحقيقي. تعد البساطة ضرورية لأن فشل VVM سيؤدي إلى فشل كافة الأجهزة الافتراضية التي تعمل على الكمبيوتر. على وجه الخصوص، يتطلب العزل الموثوق به أن يكون VMM خاليًا من الأخطاء التي يمكن للمهاجمين استخدامها لتدمير النظام.

بدلاً من الاضطرار إلى التعامل مع إعادة صياغة معقدة لكود نظام التشغيل الضيف، يمكنك إجراء بعض التغييرات على نظام التشغيل المضيف عن طريق تغيير بعض الأجزاء الأكثر إزعاجًا في النواة. ويسمى هذا النهج Paravirtualization. من الواضح أنه في هذه الحالة، يمكن للمؤلف فقط تكييف نظام التشغيل kernel، وعلى سبيل المثال، لا تظهر Microsoft أي رغبة في تكييف Windows 2000 kernel الشهير مع واقع الأجهزة الافتراضية المحددة.

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

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

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

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

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

التوافق وبيئات التطبيقات المتعددة

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

التوافق الثنائي والمصدر

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

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

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

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

يجب أن يدعم نظام التشغيل الاستدعاءات إلى وظائف واجهة برمجة التطبيقات (API) التي يحتوي عليها التطبيق؛

يجب أن تتطابق البنية الداخلية لملف التطبيق القابل للتنفيذ مع بنية الملفات القابلة للتنفيذ لنظام التشغيل.

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

يعد إنشاء بيئة تطبيق كاملة متوافقة تمامًا مع بيئة نظام تشغيل آخر مهمة ترتبط ارتباطًا وثيقًا ببنية نظام التشغيل. هناك خيارات متعددة لبناء بيئات تطبيقات متعددة، تختلف في ميزات الحلول المعمارية والوظائف التي توفر درجات متفاوتة من إمكانية نقل التطبيق.


يعتمد أحد الخيارات الأكثر وضوحًا لتنفيذ بيئات التطبيقات المتعددة على بنية نظام التشغيل القياسية متعددة المستويات ويوفر ترجمة لاستدعاءات النظام.

في الشكل 6، يدعم نظام التشغيل OS1، بالإضافة إلى تطبيقاته، تطبيقات من نظامي التشغيل OS2 وOS3.

ولهذا الغرض، يحتوي على تطبيقات خاصة - بيئات برامج التطبيقات - التي تترجم واجهات أنظمة التشغيل "الأجنبية" API OS2 وAPI OS3 إلى واجهة نظام التشغيل الخاص بها - API OS1.

الشكل 6 - بيئات البرامج التطبيقية التي تترجم مكالمات النظام

في تجسيد آخر لبيئات التطبيقات المتعددة، يحتوي نظام التشغيل على العديد من واجهات برمجة التطبيقات النظيرة (الشكل 7). في المثال الموضح، يدعم نظام التشغيل تطبيقات OS1 وOS2 وOS3.

وللقيام بذلك، توجد واجهات برامج التطبيق لجميع أنظمة التشغيل هذه مباشرة في مساحة نواة النظام: API OS1، وAPI OS2، وAPI OS3.

الشكل 7 - تنفيذ التوافق بناءً على واجهات برمجة تطبيقات نظيرة متعددة

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

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

يتمتع هذا النهج في تصميم بيئات تطبيقات متعددة بجميع مزايا وعيوب بنية النواة الدقيقة، على وجه الخصوص:

من السهل جدًا إضافة بيئات التطبيقات واستبعادها، وذلك نتيجة للتوسعة الجيدة لأنظمة تشغيل النواة الدقيقة؛

يتم التعبير عن الموثوقية والاستقرار في حقيقة أنه في حالة فشل إحدى بيئات التطبيق، تظل جميع البيئات الأخرى قيد التشغيل؛

يؤثر الأداء المنخفض لأنظمة تشغيل النواة الدقيقة على سرعة بيئات التطبيقات، وبالتالي سرعة تنفيذ التطبيق.

الشكل 8 - نهج Microkernel لتنفيذ بيئات التطبيقات المتعددة

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