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

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

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

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

عملية

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

قابل للتنفيذ

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

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

سياق التنفيذ

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

تبديل السياق

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

في أنظمة التشغيل المستندة إلى Linux، يتم عادةً حفظ مجموعة من البيانات المخزنة في السجلات في موصوف عملية في الذاكرة لتنفيذ تبديل السياق. [3] تُستخدم أيضًا معرفات PCID.

وقت التشغيل

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

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

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

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

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

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

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

نظام التشغيل

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

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

دورة تعليمية

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

هذا رسم تخطيطي بسيط يوضح المراحل الفردية لدورة الجلب-فك التشفير-التنفيذ.

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

مترجم

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

آلة افتراضية

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

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

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

انظر أيضا

مراجع

  1. ^ "قابل للتنفيذ". قاموس ميريام وبستر الإلكتروني . ميريام وبستر . تم الاسترجاع في 2008-07-19 .
  2. ^ "تعليمات الآلة". GeeksforGeeks . 2015-11-03 . تم الاسترجاع في 2019-09-18 .
  3. ^ ab Bovet, Daniel P. (2005). Understanding the Linux Kernel. Marco Cesati (3 ed.). Sevastopol, CA: O'Reilly. ISBN 0-596-00565-2. OCLC  64549743.
  4. ^ "الفرق بين التبديل والتبديل بين السياقات". GeeksforGeeks . 2021-06-10 . تم الاسترجاع في 2022-08-10 .
  5. ^ Aho, Alfred V .; Lam, Monica Sin-Ling ; Sethi, Ravi ; Ullman, Jeffrey David (2007). Compilers: Principles, Techniques and Tools (2nd ed.). Boston, MA, US: Pearson Education . ص. 427. ISBN 978-0-321-48681-3.
  6. ^ Crystal Chen, Greg Novick and Kirk Shimano (2000). "Pipelining" . تم الاسترجاع في 2019-06-26 .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Execution_(computing)&oldid=1250519964#Runtime"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate