Presentation is loading. Please wait.

Presentation is loading. Please wait.

נובמבר 2002 1 ניהול תהליכים במערכת מרובת מעבדים Process Management in Multiprocessor Systems.

Similar presentations


Presentation on theme: "נובמבר 2002 1 ניהול תהליכים במערכת מרובת מעבדים Process Management in Multiprocessor Systems."— Presentation transcript:

1 נובמבר 2002 1 ניהול תהליכים במערכת מרובת מעבדים Process Management in Multiprocessor Systems

2 נובמבר 2002 2עמוד נושאים ארכיטקטורות מרובות מעבדים מערכות הפעלה למערכות מרובות מעבדים הקצאת תהליכים הגירת תהליכים קיפאון במערכות מרובות מעבדים

3 נובמבר 2002 3עמוד מערכת מרובת מעבדים הגדרה –אוסף מעבדים מחוברים בינהם ומשתפים משאבים איפיון מרכזי –Single/Multiple Instruction stream האם כל המעבדים מבצעים את אותה הפקודה בכל רגע? –Single/Multiple Data stream האם כל המעבדים ניגשים לאותם הנתונים? קטגוריות מחשבים –SISD – מחשב סטנדרטי –SIMD – מחשב וקטורי –MIMD – כל מעבד מבצע פקודות שונות על נתונים שונים בהמשך, נתרכז בוריאנטים שונים של קטגורית MIMD

