التنفيذ (الحوسبة)
في مجال الحوسبة ، يُقصد بالتنفيذ العملية التي يتم من خلالها معالجة برنامج الحاسوب لتنفيذ الإجراءات التي يشفرها. وبينما يتبع المعالج تعليمات البرنامج، تُنتج النتائج وفقًا لدلالات تلك التعليمات. ويُستخدم مصطلح " تشغيل " عادةً كمرادف. ويُطلق على عملية بدء التنفيذ غالبًا اسم "إطلاق" أو "استدعاء"، بالإضافة إلى "تنفيذ " و "تشغيل" .
تتخذ معالجات التنفيذ أشكالاً عديدة. يمكن تنفيذ برنامج مكتوب بلغة الآلة عبر واجهة برمجة الحاسوب، حيث يتضمن التنفيذ تكرار دورة جلب-فك تشفير-تنفيذ لكل تعليمة برمجية تُنفذها وحدة التحكم . كما يمكن تنفيذ شفرة المصدر بواسطة برنامج مترجم . ويمكن تنفيذ البرنامج في عملية دفعية دون تدخل بشري، أو يمكن للمستخدم كتابة الأوامر في جلسة تفاعلية .
العلاقة بالتنمية
تؤثر جوانب التنفيذ على تطوير البرمجيات وتوجهه .
استقلالية المنصة
غالباً ما تعتمد البرامج على خدمات خارجية مثل بيئة التشغيل ومكتبة وقت التشغيل المصممة خصيصاً لبيئة المضيف لتوفير خدمات يمكنها فصل الملف التنفيذي عن التلاعب المباشر بالكمبيوتر وملحقاته، وبالتالي توفير حل أكثر استقلالية عن النظام الأساسي.
خطأ وقت التشغيل
يُكتشف خطأ وقت التشغيل بعد أو أثناء تنفيذ البرنامج، بينما يُكتشف خطأ وقت الترجمة بواسطة المُترجم قبل تنفيذ البرنامج. عادةً ما يتم التحقق من أنواع البيانات ، وتخصيص السجلات ، وتوليد التعليمات البرمجية ، وتحسينها في وقت الترجمة، ولكن قد يتم ذلك في وقت التشغيل اعتمادًا على لغة البرمجة والمُترجم المُستخدمين. توجد العديد من أخطاء وقت التشغيل الأخرى، وتختلف طريقة معالجتها باختلاف لغات البرمجة ، مثل أخطاء القسمة على صفر ، وأخطاء النطاق، وأخطاء تجاوز حدود المصفوفة ، وأخطاء التجاوز الحسابي ، وأنواع مختلفة من أخطاء التجاوز والنقص ، والعديد من أخطاء وقت التشغيل الأخرى التي تُعتبر عمومًا أخطاء برمجية، والتي قد يتم اكتشافها ومعالجتها أو لا بواسطة أي لغة برمجة.
تدعم معالجة الاستثناءات التعامل مع أخطاء وقت التشغيل، موفرةً طريقةً منظمةً لاكتشاف الحالات غير المتوقعة، بالإضافة إلى الأخطاء المتوقعة أو النتائج غير المعتادة، دون الحاجة إلى التحقق من الأخطاء المضمنة المطلوبة في اللغات التي لا تدعم هذه الميزة. وتتيح التطورات الحديثة في محركات وقت التشغيل معالجةً آليةً للاستثناءات ، توفر معلومات تصحيح الأخطاء حول السبب الجذري لكل استثناء ذي أهمية، ويتم تنفيذها بشكل مستقل عن شفرة المصدر، من خلال ربط برنامج خاص بمحرك وقت التشغيل.
تصحيح الأخطاء
بعض عمليات تصحيح الأخطاء لا يمكن إجراؤها إلا أثناء التشغيل (أو تكون أكثر كفاءة ودقة عند إجرائها). ومن الأمثلة على ذلك أخطاء المنطق وفحص حدود المصفوفات . لهذا السبب، لا تُكتشف بعض أخطاء البرمجة إلا عند اختبار البرنامج في بيئة إنتاجية باستخدام بيانات حقيقية، على الرغم من وجود عمليات فحص متطورة أثناء الترجمة واختبارات ما قبل الإصدار. في هذه الحالة، قد يواجه المستخدم النهائي رسالة "خطأ أثناء التشغيل".
بيئة التنفيذ
بيئة التنفيذ هي السياق الذي يعمل فيه البرنامج. فيما يلي بعض سمات البيئة الشائعة الاستخدام. وهي ليست منفصلة تمامًا، إذ يمكن وصف بيئة واحدة بأكثر من سمة من هذه السمات.
المضيف الأصلي
يُعدّ التنفيذ الأصلي للمضيف سيناريو شائعًا، لا سيما تاريخيًا. ويتضمن هذا السيناريو التحكم في الحاسوب عبر تعليمات وحدة المعالجة المركزية (CPU). تقوم وحدة المعالجة المركزية بتفسير البرنامج على مستوى تعليمات الآلة .
تبديل السياق
يدعم تبديل السياق ، وهو ميزة في أنظمة التشغيل متعددة المهام ، التنفيذ المتزامن لعدة ملفات تنفيذية أصلية خاصة بالنظام المضيف. لاستبدال ملف تنفيذي (يُحدد بواسطة مُعرّف سياق العملية ) من بيئة التنفيذ، يحفظ نظام التشغيل بيانات سياق التنفيذ الخاصة به، مثل عناوين صفحات الذاكرة وقيم السجلات. ولإعادته، يستعيد نظام التشغيل البيانات. [ 1 ] : 3.3 [ 2 ]
في نظام تشغيل مبني على لينكس، تُحفظ مجموعة من البيانات المخزنة في السجلات عادةً في واصف العملية في الذاكرة لتنفيذ تبديل السياق. [ 1 ] كما تُستخدم معرّفات العملية (PCIDs).
تحميل
عند بدء تشغيل برنامج، يقوم مُحمِّل بتهيئة الذاكرة وربط البرنامج بأي مكتبات مرتبطة ديناميكيًا يحتاجها، ثم يبدأ التنفيذ من نقطة دخول البرنامج . في بعض الحالات، قد تُنفَّذ هذه المهام بواسطة بيئة تشغيل اللغة، على الرغم من أن هذا غير شائع في اللغات الشائعة على أنظمة التشغيل الاستهلاكية.
نظام التشغيل
نظام التشغيل هو طبقة برمجية تُقدّم خدماتٍ لملف تنفيذي. وهو جزء من نموذج التنفيذ . وبالمثل، فإن بيئة التشغيل (RTE) هي كل ما يمكن للبرنامج التفاعل معه، بما في ذلك نظام التشغيل.
تتضمن معظم لغات البرمجة نظام تشغيل. وقد يعالج هذا النظام مسائل مثل إدارة الذاكرة ، والوصول إلى المتغيرات ، وآليات تمرير المعاملات، والوصول إلى نظام التشغيل ، وغير ذلك. ويضع المترجم افتراضات بناءً على نظام التشغيل المحدد لتوليد الشفرة. وعادةً ما يكون لنظام التشغيل مسؤولية جزئية عن إعداد وإدارة المكدس والكومة ، وقد يتضمن ميزات مثل جمع البيانات المهملة ، والترابط، أو غيرها من الميزات الديناميكية للغة. [ 3 ]
دورة التعليم
دورة التعليمات هي الدورة التي يتبعها المعالج المركزي من لحظة بدء التشغيل وحتى إيقاف تشغيل الحاسوب لمعالجة التعليمات. وهي تتكون من ثلاث مراحل رئيسية: مرحلة جلب التعليمات، ومرحلة فك التشفير، ومرحلة التنفيذ.

في وحدات المعالجة المركزية الأبسط، تُنفَّذ دورة التعليمات بالتسلسل، حيث تُعالَج كل تعليمة قبل بدء التعليمة التالية. أما في معظم وحدات المعالجة المركزية الحديثة، فتُنفَّذ دورات التعليمات بالتزامن ، وغالبًا بالتوازي ، من خلال خط أنابيب التعليمات : تبدأ معالجة التعليمة التالية قبل انتهاء معالجة التعليمة السابقة، وهو أمر ممكن لأن الدورة مُقسَّمة إلى خطوات منفصلة. [ 4 ]
افتراضي
توفر الآلة الافتراضية (VM) وظائف جهاز كمبيوتر فعلي، يتم تنفيذها جزئيًا أو كليًا كطبقة برمجية ، بدلًا من الوصول المباشر إلى النظام المضيف. فمن خلال المحاكاة الافتراضية ، توفر الآلة الافتراضية نظام كمبيوتر مستقلًا منطقيًا عن الكمبيوتر المضيف والآلات الافتراضية الأخرى الموجودة عليه، وذلك عبر طبقة برمجية رقيقة نسبيًا تسمح بأداء عالٍ نسبيًا، ولكن على حساب التقيد بتقنية النظام المضيف. أما من خلال المحاكاة ، فتُوفر الآلة الافتراضية جهاز كمبيوتر منفصلًا قد يختلف اختلافًا كبيرًا عن تقنية نظام الكمبيوتر المضيف، ولكن عادةً ما يكون ذلك على حساب أداء أبطأ نسبيًا نظرًا لطبقة برمجية سميكة نسبيًا.
تختلف تقنيات الآلات الافتراضية باختلاف نطاقها. توفر آلة النظام الافتراضية (المعروفة أيضًا بآلة المحاكاة الافتراضية الكاملة ) الوظائف اللازمة لتشغيل نظام تشغيل مستقل . يستخدم برنامج إدارة الآلات الافتراضية التنفيذ الأصلي لمشاركة وإدارة الأجهزة، مما يسمح بوجود بيئات متعددة معزولة عن بعضها البعض، ولكنها موجودة على نفس الجهاز الفعلي. تستخدم برامج إدارة الآلات الافتراضية الحديثة المحاكاة الافتراضية المدعومة بالأجهزة ، وهي أجهزة مخصصة للمحاكاة الافتراضية، وخاصةً من وحدات المعالجة المركزية للمضيف. في المقابل، تقوم آلة العمليات الافتراضية (مثل بيئات تشغيل .NET و Java و Python ) بتشغيل برنامج حاسوبي في بيئة مستقلة عن النظام الأساسي.
صُممت بعض برامج المحاكاة، مثل QEMU وبرامج محاكاة أجهزة ألعاب الفيديو ، لمحاكاة (أو "تقليد افتراضي") بنى أنظمة مختلفة، مما يسمح بتشغيل تطبيقات البرامج وأنظمة التشغيل المصممة لمعالجات أو بنى أخرى. تتيح المحاكاة الافتراضية على مستوى نظام التشغيل تقسيم موارد الحاسوب عبر النواة . ولا تُستخدم هذه المصطلحات بشكل متبادل في جميع الحالات.
مترجم
يُنفّذ المفسر التعليمات البرمجية بصيغة قابلة للتنفيذ المباشر، حيث تكون جميع خطوات الإعداد اللازمة للبيئة قد أُنجزت مسبقًا. ويمكن تنفيذ الملف التنفيذي مباشرةً بواسطة وحدة المعالجة المركزية (بما في ذلك وحدة المعالجة المركزية الافتراضية). ويمكن تنفيذ التعليمات البرمجية المصدرية في بيئة تدعمها. على سبيل المثال، تُنفّذ لغتا جافا سكريبت وبايثون بواسطة برامج المفسر التي لا تتطلب عملية ترجمة.
انظر أيضاً
- ملف تنفيذي – بيانات تجعل الحاسوب يتبع التعليمات المحددة
- عداد البرنامج – سجل يخزن مكان تنفيذ المعالج للبرنامج.
- مرحلة دورة حياة البرنامج
مراجع
- 1 2 بوفيه، دانيال ب.؛ سيساتي، ماركو (2005). فهم نواة لينكس (3 ed.). سيفاستوبول، كاليفورنيا: أورايلي. رقم ISBN 0-596-00565-2. OCLC 64549743 .
- ↑ "الفرق بين التبديل وتبديل السياق" . GeeksforGeeks . 10-06-2021 . تم الاطلاع عليه بتاريخ 10-08-2022 .
- ↑ أهو، ألفريد ف .؛ لام، مونيكا سين-لينغ ؛ سيثي، رافي ؛ أولمان، جيفري ديفيد (2007). المترجمات: المبادئ والتقنيات والأدوات (الطبعة الثانية ). بوسطن، ماساتشوستس، الولايات المتحدة الأمريكية: بيرسون للتعليم . ص 427. ISBN 978-0-321-48681-3.
- ↑ كريستال تشين، جريج نوفيك، وكيرك شيمانو (2000). "الربط بين خطوط الأنابيب" . تم الاطلاع عليه بتاريخ 26-06-2019 .
- مصطلحات الحوسبة
