حوسبة متوازية: الفرق بين النسختين

تم إزالة 53 بايت ، ‏ قبل 6 سنوات
شروط برنشتاين لا تسمح باشتراك الذاكرة بين العمليات المختلفة. لذلك، فإن فرض بعض الترتيب بين عمليات الوصول للذاكرة ضروري، مثلا نظام [[سيمافور|إشارات (semaphores)]]، أو [[حاجز (حوسبة)|الحواجز]] أو بعض طرق [[تزامن (حوسبة)|التزامن]] الأخرى.
 
=== حالة السباق والاستبعادواستبعاد المتبادل،التشارك والتزامن،والتزامن والتباطؤ في التوازي ===
 
في برنامج مواز غالبا ما تسمى المهام الفرعية [[خيط (حاسوب)|خيوطا]] {{إنك|Threads}}. بعض هندسة الحواسيب المتوازية تستخدم نسخ صغيرة وخفيفة من الخيوط المعروفة باسم [[ليف (حوسبة)|الألياف]]، بينما تستخدم هندسات أخرى نسخ أكبر تسمى بالعمليات. ومع ذلك فإن "الخيوط" مقبولة عموما كمصطلح عام عن المهام الفرعية.
|}
 
إذا تم تنفيذ التعليمة 1ب بين 1أ و3أ، أو إذا تم تنفيذ التعليمات 1أ بين 1ب و3ب، سيقوم البرنامج بإنتاج بيانات غير صحيحة. وهذا هو المعروف باسم [[حالة سباق|حالة السباق]] {{إنك|Race condition}}. يجب على المبرمج استخدام [[قفل (حوسبة)|قفل]] للحصول علىلضمان [[استبعاد متبادل|الاستبعاد المتبادلالتشارك]]. [[قفل (حوسبة)|القفل]] هو بناء في لغة البرمجة يسمح لخيط واحد بالسيطرة على متغير ومنع الخيوط الأخرى من القراءة أو الكتابة بها، حتى تحرير المتغير من القفل. الخيط الذي قام بعملية القفل يمكنه تنفيذ الجزء الحرج (القسم من البرنامج الذي يتطلب وصول حصري إلى المتغير)، وبعدها يقوم بتحرير البيانات بعدما ينهي هذا الجزء. لذلك، لضمان تنفيذ البرنامج السابق بشكل صحيح، يمكن إعادة صياغته باستخدام الأقفال:
 
{| class="wikitable" style="width:100%;"