تشعب (حوسبة): الفرق بين النسختين

[مراجعة غير مفحوصة][مراجعة غير مفحوصة]
تم حذف المحتوى تمت إضافة المحتوى
لا ملخص تعديل
سطر 55:
على الرغم من ان الخيوط تبدو خطوة صغيرة من حساب متسلسل، إلا أنها في الواقع تمثل خطوة كبيرة. انهم يتجاهل الخصائص الضرورية للغايةمن حساب متسلسل كالفهم والقدرة على التنبؤ، والحتمية. الخيوط، كنموذج للحساب هوان وظيفة المبرمج تصبح واحده من تهذيب للغير الحتمية.
 
<big>الجدولة و الإخراج و الإدخال</big>
user thread او مايعرف بالمسار المتخذ من قبل المعالج لتنفيذ المهام هو يتم تنفيذة قياسيا وكليا في مساحة المستخدم. وكنتيجة تبديل المحتوى من مابين هذا المسار وفي نفس المعالج يكون دقيق جدا؛ لانه لا يتطلب اي تفاعل مع نواج التشغيل ، ومن الممكن لتبديل المحتوى ان يتم عملة بحفظة في نفس المكان لمسجلات وحدة المعالجة المركزية اللتي تم إستخدامها حديثا من قبل المسار المنفذ وبعد ذالك يتم تحميل المسجل المطلوب من قبل المساو حتى يتم التنفيذ. وبما إن الجدولة تظهر في مساحة المستخدم فإن سياسة الجدولة تكون اخف من ناحية المتطلبات الخاصة بتحميل عم البرنامج.
و مع ذلك فإن استخدام نظام منع المكالمات في الخيوط أو سلسلة التعليمات للمستخدم يمكن أن يسبب و أن يكون مشكلة مع الألياف الموجودة في الحاسب. إذا كانت خيوط المستخدم أو الالياف استدعت نظام منع المكالمات فإن الخيوط الاخرى و الألياف الأخرى لا تستطيع العمل و إكمال العملية إلى ان تتم عودة نظام المكالمات. مثال على هذا, عندما يتم كتابة معظم البرامج, يتم استخدام الاخراج و الادخال بشكل متزامن و عندما يتم طلب نظام المكالمات, هذا النظام لا يرجع إلا عندما ينتهي من مهمته. في الفترة الفاصلة, تقوم النواة (kernal) بحظر العمليةو لا يمكن التشغيل ما يسبب نقص لدى الخيوطو الألياف.
 
و ثمة حل مشترك لهذه المشكلة و هو توفير إدخال و إخراج ال (API) و التي تطبق واجهة متزامنة باستخدام عدم عرقلة حركة الإدخال و الإخراج, و جدولة خيوط المستخدم الاخرى ايضا و الألياف حينما يقوم بالعملية. و يمكن توفير حلول أخرى مماثلة لنظام حجب المكالمات. و بدلا من ذلك يمكن أن تكون للبرامج أن تكون مكتوبة لتجنب الاستخدام المتزامن للإدخال و الإخراج.
 
SunOS 4.x وهو تنفيذ عمليات خفيفة الوزن او .LWPs,NetBSD 2.xوDragonFly BSD تنفيذ LWPsكما خيوط النواة (نموذج 1:1).SunOS 5.2 عبرSunOS 5.8 طالما NetBSD 2الى NetBSD 4تنفيذ نموذجا لمستوى الثاني, مضاعفة واحدة او اكثر من مستوى المستخدم الخيوط على كل خيط نواة (نموذجM:N). SunOS 5.9 وفي وقت لاحق, وكذلك NetBSD 5دعم القضاء المستخدم, العودة الى النموذج 1:1.FreeBSD 5 [9] نفذت نموذجM:N. FreeBSD 6يدعم كلا من 1:1و M:N, يمكن للمستخدمين اختيار المحرك الذي يجب استخدامه مع برنامج معين باستخدام/etc/libmap.conf. بدءا منFreeBSD 7 , 1:1 اصبح الافتراضي. FreeBSD 8 لم يعد يدعم نموذج.
استخدام نواة الخيط يبسط رمز المستخدم عن طريق تحريك بعض الجوانب الأكثر تعقيدا من خيوط داخل النواة. البرنامج لا يحتاج لجدولة الخيوط أو الخضوع للمعالج. يمكن لرمز المستخدم أن يكون مكتوب بأسلوب مألوفة، بما في ذلك المكالمات في واجهات برمجة التطبيقات المحظورة، دون التأثير على الخيوط الأخرى. ومع ذلك، نواة الخيوط قد يجبر على تبديل السياق بين الخيوط في أي وقت، وبالتالي كشف مخاطر السباق. ف(SMP)، هذا ما زاد من تفاقم بسبب خيوطالنواة قد ينفذ حرفيا على معالجات منفصلة في نفس الوقت.
 
==نماذج==