עיבוד מקביל ומחשבים וירטואליים
הוצג| 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/ | בייטקוד |
| just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ | הרכבה בזמן אמת |
מחשב אחד שמתייפה להיות ארבעים
- חברת הייצור הייתה רוכשת שרת פיזי אחד לכל יישום: אחד למייל, אחד לאתר האינטרנט, אחד לחשבונאות. כל אחד פעל בכ-8% מהקיבולת שלו, וכל אחד צרך הספק מלא בארון שדרש קירור.
- אז השרתים הפסיקו להיות מכונות והפכו לקבצים. ארבע מכונות וירטואליות פועלות כיום על שלושה מארחים פיזיים, כל אחת שוכנעת שיש לה מעבד, זיכרון ודיסקים משלה.
- החיסכון אינו רק בחשמל. מכונה וירטואלית ניתנת לצילום מצב לפני שינוי סיכון, להעתקה למארח אחר בזמן פעילות, ולהשמה אם היא הושחתה.
- שיעור זה הוא מקביליות והמכונה הווירטואלית: איך הארכיטקטורות השונות של שתי מערכות הללו שונות, ומה VM מייקרת ומה היא מביאה.
ארכיטקטורות מקבילות, בקצרה
- מקביליות פירוניהם רכיבי עיבוד רבים העובדים בו-זמנית. הטקסונומיה של פליין מציגה את הצורות: SIMD מנהל הוראה אחת על פני נתונים רבים, ו-MIMD מנהל הוראות שונות על נתונים שונים.
- מכונה מקבילה במספר עצום מיישמת MIMD אל אלפי מעבדים, כל אחד עם זיכרון מפוזר משלו, התקשרות באמצעות הודעות.
- מהירות אינה נובעת יותר מהגבהת תדר השעון, שהוגבל על ידי חום, אלא ביצירת פעולות רבות בו-זמנית. כל ארכיטקטורה בדף זה היא תשובה לכך.

הוראות שונות, נתונים שונים, בו-זמנית
SIMD פירושו:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הוראה אחת, מספר נתונים רבים — לדוגמה: GPU המבצע את אותה פעולה על אלפי פיקסלים.
התאם כל אחת מקטגוריות פליין לדוגמה.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
פליין ממייין לפי מספר זרמי ההוראות והנתונים הפועלים בו-זמנית: SISD, SIMD, MIMD (ומISD הנדיר).
מחשב מקביל מסיבי משתמש ב:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
מערכות מקבילות מסיביות (מחשבי על) מקשרות אלפי מעבדים עם זיכרון מפוזר דרך רשת מהירה.
מהי מכונה וירטואלית
- מכונה וירטואלית היא אמולציה תוכנתית של מחשב שלם. התוכנה הפועלת בתוכה רואה מעבד, זיכרון ודיסקים שנראים אמיתיים אך מסופקים ומנוהלים על ידי תוכנת המארח.
- ישנם שני סוגים, והמבחן מבדיל ביניהם: VM מערכת פועל בה מערכת הפעלה אורחת מלאה, ו-VM תהליך פועל בה קוד נייד של תוכנה אחת.
- שניהם אינם אמולציות של מכונה מהירה יותר. מטרת VM היא בידוד וניידות, לא מהירות.
מעבדת מושגי מחשוב
סווג דוגמאות מلموسة לפי הרעיון המחשובי שהן מדגימות.
מהי מכונה וירטואלית?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
העניין הוא באמולציה ובבידוד, לא במהירות. מכונה וירטואלית של מערכת מפעילה מערכת הפעלה אורחת שלמה; מכונה וירטואלית של תהליך מפעילה ביט-קוד של תוכנית אחת.
מכונות וירטואליות מערכת
- היפריזור הוא התוכנה היוצרת ומנהלת מכונות וירטואליות, מחלקת את מעבד המארח, הזיכרון והדיסקים האמיתיים ביניהן ושומרת על בידוד כל אחת מהאחרות.
- לכל VM מובאת מערכת הפעלה אורחת משלה, כך שמאחור אחד יכול להריץ Windows, Linux ומערכת עתיקה יחד.
- שימושים: הרצת מערכות הפעלה שונות על מכונה אחת; מיזוג שרתים, החלפת מאות שרתים פיזיים תחת-שימושי בשרת מאחור אחד; בידוד (Sandboxing), כדי שתוכנה מסוכנת או שאינה נאמנת תפעל בבידוד ולא תגיע למאחור; ונקודות החזרה (Snapshots), כך שמכונה יכולה להיות מוחזרת למצב ידוע.