4 נובמבר 2002 4עמוד גישה לזיכרון במערכת מרובת מעבדים במערכות tightly coupled מעבדים שונים יכולים לגשת לאותו תא בזיכרון –למשל בארכיטקטורה עם bus משותף ה-bus הוא משאב משותף שמגביל את מספר המעבדים לעשרות דורש פרוטוקול cache-coherency –בארכיטקטורה NUMA (Non Uniform Memory Access) מוסיפים רמה נוספת של היררכיה לכל מעבד נדמה שיש לו גישה לכל הזיכרונות דפים שלמים (בד"כ 4KB) נודדים בין הזכרונות המשותפים מאפשר בניית מערכות עם מאות מעבדים מעבד מטמון מעבד מטמון מעבד מטמון מעבד מטמון זיכרון משותף bus מעבד מטמון מעבד מטמון מעבד מטמון מעבד מטמון זיכרון משותף bus מעבד מטמון מעבד מטמון מעבד מטמון מעבד מטמון זיכרון משותף bus מעבד מטמון מעבד מטמון מעבד מטמון מעבד מטמון זיכרון משותף bus מעבד מטמון מעבד מטמון מעבד מטמון מעבד מטמון זיכרון משותף bus

5 נובמבר 2002 5עמוד גישה לזיכרון במערכת מרובת מעבדים במערכות loosely coupled, מעבדים שונים לא יכולים לגשת לתא בזיכרון של השכן –מערכות אילו מתקשרות בעזרת העברת הודעות מעל תקשורת מהירה (switched architecture) –הן מאפשרות בנית מערכות עם אלפי צמתים, כאשר כל צומת יכול להיות tightly coupled multiprocessor מעבד מטמון זיכרון משותף bus קלט/פלט מעבד מטמון זיכרון משותף bus קלט/פלט תקשורת מהירה תקשורת מהירה

6 נובמבר 2002 6עמוד ארכיטקטורת תקשורת ארכיטקטורות שכיחות PPPP PPPP PPPP PPPP PP PP PP PP GridHypercubeCross-bar העברת הודעות

7 נובמבר 2002 7עמוד סוגי מערכות הפעלה לסביבות מרובות מעבדים מערכות הפעלה ברשת – Network Operating System –כל צומת מריץ מערכת הפעלה בלתי תלויה –קיימים מספר שרותים לגישה למערכות אחרות rsh, rexec אסימטרית – שליט-עבדים –מעבד אחד אחראי להריץ את מערכת ההפעלה –מגביל את ה-scalability של המערכת סימטרית –כל מעבד יכול להריץ שרותים של מערכת ההפעלה אך לא כל מימוש מאפשר ריצה בו-זמנית ע"י מעבדים שונים (multithread-enabled kernel)

8 נובמבר 2002 8עמוד מערכות הפעלה ברשת – Network Operating Systems ניגשים לשרותים מרוחקים בצורה מפורשת –גישה לתחנה אחרת – rlogin host –העתקת קובץ מרוחק – rcp host1:file1 host2:file2 אך החיים אינם שחור/לבן –ישנם שרותים שקל יותר להפוך ל-"שקופים"

9 נובמבר 2002 9עמוד מערכות הפעלה מבוזרות – Distributed Operating Systems דימוי (הפשטה) של מעבד יחיד –מסתיר את הצימוד החלש של מערכת ההפעלה שרותים אחידים מכל הצמתים –תקשורת בין תהליכים, למשל RPC –מראה אחיד של מערכת הקבצים גרעין מקומי שולט על המשאבים המקומיים –זיכרון, זמן מעבד, וכו' –תיאום בין צמתים מאפשר פיזור תהליכים בין צמתים

10 נובמבר 2002 10עמוד מערכות הפעלה מבוזרות – Distributed Operating Systems מערכת IBM RS/6000 SP –Loosely coupled – עד 1024 צמתים כל צומת tightly-coupled עד 8 מעבדים –אין זיכרון משותף בין צמתים – כל צומת מריץ עותק הפרטי של מערכת ההפעלה –Workload Manager מפזר תהליכים בין הצמתים אין נדידת תהליכים לאחר מכן –אבל מערכת הקבצים (General Parallel File System) מאפשרת גישה מקבילית/אחידה מכל צומת

11 נובמבר 2002 11עמוד זימון תהליכים בסביבה מרובת מעבדים המטרה –איזון עומסים בין המעבדים אך לפעמים קיימים אילוצים (רכים/קשים) –תהליכים מסויימים חייבים לרוץ במעבד מסוים – processor affinity בגלל משאב שקשור למעבד –קבוצת תהליכים חייבים לרוץ על אותו מעבד ניגשים לאותם נתונים – ורוצים למנוע תופעת ping-pong –קבוצת תהליכים חייבת לרוץ במקביל (על מעבדים שונים) מתקשרים בינם לבין עצמם

12 נובמבר 2002 12עמוד זימון תהליכים בסביבה מרובת מעבדים (המשך) שיטות זימון –תור יחיד שמכיל את כל התהליכים המוכנים כל מעבד ניגש לתור לקחת תהליך לריצה צוואר בקבוק –תור אחד לכל מעבד תהליך מוכן נכנס לתור הקצר ביותר –זימון אסימטרי מעבד "מרכזי" מחלק את התהליכים

13 נובמבר 2002 13עמוד זימון תהליכים בסביבה מרובת מעבדים דוגמא – co-scheduling המטרה –לזמן קבוצות תהליכים יחד גישה לפיתרון –חלוקת הזמן ל-time slots –זימון תהליכים לכל המעבדים נעשה באופן מסונכרן דוגמא –קבוצת בת ארבעה תהליכים תקבל את פרק זמן 3 יש ארבעה מעבדים פנויים XX5 XXX4 XX3 XXXXX2 XXXXX1 XXXXXX0 76543210 מעבד time slot

14 נובמבר 2002 14עמוד זימון תהליכים בסביבה מרובת מעבדים דוגמא – co-scheduling (שיפור) נפרוש את המטריצה ע"י שרשור השורות כאשר מגיעים 4k= תהליכים,ויש במערכת 5n= מעבדים, מחפשים חלון באורך n עם k מקומות פנויים בתזמון, עוברים עם חלון באורך n מבלי לפצל קבוצות ההקצאה של תהליך למעבד אינה קבועה מראש YXX YZZZXZX YZZZXZX

15 נובמבר 2002 15עמוד הגירת תהליכים מטרה –אם ההקצאה (הראשונית) של תהליכים למעבדים אינה מתבררת כמאוזנת, ניתן להעביר תהליכים ממעבד למעבד (process migration) אפשרויות –ניהול ריכוזי ע"י מעבד יחיד (coordinator) –מעבד עמוס שולח תהליכים למעבד פחות עמוס (sender-initiated) –מעבד פנוי מחפש תהליכים לביצוע (receiver-initiated) איך בוחרים מעבד שאליו/ממנו יועבר התהליך? –בחירת מעבד באקראי (sender-initiated) אם הוא עמוס, שיעביר הלאה –שמירת מידע מקורב על עומס המעבדים (gossip messages)

16 נובמבר 2002 16עמוד קיפאון במערכות מבוזרות באופן דומה למקרה של מעבד יחיד, במערכת מבוזרת עלול להיוצר קיפאון –המתנה למשאבים משותפים –המתנה להודעה מתהליך אחר לשם פשטות, נניח עותק יחיד מכל משאב –ניתן לפשט את גרף הקצאות-בקשות לגרף המתנות P1P1P2P2R1R1P1P1P2P2

17 נובמבר 2002 17עמוד טיפול בקיפאון במערכות מבוזרות מניעה –הגבלה על אופן בקשת המשאבים זיהוי מצב קיפאון והחלצות –נראה בהמשך שדרושה תמונה גלובלית של המצב התחמקות –הרחבה של אלגוריתם הבנקאי התעלמות

18 נובמבר 2002 18עמוד מניעת קיפאון במערכות מבוזרות קביעת סדר מלא בין המשאבים או לחליפין ניתן למספר את התהליכים עצמם –נקבע חותמת-זמן (timestamp) t(Pi) לכל תהליך –לקביעת timestamp ייחודי, נשלב זמן ומספר זיהוי של התהליך כאשר תהליך נוצר, נקבע t(Pi) = (time(), i) 1234

19 נובמבר 2002 19עמוד מניעת קיפאון שיטת wait-die לעומת wound-wait התהליך הצעיר מחכה התהליך הוותיק הורג/מאפס את התהליך הצעיר wound-wait תהליך צעיר רוצה משאב שמוחזק ע"י תהליך ותיק תהליך ותיק רוצה משאב שמוחזק ע"י תהליך צעיר התהליך הצעיר מת (או חוזר להתחלה) ומשחרר את כל המשאבים התהליך הוותיק מחכה wait-die המוטיבציה: כדאי לתת עדיפות לתהליכים ותיקים (בעלי חותמת זמן נמוכה יותר) בגישה למשאבים

20 נובמבר 2002 20עמוד שיטת wait-die לעומת wound-wait השוואה wound-wait מקטינה את מספר החזרות שימו לב! תהליך יוחזר לאחור במקרים בהם יש חשש לקיפאון, לאו דווקא קיפאון בפועל אם תהליך ישמור על ה-timestamp תימנע הרעבה תהליך צעירמחכה לתהליך ותיקעלול למות, להתחיל שוב ולתפוס משאבים תהליך ותיקאינו מחכה כללמחכה לתהליך צעיר wound-waitwait-die

21 נובמבר 2002 21עמוד גילוי קיפאון במערכות מבוזרות מה קורה אם כל צומת יחזיק תמונה לוקלית (חלקית)? –P1, P2, P5 רצים בצומת A; P3, P4 בצומת B –לכאורה אין קיפאון... P1P2 P5P3 P2P4 P3 AB

22 נובמבר 2002 22עמוד גילוי קיפאון במערכות מבוזרות אבל אם נסתכל על התמונה הגלובלית... P1P2 P5P3 A P2P4 P3 B קיפאון!

23 נובמבר 2002 23עמוד גילוי קיפאון במערכות מבוזרות גישה ריכוזית ניתן למנות צומת מרכזי האחראי על זיהוי קיפאון אפשרויות לשליחת עדכונים למרכז –כל אימת שנוספת או נמחקת קשת בגרף הלוקלי –בתדירות קבועה, או כשנצטברים מספר רב של שינויים –כאשר הצומת המרכזי עומד לבצע את האלגוריתם לגילוי קיפאון אבל... –הגרף בצומת המרכזי מחזיק קירוב בלבד של המצב האמיתי בגלל עיכובים אפשריים בהעברת הודעות

24 נובמבר 2002 24עמוד גילוי קיפאון במערכות מבוזרות - קשיים –תהליך 1 מוותר על המשאב (לטובת תהליך 2) ונשלחת הודעה M1 לצומת המרכזי –תהליך 1 מבקש משאב המוחזק ע"י תהליך 3 ונשלחת הודעה M2 אשר מגיעה לפני M1 למרכז. נוצר מעגל, אך אין קיפאון! –ניתן לפתור את הבעיה על-ידי מנגנונים המבטיחים סדר ואמינות בהעברת הודעות (timestamps) 11222 33 AB Central 11222 33 AB 11222 33 AB 3


Download ppt "נובמבר 2002 1 ניהול תהליכים במערכת מרובת מעבדים Process Management in Multiprocessor Systems."

Similar presentations


Ads by Google