0 تصويتات
منذ في تصنيف البرمجة بواسطة admin6 (139ألف نقاط)
ما الفرق بين Concurrency و Parallelism؟

1 إجابة واحدة

0 تصويتات
منذ بواسطة admin6 (139ألف نقاط)

الفرق بين Concurrency و Parallelism

الفرق الأساسي بين Concurrency و Parallelism يكمن في كيفية إدارة وتنفيذ المهام، فـ Concurrency تعني القدرة على التعامل مع عدة مهام في نفس الوقت من خلال التبديل السريع بينها، أما Parallelism فهي تنفيذ المهام المتعددة فعليًا في الوقت ذاته على أنوية معالجة مختلفة أو معالجات متعددة.

ما هو Concurrency؟

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

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

ما هو Parallelism؟

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

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

كيف يختلفان بشكل عملي؟

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

في بعض الحالات، يمكن دمج التقنيتين معًا، فعلى سبيل المثال نظام تشغيل يدير عدداً من البرامج Concurrently، وكل برنامج منها يستفيد من Parallelism داخليًا على نوى المعالجة المتعددة.

...