مرجع
آخر الزيارات

تنفيذ (حوسبة)

1٬472 كلمة•0 مشاهدة•🗒️ منذ يوم
باختصار: في علم الحاسوب، يُقصد بـ تنفيذ البرنامج ، عملية قيام الحاسوب بمعالجة برنامجٍ ما لإجراء الأفعال التي يرمز إليها. في هذه المقالة 10 أقسام: «وقت التشغيل»، «سياق التنفيذ» و«قابل للتنفيذ» وغيرها.
المحتويات
  1. وقت التشغيل
  2. سياق التنفيذ
  3. قابل للتنفيذ
  4. آلة افتراضية
  5. العملية
  6. مترجم
  7. نظام وقت التشغيل
  8. دورة تعليمية
  9. تبديل السياق
  10. تفاصيل التنفيذ

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

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

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

وقت التشغيل

من جانب آخر، وقتُ التشغيل أو مرحلةُ التشغيل أو وقت التنفيذ هي المرحلة النهائية من دورة حياة الحاسوب، حيث يتم تنفيذ الشيفرة على وحدة المعالجة المركزية (CPU) للكمبيوتر كرمز آلي . بعبارة أخرى، "وقت التشغيل" هو مرحلة تشغيل البرنامج.

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

سياق التنفيذ

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

قابل للتنفيذ

من جهة ثانية، الشفرة التنفيذية، أو المَلف التنفيذي، والذي يُشار إليه أحيانًا باسم التنفيذي أو الثنائي ، هو قائمة من التعليمات والبيانات التي تجعل الحاسوب "ينفذ المهام المشار إليها بحسب تعليمات مشفرة"، على عكس ملف البيانات الذي يجب تفسيره ( تحليله ) بواسطة برنامج ليكون ذا معنى.

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

آلة افتراضية

كذلك، تم تصميم الآلات الافتراضية للعمليات لتنفيذ برامج الكمبيوتر في بيئة مستقلة عن النظام الأساسي.

  • انظر كذلك
  • قابل للتنفيذ
  • نظام وقت التشغيل
  • مرحلة تشغيل البرنامج
  • عداد البرامج

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

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

وفي هذا السياق، تختلف الآلات الافتراضية وتُنظم حسب وظيفتها، كما هو موضح هنا:

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

العملية

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

مترجم

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

نظام وقت التشغيل

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

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

دورة تعليمية

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

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

تبديل السياق

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

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

تفاصيل التنفيذ

أخطاء التطبيق (الاستثناءات)

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

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

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

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

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