مهمة (حوسبة)

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

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

مصطلحات

بمعنى "وحدة التنفيذ"، في بعض أنظمة التشغيل ، تُعتبر المهمة مرادفةً للعملية ، وفي أنظمة أخرى تُعتبر مرادفةً للخيط . في التنفيذ غير التفاعلي ( المعالجة الدفعية )، تُعدّ المهمة وحدة تنفيذ ضمن وظيفة ، [ 1 ] [ 2 ] وعادةً ما تكون المهمة نفسها عملية. يشير مصطلح " تعدد المهام " في المقام الأول إلى معنى المعالجة - أي تنفيذ مهام متعددة في الوقت نفسه - ولكنه يتضمن أيضًا معنى العمل، أي تنفيذ مهام متعددة في الوقت نفسه.

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

أمثلة

في لغة برمجة جافا ، يتم دمج هذين المفهومين (وحدة العمل ووحدة التنفيذ) عند العمل مباشرة مع الخيوط، ولكن يتم تمييزهما بوضوح في إطار عمل Executors :

عند التعامل المباشر مع الخيوط، Threadتُعتبر الخيوط بمثابة وحدة عمل وآلية لتنفيذها. أما في إطار عمل المُنفِّذ، فتكون وحدة العمل وآلية التنفيذ منفصلتين. ويُعدّ مفهوم وحدة العمل، الذي يُسمى مهمة ، هو التجريد الأساسي . [ 3 ]

مصطلحات شركة IBM

كان استخدام شركة IBM لهذا المصطلح مؤثرًا، على الرغم من التأكيد على غموض المصطلح، ففي مصطلحات IBM، "المهمة" لها عشرات المعاني المحددة، بما في ذلك: [ 4 ]

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

في نظام التشغيل z/OS تحديدًا، يتم تعريفه بدقة على النحو التالي: [ 5 ]

  • "في بيئة البرمجة المتعددة أو المعالجة المتعددة، يتم التعامل مع تسلسل واحد أو أكثر من التعليمات بواسطة برنامج تحكم كعنصر من عناصر العمل الذي يتعين على الكمبيوتر إنجازه."

يُعادل مصطلح "المهمة" في أنظمة التشغيل OS/360 و z/OS تقريبًا مصطلح "العملية الخفيفة"؛ حيث تتشارك المهام في خطوة عمل واحدة مساحة عناوين. مع ذلك، في أنظمة التشغيل MVS/ESA و z/OS، قد تتمكن المهمة أو كتلة طلب الخدمة (SRB) من الوصول إلى مساحات عناوين أخرى عبر قائمة الوصول الخاصة بها.

نواة لينكس

يُستخدم مصطلح " مهمة" في نواة لينكس (على الأقل منذ الإصدار 2.6.13، [ 6 ] وحتى الإصدار 4.8 [ 7 ] ) للإشارة إلى وحدة تنفيذ، قد تتشارك موارد النظام المختلفة مع مهام أخرى. وبحسب مستوى المشاركة، يمكن اعتبار المهمة خيطًا أو عمليةً تقليدية . تُنشأ المهام باستخدام clone()استدعاء النظام، [ 8 ] حيث يُمكن للمستخدم تحديد مستوى مشاركة الموارد المطلوب.

تاريخ

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

يتمتع النموذج التسلسلي بالقدرة على معالجة مهام وظيفة واحدة بطريقة مستقلة تشبه طريقة عمل جهاز IBM 709. [ 9 ]

شاع استخدام هذا المصطلح مع إطلاق نظام التشغيل OS/360 (الذي أُعلن عنه عام 1964)، والذي تميز ببرمجة متعددة ذات عدد ثابت من المهام (MFT) وبرمجة متعددة ذات عدد متغير من المهام (MVT). في هذه الحالة، كانت المهام تُعرَّف بعمليات خفيفة الوزن، وكانت المهمة تتكون من عدد من المهام، وفي وقت لاحق، أصبح بإمكان المهام أن تحتوي على مهام فرعية (تُسمى في المصطلحات الحديثة بالعمليات الفرعية ).

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

انظر أيضاً

مراجع

  1. "ما هي المهمة؟ - تعريف من موقع WhatIs.com" . موقع WhatIs.com . تم الاطلاع عليه بتاريخ 11 يونيو 2015 .
  2. "ما هي عمليات الحاسوب؟" . liutilities.com . تم الاطلاع عليه بتاريخ 11 يونيو 2015 .
  3. بلوخ، جوشوا . جافا الفعالة ( الطبعة الثالثة). ص. 272 ، البند 68.  
  4. مصطلحات IBM: T
  5. مسرد مصطلحات واختصارات نظام التشغيل z/OS : T
  6. " " . جيثب.كوم . لينوس تورفالدس. 29 أغسطس 2005.include/linux/sched.h
  7. " " . GitHub.com . لينوس تورفالدس. 3 أكتوبر 2016.include/linux/sched.h
  8. "استنساخ، __clone2 - إنشاء عملية فرعية" . دليل مبرمج لينكس . 17 يوليو 2016. تم الاطلاع عليه في 6 نوفمبر 2016 .
  9. جيمس لاريمور ماكيني (1961). البرمجة المتعددة المتزامنة للحواسيب الإلكترونية . ص 154 .