المعالجة المتوازية والآلات الوهمية
| English | العربية |
|---|---|
| virtual machines/ˈvɜːtʃuːəl məˈʃiːnz/ | الآلات الافتراضية |
| parallelism/ˈpærəlelɪzəm/ | التوازي |
| SIMD/ˈsɪmdiː/ | SIMD |
| MIMD/ˈmɪmdiː/ | MIMD |
| massively parallel/ˈmæsɪvli ˈpærəlel/ | متوازي ضخم |
| distributed memory/ˈdɪstrɪbjuːtɪd ˈmeməri/ | ذاكرة موزعة |
| hypervisor/ˌhaɪpəˈvaɪzə/ | هيبرفيزير |
| sandboxing/ˈsændbɒksɪŋ/ | الحجر الناعم |
| bytecode/ˈbaɪtkəʊd/ | bytecode |
| just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ | تجميع في وقت التشغيل |
حاسوب واحد يتظاهر بأنه أربعون
- كانت شركة تشتري خادمًا فيزيائيًا واحدًا لكل تطبيق: واحد للبريد، واحد للموقع الإلكتروني، واحد للحسابات. كان كل منها يعمل عند حوالي 8% من طاقته، وكان يستهلك طاقة كاملة في رفّ يحتاج إلى تبريد.
- ثم توقفت الخوادم عن كونها آلات وأصبحت ملفات. الآن تعمل أربعون آلة افتراضية على ثلاثة مضيفين فيزيائيين، وكل واحدة منها مقتنعة بأنها تمتلك معالجًا وذاكرة وأقراصًا خاصة بها.
- التوفير لا يقتصر على الكهرباء فقط. يمكن التقاط لقطة snapshot لآلة افتراضية قبل إجراء تغيير محفوف بالمخاطر، ونسخها إلى مضيف آخر أثناء عملها، وتدميرها إذا تم اختراقها.
- هذه الدرس是关于 التوازي والآلة الافتراضية: كيف differs بين هذين الهيكلين المعماريين للنظام، وما الذي تكلفه وتوفره الآلة الافتراضية.
الهياكل المعمارية المتوازية، باختصار
- التوازي يعني عمل عناصر معالجة عديدة في آنٍ واحد. يصنف تصنيف فلينج الأشكال: SIMD يشغل تعليمة واحدة على عدد كبير من عناصر البيانات، وMIMD يشغل تعليمات مختلفة على بيانات مختلفة.
- الآلة المتوازية الهائلة تأخذ MIMD لتصل إلى آلاف المعالجات، حيث يمتلك كل معالج ذاكرة موزعة خاصة به، ويتواصل عبر الرسائل.
- لم يعد السرعة تأتي من رفع تردد الساعة، وهو أمر مقيد بالحرارة، بل من القيام بمزيد من الأشياء في وقت واحد. كل هيكل معماري في هذه الصفحة هو إجابة على ذلك.

تعليمات مختلفة، بيانات مختلفة، في نفس الوقت
يعني SIMD:
تعليمة واحدة، بيانات متعددة — مثل وحدة معالجة الرسوميات التي تنفذ نفس العملية على آلاف البكسلات.
طابق كل فئة من فئات فلين بمثال.
يصنف فلين بناءً على عدد تدفقات التعليمات والبيانات التي تعمل في آن واحد: SISD و SIMD و MIMD (و MISD النادر).
يستخدم الحاسوب الموازي الضخم:
ترتبط الأنظمة الموازية الضخمة (الحواسيب الفائقة) بآلاف المعالجات بذاكرة موزعة عبر شبكة سريعة.
ما هي الآلة الافتراضية
- الآلة الافتراضية هي محاكاة برمجية لحاسوب كامل. البرنامج الذي يعمل داخلها يرى معالجًا وذاكرة وأقراصًا تبدو حقيقية لكنها مقدمة ومُدارة بواسطة برمجيات المضيف.
- هناك نوعان، والامتحان يميز بينهما: النظام الافتراضي يشغل نظام تشغيل ضيف كامل، والآلة الافتراضية للعملية تشغل كودًا قابلاً للنقل لبرنامج واحد.
- لا يُعد أي منهما محاكاة لجهاز أسرع. الغرض من الآلة الافتراضية هو العزل والقابلية للنقل، وليس السرعة.
مختبر مفاهيم الحوسبة.
صنّف الأمثلة المحددة حسب الفكرة الحاسوبية التي تمثلها.
ما هي الآلة الوهمية؟
الهدف هو المحاكاة والعزل، وليس السرعة. تشغل آلة نظامية نظام تشغيل ضيف كاملاً؛ بينما تشغل آلة عملية بايت كود برنامج واحد.
الأنظمة الافتراضية
- المضخم الوهمي هو البرمجيات التي تنشئ وتدير الآلات الافتراضية، وتقسم معالج المضيف الحقيقي وذاكرته وأقراصه بينها وتحافظ على عزل كل واحدة عن الأخرى.
- كل آلة افتراضية تقوم بـ تشغيل نظام تشغيل الضيف الخاص بها، لذا يمكن لمضيف واحد تشغيل Windows وLinux ونظام قديم متوارث جنبًا إلى جنب.
- الاستخدامات: تشغيل أنظمة تشغيل مختلفة على جهاز واحد؛ تجميع الخوادم، استبدال عدد كبير من خوادم المادية غير المستخدمة بكومبيوتر ضيوف واحد؛ العزل (sandboxing)، بحيث يعمل البرمجيات الخطرة أو غير الموثوقة معزولة ولا تستطيع الوصول إلى الكومبيوتر الضيف؛ وللقطع快照، بحيث يمكن إرجاع الجهاز إلى حالة معروفة.

رف يحتوي على كومة من الكومبيوترات الضيفة، كل منها يحمل العديد من الآلات الوهمية
يُستخدم الهيبرفيزير لـ:
يدير الهيبرفيزير الآلات النظامية، مما يسمح لعدة أنظمة تشغيل ضيفة بمشاركة جهاز مادي واحد.
تشغل الآلة النظامية (التي يديرها الهيبرفيزير) نظام تشغيل ضيف كاملاً، بينما تشغل آلة العملية مثل JVM فقط بايت كود قابل للحمل لبرنامج واحد.
تشارك الآلات النظامية جهازاً مادياً واحداً بين عدة أنظمة تشغيل ضيفة؛ بينما تمنح الآلات العملية مبدأ "كتابة مرة واحدة، وتشغيل في أي مكان" لبرنامج واحد.
يُسمى البرمج الذي ينشئ ويدير عدة آلات نظامية على مضيف واحد بـ ____.
يقسم موارد المضيف الحقيقية بين الضيوف ويحافظ على عزل كل منهما، وهو ما يجعل بيئات العزل والتكثيف ممكنين.
الآلة الوهمية للعمليات
- آلة VM للعمليات، وتسمى أيضاً آلة VM للغة، تشغل برنامجاً واحداً مكتوباً بلغة bytecode محمولة بدلاً من كود الآلة الخاص بالكومبيوتر الضيف. الآلة الوهمية لـ Java و .NET CLR هما المثالان.
- الفوائد: قابلية النقل، حيث أن نفس الـ bytecode يعمل في أي مكان توجد فيه آلة VM، وهو ما يعني "اكتب مرة واحدة، وشغل في أي مكان"؛ الأمان أثناء التشغيل، لأن آلة VM تتحقق مما يفعله الكود؛ والترجمة عند الحاجة للكود النشط إلى تعليمات أصلية، sehingga برامج طويلة التشغيل تقترب من سرعة الأصلية.
- التكاليف: طبقة إضافية بين البرنامج والعتاد، ويجب تثبيت آلة VM قبل أن يعمل البرنامج أصلاً.
ما هي فوائد الآلة العملية (اللغوية) مثل JVM؟ حدد كل الخيارات الصحيحة.
يجب وجود الآلة الوهمية؛ وهذا هو ثمن قابلية الحمل. قابلية الحمل والأمان والترجمة الفورية هي الفوائد.
مثال محلل: أي نوع من الآلة الوهمية
- فريق الأمن يريد فتح مرفقات البريد الإلكتروني المشبوهة دون المخاطرة بشبكة الشركة. نظام VM: نظام التشغيل الضيف معزول بواسطة Hypervisor، لذا لا يمكن للبرامج الضارة الوصول إلى الكومبيوتر الضيف، ويتم استعادة اللقطات بعد ذلك للتخلص من أي شيء قام به.
- مطور يريد برنامجاً مفهرساً واحداً يعمل على Windows و macOS و Linux بدون إعادة الت compiling. آلة VM للعمليات: تم تجميع البرنامج إلى bytecode وتشغله آلة VM الخاصة بكل منصة.
- سمِّ النوع، ثم الخاصية، العزل أو قابلية النقل، التي تحتاجها الحالة.
ضع عواقب تعطل مضيف مادي واحد، بالترتيب.
يتمركز الخطر في التكثيف: المضيف الواحد هو نقطة فشل وحيدة لكل ما يحمله. وهذا هو قيد الحالة.
مثال محلل: الفوائد والقيود
- اشرح فائدتين وقيدين لاستخدام الآلات الوهمية لاستبدال خوادم الشركة المادية. [4]
- الفوائد: عدة خوادم تعمل على كومبيوتر ضيف واحد،因此硬件、电力和冷却成本下降;而且每个VM都是隔离的,所以一个被攻破或崩溃的服务器不会影响其他服务器,并且可以从快照中恢复。
- القيود: الـ VMs تشارك المعالج الحقيقي والذاكرة والأقراص الخاصة بالكومبيوتر الضيف، therefore performance is lower than dedicated hardware and one busy VM can starve the others; و إذا فشل الكومبيوتر الضيف، كل الـ VMs عليه تفشل في آن واحد.
- اثنان من كل نوع، وكل واحد نتيجة وليس مجرد تسمية.
علامات ضائعة
- Hypervisor يدير نظام VMs؛ إنه ليس نظام التشغيل الضيف وليس نظام التشغيل الخاص بالكومبيوتر الضيف.
- آلة VM للعمليات تشغل bytecode، which is not machine code. That is what makes it portable.
- limitation VM هو الموارد المشتركة ونقطة فشل واحدة، وليس "إنه معقد".
- "العزل" (Sandboxing) له عاقبة: البرمجيات الخطرة تكون معزولة عن المضيف، لذا لا يمكنها الإضرار به أو الوصول إليه.
لقد فهمت الأمر
- التوازي يجيب عن حد سرعة الساعة: SIMD لتعليمات واحدة على بيانات متعددة، MIMD لتعليمات متعددة، توازي هائل لآلاف المعالجات مع ذاكرة موزعة
- الآلة الافتراضية هي محاكاة برمجية لجهاز كمبيوتر كامل
- نظام الآلة الافتراضية يشغل نظام تشغيل ضيف كامل تحت مراقب موارد (hypervisor): أنظمة تشغيل مختلفة على جهاز واحد، تجميع الخوادم، العزل (sandboxing)، لقطات الشاشة
- نظام الآلة الافتراضية للبرامج يشغل أصناف بايت (bytecode) قابلة للتنفيذ مع سلامة وقت التشغيل وترجمة عند الحاجة (just-in-time compilation)؛ التكاليف تشمل طبقة إضافية، مشاركة موارد المضيف وفشل مضيف واحد يسقط كل الآلات الافتراضية الموجودة عليه