تعدد المعالجة: دليل شامل حول أنظمة الحوسبة المتوازية

تعدد المعالجة (Multiprocessing)

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

ما هو نظام تعدد المعالجات؟

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

الفرق بين تعدد المعالجة والمعالجة المتوازية

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

أنواع تماثل المعالجات

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

1. تعدد المعالجة المتماثل (SMP)

في أنظمة Symmetric Multiprocessing (SMP)، يتم التعامل مع جميع وحدات المعالجة المركزية بالتساوي. تتشارك جميع المعالجات في الذاكرة والموارد، ويمكن لأي معالج تنفيذ أي مهمة من مهام النظام.

2. تعدد المعالجة غير المتماثل (ASMP)

في أنظمة Asymmetric Multiprocessing (ASMP)، لا تكون جميع المعالجات متساوية. غالباً ما يكون هناك معالج "رئيسي" (Master) يتحكم في النظام ويوزع المهام على المعالجات "التابعة" (Slave).

نظام المعالج الرئيسي والتابع (Master/Slave)

في هذا النظام، يتولى المعالج الرئيسي السيطرة على الحاسوب، بينما يقوم المعالج التابع بتنفيذ المهام الموكلة إليه. قد تختلف هذه المعالجات في السرعة والبنية المعمارية. على سبيل المثال، كان جهاز TRS-80 Model 16 يستخدم معالج Zilog Z80 كمعالج رئيسي عند الإقلاع، ثم ينتقل التحكم إلى معالج Motorola 68000 الذي يصبح الرئيسي، بينما يتحول Z80 إلى تابع مسؤول عن عمليات الإدخال والإخراج (I/O).

تدفقات التعليمات والبيانات (تصنيف فلين)

وفقاً لتصنيف فلين (Flynn's Taxonomy)، يمكن تقسيم أنظمة المعالجة بناءً على تدفق التعليمات والبيانات إلى:

  • SIMD (تعليمات واحدة، بيانات متعددة): تنفيذ تسلسل واحد من التعليمات على سياقات متعددة، ويستخدم بكثرة في معالجة المتجهات.
  • MISD (تعليمات متعددة، بيانات واحدة): تنفيذ تسلسلات متعددة من التعليمات على سياق واحد، ويستخدم غالباً في الأنظمة التي تتطلب موثوقية عالية (Fail-safe).
  • MIMD (تعليمات متعددة، بيانات متعددة): تنفيذ تسلسلات متعددة من التعليمات في سياقات متعددة، وهو التصنيف الذي تندرج تحته معظم أنظمة تعدد المعالجات الحديثة.

اقتران المعالجات

تُصنف الأنظمة أيضاً بناءً على كيفية اتصال المعالجات ببعضها وبالذاكرة:

  • الأنظمة شديدة الاقتران (Tightly Coupled): حيث تتشارك جميع المعالجات في ذاكرة مشتركة واحدة، مما يسهل التواصل السريع بينها.
  • الأنظمة ضعيفة الاقتران (Loosely Coupled): حيث يمتلك كل معالج ذاكرته الخاصة، ويتم التواصل بين المعالجات عبر تمرير الرسائل (Message Passing).

أسئلة شائعة

ما الفرق بين تعدد المعالجة وتعدد المهام؟

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

ما هو نظام المعالج الرئيسي والتابع؟

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

ما هي ميزة أنظمة تعدد المعالجة المتماثلة (SMP)؟

تتميز بأنها أكثر كفاءة لأنها تستخدم جميع المعالجات المتاحة بشكل متساوٍ لتنفيذ مهام النظام والمستخدم.