ما هي مواضيع OS التي تستخدم في آلة Erlang التجريدية ، شعاع؟

StackOverflow https://stackoverflow.com/questions/3663823

  •  01-10-2019
  •  | 
  •  

سؤال

لقد بدأت دراسة Erlang وأجد بيئة وقت تشغيل الشعاع رائعة. يذكر عادة أنه في إرلانج ، تنتمي العمليات إلى اللغة بدلاً من نظام التشغيل (بمعنى وقت التشغيل ، وهذا يعني الشعاع في هذه الحالة). هذه هي "العمليات الخضراء" الخفيفة ، التي يشتهر بها إرلانج. تم ذكره كذلك (في الصفحة 5 من هذه الورقة) يستخدم هذا الحزمة مؤشر ترابط OS واحد (1) لكل وحدة المعالجة المركزية لجدولة وخيط OS آخر لـ I/O. لذلك أتساءل: من أي موضوع تقوم بدورات وحدة المعالجة المركزية اللازمة لتنفيذ رمز Erlang فعليًا؟

علاوة على ذلك ، إذا كنت أقوم بتشغيل جهاز مزدوج جوهري ، فأنا أتوقع - استنادًا إلى ما قرأته حتى الآن - لرؤية ثلاثة (3) مؤشرات ترابط تعمل تحت عملية الحزمة: اثنان من الجدولين (واحد لكل نواة) واحد I/O موضوع. لكني أرى 10. في بعض الأحيان 11. في بعض الأحيان يبدأ من 13 ، ومثل مكبرات الصوت عالية الجودة ، يذهب إلى 11.

أنا محتار. سيكون موضع تقدير أي فكرة.

هل كانت مفيدة؟

المحلول

يتبع نصيحة @user425720 ، سألت سؤالي على قوائم erlang-questions. إنه متاح أيضًا ك مجموعة Google. أجابني كريستن كراب ثوروب من Trifork في وقت واحد تقريبًا. شكري للخروج إلى كرستون. ها هو إجابته. (Patherhictions والتركيز هي لي.)

هنا AFAIK ، السيناريو الأساسي:

سيتم تشغيل رمز Erlang في العديد من "الخيوط الخضراء" كما توجد عمليات ؛ يتم التحكم في حد العملية بواسطة علامة +P (سطر الأوامر).

يتم تعيين الخيوط الخضراء على مؤشرات الترابط S ، حيث S هو عدد النوى/وحدة المعالجة المركزية. حقيقة ان وتسمى هذه المواضيع أيضا المجدولةيمكن أن يبدو مربكا إلى حد ما ، ولكن من وجهة نظر VMS هم. من وجهة نظر المطور ، فهي الخيوط التي تدير رمز Erlang الخاص بك. يمكن التحكم في الرقم S مع خيار +S إلى سطر أوامر ERL.

بالإضافة إلى Hereto ، هناك عدد من ما يسمى "خيوط Async". هذا هو تجمع مؤشرات ترابط يتم استخدامه بواسطة عمليات الإدخال / الإخراج التي تسمى مرتبطة في برامج التشغيل ، للرد على تحديد / استطلاع وما إلى ذلك. عدد مؤشرات الترابط غير المتزامن ديناميكي ، ولكنه محدود بواسطة علامة +A.

لذلك ، قد تكون المواضيع الـ 11 التي تراها على النواة المزدوجة هي جدولين ، و 9 خيوط Async. على سبيل المثال.

اقرأ المزيد عن الأعلام هنا.

نصائح أخرى

عمليات إرلانج ليست "خضراء" لأن الخيوط خضراء في جافا. عمليات Erlang هي هياكل لا تشارك الذاكرة ويتم الحفاظ عليها بواسطة Erlang VM.

قد يبدو الأمر غريبًا ولكن قد تكون هذه الورقة "قديمة" (على الرغم من السيرة الذاتية منذ عام 2007). لقد تغير كل شيء حول إصدار R13 عندما حصلنا على معالجة جديدة من قوائم انتظار وقت التشغيل (مع موازنة ديناميكية وغيرها من الأشياء الجيدة). إليكم بعض العرض التقديمي لـ ULF Wiger حول هذا الموضوع http://ulf.wiger.net/weblog/2009/01/23/erlang-programming-for-multicore/

خلاصة القول ، تكون العمليات شفافة تمامًا ويمكنك ضبط عدد قوائم انتظار وقت التشغيل ، ولكن إدراك نظام التشغيل ليس سليمًا. لا أريد التكهن لماذا يوجد 11 من المواضيع ..

تحرير: أنا مخطئ في OS قليلاً:

+S Schedulers:SchedulerOnline

يحدد مقدار مؤشرات الترابط الجدولة لإنشاء ومواضيع جدولة لتعيين الإنترنت عند تمكين دعم SMP.

نطاق صالح لكلا القيمتين 1-1024. إذا كان نظام وقت تشغيل Erlang قادرًا على تحديد كمية المعالجات المنطقية التي تم تكوينها والمعالجات المنطقية المتاحة ، فسيتم تكوين المعالجات المنطقية ، وتكوين المعالجات المنطقية ، و SchedulersOnline سوف افتراضي للمعالجات المنطقية المتاحة ؛ خلاف ذلك ، ستكون القيم الافتراضية هي 1. قد يتم حذف الجدولة إذا :SchedulerOnline ليس والعكس صحيح. يمكن تغيير مقدار المجدول عبر الإنترنت في وقت التشغيل عبر erlang:system_flag(schedulers_online, SchedulersOnline).

...

سيتم تجاهل هذه العلامة إذا لم يتم تمكين دعم SMP (انظر -smp علَم).

من هنا: http://www.erlang.org/doc/man/erl.html

EDIT2: مناقشة مثيرة للاهتمام حول القائمة البريدية لـ Erlang-Question على إيجابيات وسلبيات العديد من VMS مقابل العديد من المجدول. لسوء الحظ ، إنه أيضًا من عام 2008 وقد لا يكون صالحًا مع تحسينات ضخمة في إصدارات OTP الجديدة. http://www.erlang.org/cgi-bin/ezmlm-cgi؟4:MSS:38165:200809:NBIHPKEPGJCFNFFKOOBF

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top