סט של מארחים, כל אחד carrying מספר רב של מכונות וירטואליות
היפרייזר משמש ל:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
היפרייזר מנהל מכונות וירטואליות של מערכת, ומאפשר למספר מערכות הפעלה אורחות לשיתף מכונה פיזית אחת.
מכונה וירטואלית של מערכת (שהיא מנוהלת על ידי היפרייזר) מפעילה מערכת הפעלה אורחת שלמה, בעוד שמכונה וירטואלית של תהליך כמו ה-JVM רק מפעילה את הביט-קוד הנייד של תוכנית אחת.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
מכונות וירטואליות של מערכת משתפות מכונה פיזית אחת בין מספר מערכות הפעלה אורחות; מכונות וירטואליות של תהליך מספקות "כתוב פעם, הרץ בכל מקום" לתוכנית בודדת.
התוכנה שיוצרת ומנהלת מספר מכונות וירטואליות של מערכת על מארח אחד נקראת ____.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
היא מחלקת את החומרה האמיתית של המארח בין האורחים ושומרת על בידוד כל אחד מהם, והדבר הוא מה שמאפשר sandboxing וקונסולידיציה.
מכונות וירטואליות תהליך
- VM תהליך, הנקרא גם VM שפה, פועל תוכנה אחת הכתובה בקוד בינארי נייד (bytecode) ולא בקוד מכונה של המארח. דוגמאות: ה-Java Virtual Machine וה-.NET CLR.
- יתרונות: ניידות, שכן אותו קוד בינארי פועל בכל מקום שיש VM, כלומר "כתבו פעם אחת, הרצו בכל מקום"; בטיחות בזמן הרצה, שכן ה-VM בודק מה הקוד עושה; וה compilation בזמן אמת (JIT) של קוד חם להוראות מקומיות, כך שתוכניות ארוכות חיונים מתקרבות למהירות מקומית.
- עלויות: שכבת גבול נוספת בין התוכנה לבין החומרה, וה-VM חייב להיות מותקן לפני שהתוכנה תוכל לפעול כלל.
איזה מהבאות הם יתרונות של מכונה וירטואלית של תהליך (שפה) כגון ה-JVM? סמן את כולם החלים.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
המכונה הוירטואלית חייבת להיות נוכחת; זהו מחיר הנגישות. נגישות, בטיחות והרכבה בזמן אמת הם היתרונות.
דוגמה פתורה: איזה סוג של VM
- צוות אבטחה רוצה לפתוח קבצי צמוד חשודים ללא סיכון ברשת החברה. VM מערכת: מערכת ההפעלה האורחת מבודדת על ידי ההיפריזור, כך שווירוס לא יגיע למאחור, ונקודת ההחזרה תוחזר לאחר מכן כדי להשמיד את כל מה שעשה.
- מפתח רוצה שתוכנית מוּקֶּפֶת אחת תפעל על Windows, macOS ו-Linux ללא הרכבה מחדש. מכונה וירטואלית של תהליכים: התוכנית מוּקֶּפֶת לבאייט-קוד, ומכונת ה-VT של כל פלטפורמה מנהלת את הפעלתה.
- קראו את הסוג, ולאחר מכן את המאפיין – בידוד או ניידות – שהמצב דורש.
סדר את ההשלכות של כשל במארח פיזי אחד.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
מיזוג ריכוז את הסיכון: מארח אחד הוא נקודת כשל יחידה לכל מה שהוא מארח. זוהי הגבלת המצב.
דוגמה מופרשת: יתרונות וחסרונות
- הסבירו שני יתרונות ושני חסרונות של שימוש במכונות וירטואליות להחלפת שרתים פיזיים בחברה. [4]
- יתרונות: מספר שרתים פועלים על מארח פיזי אחד, ולכן עלויות החומרה, חשמל וקירור יורדות; כל מכונה וירטואלית מבודדת, כך שמצבר או שרת שקריסה אינו משפיע על האחרים, וניתן לשחזרו מתמונת סנפשוט.
- חסרונות: המכונות הווירטואליות משתפות את מעבד, הזיכרון והדיסקים האמיתיים של המארח, ולכן הביצועים נמוכים יותר בהשוואה לחומרה ייעודית, ושרת עמוס אחד יכול לגרום לפגיעה באחרים; אם המארח נכשל, כל המכונות הווירטואליות שעליו נכשלות בו-זמנית.
- שניים מכל סוג, וכל אחד מהם תוצאה ישירה, לא רק תווית.
סימונים נופלים מהיד
- היפרייזר מנהל מכונות וירטואליות של מערכת; הוא אינו מערכת ההפעלה של אורח (guest) ואינו מערכת ההפעלה עצמית של המארח.
- מכונה וירטואלית של תהליכים מפעילה באייט-קוד, שאינו קוד מכונה. זהו הגורם לניידות שלה.
- החסרון של מכונה וירטואלית הוא משאבים משותפים ונקודת כישלון אחת, לא "זה מורכב".
- "Sandboxes" (איסולציה/מגן) דורשים תוצאה: התוכנה המסוכנת מובודדת מהמארח, ולכן אינה יכולה לפגוע בו או לגשת אליו.
הבנתך מושלמת
- מקביליות עונה למגבלת מהירות השעון: SIMD עבור הוראה אחת על נתונים רבים, MIMD עבור הוראות רבות, מקביליות ענפה עבור אלפי מעבדים עם זיכרון מפוזר.
- מכונה וירטואלית היא סימולציה תוכנתית של מחשב שלם.
- מכונה וירטואלית של מערכת מפעילה מערכת הפעלה מלאה של אורח תחת היפרייזר: מערכות הפעלה שונות על מכשיר אחד, מיזוג שרתים, Sandboxes (בידוד), סנפשוטים.
- מכונה וירטואלית של תהליכים מפעילה באייט-קוד נייד עם בטיחות בזמן הרצה והרכבה בזמן אמת; העלויות הן שכבת תוכנה נוספת, משאבי מארח משותפים וכישלון מארח אחד גורם לכישלון כל המכונות הווירטואליות שעליו.