موصى به, 2021

اختيار المحرر

الفرق بين تعدد المهام و Multithreading في نظام التشغيل

في هذه المقالة ، سنناقش الاختلافات بين تعدد المهام و Multithreading. الناس عادة ما يتم الخلط بين هذه الشروط. من ناحية ، تعد خاصية تعدد المهام امتدادًا منطقيًا لتعدد الأنظمة ، ومن ناحية أخرى ، يعد تعدد الوسائط عملية تعدد المهام على أساس الخيط. الاختلاف الأساسي بين تعدد المهام و multithreading هو أن Multitasking يسمح لـ CPU بتنفيذ مهام متعددة (برنامج ، عملية ، مهمة ، مؤشرات ترابط) في نفس الوقت ، بينما يسمح Multithreading لعدة سلاسل من نفس العملية بتنفيذها في نفس الوقت. دعونا نناقش الاختلافات بين Multitasking و Multithreading بمساعدة مخطط المقارنة الموضح أدناه.

رسم بياني للمقارنة

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

تعريف تعدد المهام

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

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

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

تعريف متعدد

يختلف Multithreading عن تعدد المهام ، بمعنى أن تعدد المهام يسمح بمهام متعددة في نفس الوقت ، بينما يسمح Multithreading لعدة خيوط لمهمة واحدة (برنامج ، عملية) ليتم معالجتها بواسطة وحدة المعالجة المركزية في نفس الوقت.

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

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

الاختلافات الرئيسية بين تعدد المهام و Multithreading في نظام التشغيل

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

استنتاج:

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

Top