قائمة طعام
مجاني
التسجيل
الصفحة الرئيسية  /  البرامج الثابتة/ محاضرة: طرق تنفيذ بيئات البرامج التطبيقية. أهداف وتمارين هندسة أنظمة التشغيل والغرض منها ووظيفتها

محاضرة: طرق تنفيذ بيئات البرامج التطبيقية. أهداف وتمارين هندسة أنظمة التشغيل والغرض منها ووظيفتها

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

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

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

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

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

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

إذا كانت المعالجات لها بنيات مختلفة ، فبالإضافة إلى الشروط المذكورة ، من الضروري تنظيم محاكاة الكود الثنائي. على سبيل المثال ، يتم استخدام محاكاة أوامر معالج 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. نتيجة لذلك ، في مثل هذه الأجزاء من الكود ، يمكن أن تصل سرعة البرنامج (وربما تتجاوز) سرعة العمل على المعالج الخاص به.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

أرز. 3.13. بيئات برمجة التطبيقات التي تترجم استدعاءات النظام

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

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

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

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

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

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

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

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

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

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

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

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

الاستنتاجات:

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

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

§ النواة ، باعتبارها عنصرًا هيكليًا لنظام التشغيل ، يمكن بدورها أن تتحلل منطقيًا إلى الطبقات التالية (بدءًا من الأسفل):

§ مكونات نظام التشغيل المعتمدة على الآلة ؛

§ الآليات الأساسية للنواة؛

§ مديري الموارد.

§ واجهة نداء النظام.

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

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

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

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

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

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

المهام والتمارين

1. أي من المصطلحات التالية مترادفة؟

§ نظام متميز

§ وضع حماية؛

§ وضع المشرف ؛

§ وضع المستخدم ؛

§ الوضع الحقيقي ؛

§ وضع النواة.

2. هل من الممكن ، عند تحليل الكود الثنائي للبرنامج ، أن نستنتج أنه لا يمكن تنفيذه في وضع المستخدم؟

3. ما هي الاختلافات بين المعالج في الوضع المتميز والمستخدم؟

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

5. ما هي الخطوات المتبعة في تطوير متغير نظام تشغيل محمول لمنصة أجهزة جديدة؟

6. وصف كيفية تفاعل التطبيقات مع نظام التشغيل الذي يحتوي على بنية microkernel.

7. ما هي الخطوات المتبعة في تنفيذ استدعاء النظام في نظام تشغيل microkernel ونظام تشغيل مع نواة متجانسة؟

8. هل يمكن لبرنامج تمت محاكاته على معالج "خارجي" أن يعمل بشكل أسرع من معالج "أصلي"؟

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

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

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

حسب التصميم:

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

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

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

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

3. مبدأ Microkernel.

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

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

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

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

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

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

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

واجهات Linux OS:

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

· سطر الأوامر (الوسيط - غلاف مترجم شل ، إعادة توجيه المكالمة) ؛

رسوم بيانية (وسطاء - شل + قشرة رسومية).

نظام الملفات

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

من خلال تكوين FS:

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

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

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

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

ضع في اعتبارك بنية نظام برمجة تجريدي متعدد اللغات ومفتوح ومترجم وعملية تطوير التطبيقات في هذه البيئة (الشكل 1.4).

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

ترجمة البرنامج المصدر هي إجراء لتحويل الوحدة المصدر إلى نموذج كائن وسيط يسمى. تتضمن الترجمة عمومًا المعالجة المسبقة (المعالجة المسبقة) والتجميع.

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

توجيهات المعالج المسبق هي سلاسل مميزة بأحرف خاصة (عادةً٪ ، # ، &) تحتوي على الاختصارات والرموز وما إلى ذلك. التركيبات المضمنة في البرنامج المصدر قبل معالجتها بواسطة المترجم.

يمكن أن تكون البيانات الخاصة بتوسيع النص المصدر قياسية أو معرفة من قبل المستخدم أو مضمنة في مكتبات نظام نظام التشغيل.

يعد التجميع عمومًا عملية متعددة الخطوات تتضمن المراحل التالية:

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

تفسير- التحقق من صحة التركيبات التي يستخدمها المبرمج في إعداد النص ؛

التحليل الدلالي- تحديد التناقضات في أنواع وهياكل المتغيرات والوظائف والإجراءات ؛

إنشاء كود الكائن هو المرحلة الأخيرة من الترجمة.

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

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

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

أرز. 1.4 مجردة متعدد اللغات ، مفتوح المصدر ، تجميع نظام البرمجة

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

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

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

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

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

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



الوضع المخصص

الوضع المميز

أرز. 2.7. بيئة برامج التطبيق ،
ترجمة مكالمات النظام

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

واجهات البرمجة لجميع أنظمة التشغيل هذه: API OS1 و API OS2 و
API OS3.


الوضع المخصص


ذو امتياز

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

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

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

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

نظام تشغيل خوادم التطبيقات


مخصص


ذو امتياز

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

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

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

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

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

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

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

50. ما هو الفرق بين بنية microkernel وبنية نظام التشغيل التقليدية؟

51. لماذا تعد النواة الدقيقة مناسبة تمامًا لدعم الحوسبة الموزعة؟

52. ما هو المقصود بمفهوم بيئات التطبيق المتعددة؟

53. ما هو جوهر طريقة ترجمة المكتبة؟

أسئلة التحكم

54. ما هو المصطلح المستخدم في بنية microkernel للإشارة إلى مديري الموارد الموضوعين في وضع المستخدم؟

56. لماذا تعتبر بنية microkernel لنظام التشغيل أكثر قابلية للتوسعة من نظام التشغيل الكلاسيكي؟

57. هل العمارة الدقيقة أكثر موثوقية من العمارة التقليدية؟

58. اذكر سبب انخفاض أداء بنية النواة الدقيقة عن أداء نظام التشغيل التقليدي.

60. ما هي أنواع التوافق التي تعرفها؟

61. كيف يمكنك تحقيق التوافق الثنائي للمعالجات ذات البنى المختلفة؟

62. حدد طريقة تسمح لك بتحسين أداء الكمبيوتر عند تنفيذ ملف تنفيذي "خارجي".

63. هل طريقة ترجمة مكتبة واحدة كافية للتوافق الكامل مع التطبيق؟