فئات برامج الكمبيوتر
- 6 دقائق
أي برنامج كمبيوتر يشمل خوارزمية حسابية ويتألف من إعلانات متغيرة، وتعيينات متغيرة، وتعبيرات، وعبارات التحكم في التدفق، والتي يتم عادة التعبير عنها جميعاً بلغة برمجة عالية المستوى، مثل Java أو C++. وقبل التنفيذ، عادةً ما يتم تحويل البرامج برمجياً ثم تحويلها إلى تعليمات برمجية/تعليمات الجهاز التي يمكن لوحدة معالجة مركزية (CPU) تشغيلها إما بشكل متسلسل أو بشكل متزامن. ويتم تشغيل أي برنامج متسلسل بترتيب البرنامج (أي تسلسل العبارة الأصلي المحدد من قبل المبرمج).
البرنامج المتزامن، في المقابل، هو مجموعة من البرامج المتسلسلة التي، أثناء التنفيذ، تتشارك في وحدة معالجة مركزية واحدة أو أكثر في الوقت المحدد. وتسمح هذه المشاركة الزمنية للبرامج المتعددة بالتناوب على استخدام أي مورد حسابي واحد. على سبيل المثال، عند وجود وحدة معالجة مركزية يمكنها تشغيل برنامج واحد فقط في كل مرة، فإن تشغيل عدة برامج متسلسلة على معالج واحد يتطلب أن يستخدم نظام التشغيل (OS) استراتيجية جدولة، مثل ترتيب دوري، لتخصيص المورد لكل برنامج لفترة زمنية محددة.
الشكل 1: تصنيفنا للبرامج
يشير المصطلح العام تطبيق،غالباً ما يكون غامضاً، إلى كل من البرامج المتسلسلة والمتزامنة، وتسمى هذه الأخيرة أحياناً برامج متوازية. وأي برنامج متوازي هو مجموعة من البرامج المتسلسلة التي تتداخل في الوقت المحدد بواسطة التشغيل على وحدات المعالجة المركزية المنفصلة. وفي أنظمة المعالجات المتعددة، مثل أجهزة الشرائح متعددة الذاكرات، تضم البرامج المتسلسلة ذات الصلة المنفذة في ذاكرات أساسية مختلفة برنامجاً موازياً. وعلى النقيض من ذلك، تمثل البرامج المتسلسلة ذات الصلة التي تشارك وحدة معالجة مركزية واحدة في الوقت المحدد برنامجاً متزامناً. وبالنسبة لهذه الوحدة، سنقوم كذلك بتمييز برنامج موازٍ يضم برامج متسلسلة متعددة تعمل على أجهزة متميزة متصلة بشبكة (مقابل الذاكرات المختلفة على جهاز واحد)، وتعرف باسم برنامج موزع. يوضح الشكل السابق تصنيف البرنامج هذا.
هناك مصطلح آخر شائع في البرمجة المتوازية/الموزعة هو معالجة متعددة، الذي يشير إلى تداخل حساب أحد البرامج مع حساب برنامج آخر. وهذا المفهوم أساسي لجميع أنظمة التشغيل الحديثة ويصف آلية الجدولة التي تمكن أي نظام تشغيل من التوفيق بين عدة برامج في وقت واحد. وقد أصبحت المعالجة المتعددة مفيدة جداً بحيث أن جميع لغات البرمجة الحديثة تقريباً تدعمها الآن من خلال بنيات متعددة العمليات.
اشتهر المصطلح "مؤشر ترابط" بواسطة Pthreads (مؤشرات ترابط POSIX)1، وهي تصميم بنيات تزامن شاع استخدامه على نطاق واسع، ولا سيما في أنظمة UNIX.2 ومؤشر ترابط التنفيذ هو أصغر تسلسل من التعليمات يمكن لأي نظام تشغيل إدارته من خلال المجدول الخاص به. وترتبط مؤشرات الترابط بشكل وثيق بالعمليات: يتم تشغيل أي مؤشر ترابط ضمن مساحة العنوان الخاصة بأي عملية، بينما يتم تشغيل أي عملية ضمن مساحة العنوان الخاصة بها. وبالتالي، يمكن أن تحتوي أي عملية على مؤشر ترابط واحد أو أكثر، ومؤشرات الترابط ليست وحدات عمل مستقلة. ومن حيث المبدأ، لا تشارك العمليات المختلفة الذاكرة، بينما تشترك مؤشرات الترابط جميعها داخل أي عملية في مساحة العنوان للأصل الخاص بهم.
المهمة هي مصطلح آخر يشير إلى وحدة صغيرة من العمل، وفي هذه الوحدة، نستخدمها لتعني "عملية". بالإضافة إلى ذلك، نستخدم الجمع للإشارة إلى المهام (ربما تكون واحدة فقط) تنتمي إلى نفس البرنامج/التطبيق كوظيفة. ويمكن أن يشتمل أي تطبيق على العديد من الوظائف. على سبيل المثال، يتكون تطبيق ديناميكيات السوائل عادةً من ثلاث وظائف، تتحمل كل منها بشكل فردي مسؤولية التحليلات الهيكلية والسوائل والحرارية. وبالإضافة إلى ذلك، يمكن لكل وظيفة أن تنفذ عملها من خلال عدة مهام. ويوضح الشكل التالي مفاهيم العمليات ومؤشرات الترابط والمهام والوظائف والتطبيقات.
الشكل 2: عرض توضيحي لمفاهيم العمليات ومؤشرات الترابط والمهام والوظائف والتطبيقات
المراجع
- بارني، بليز (آخر تحديث 07/2019). برمجة مؤشرات ترابط POSIX مختبر لورانس ليفرمور الوطني
- إم. Ben-Ari (6 مارس/آذار 2006). مبادئ البرمجة المتزامنة والموزعة أديسون-ويسلي
اختبر معلوماتك
الملاحظات
هل كانت هذه الصفحة مفيدة؟
لا
هل تحتاج إلى مساعدة مع هذا الموضوع؟
هل تريد محاولة استخدام Ask Learn لتوضيح هذا الموضوع أو إرشادك خلاله؟