paul r. wilson & mark s. johnstone university of austine texas 1993 real time non-copying gc...

32
Paul R. Wilson & Mark S. Paul R. Wilson & Mark S. Johnstone Johnstone University of Austine University of Austine Texas Texas 1993 1993 Real Time Non-Copying GC לללל ל”ל לל ללללל

Post on 20-Dec-2015

218 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

Paul R. Wilson & Mark S. JohnstonePaul R. Wilson & Mark S. Johnstone

University of Austine TexasUniversity of Austine Texas

19931993

Real Time Non-Copying GC

” נתנאל רם י ע מוגש

Page 2: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

הקדמה

Garbage Collectionעד היום לא שולב בהצלחה . הדבר גרם לכך ששפות Real Timeבמערכות

לא חדרו לתחומים רבים GCשמשתמשות ב בהם שילוב בתוך חומרה ומערכות הפעלה

ובקרה של מכשירים.

Page 3: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

RT בסביבת GCדרישות מ

הבטחת יחס ביצועים קבוע לכל התכניתהבטחת יחס ביצועים קבוע לכל התכניתהבטחת יחס ביצועים קבוע באופן נקודתי בתכניתהבטחת יחס ביצועים קבוע באופן נקודתי בתכניתOverHeadOverHeadקטן ככל האפשר קטן ככל האפשר

Page 4: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

תנאים הכרחייםGC שפועל בסביבת RT – חייב להיות אינקרימנטלי

מסוגל לבצע פעולות קטנות בזמן ריצתה של התכנית במקום לעצור את התכנית לזמן ארוך בכל

פעם. )הבטחת יחס ביצועים לטווח קצר(לא מספיק למצוא חסם על אורך פעולות העדכון, צריך למצוא חסם על התדירות שבה יש עדכונים.

)הבטחת יחס ביצועים גלובלית(בכל זמן שהוא מוקצה אחוז מסוים מפעולת ה

CPU לטובת התכנית. )הבטחת יחס ביצועים נקודתית(

Page 5: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

מסקנה

שה עדיף במקביל Collectorלכן שרצה תכנית יהיהלריצה Mutatorל להפריע מבלי זיכרון ואוספת

ה של .Mutatorהשוטפת

Page 6: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

Write Barrier לעומת Read Barrier

Read Barrierשה פעם פוינטר Mutatorבכל של לקריאה ניגש

שה שהמידע לכך שידאג נוסף קוד Mutatorיתבצע . ה את להפנות למשל עדכני הוא לקרוא עומד

Mutator. אחר למקום

Write Barrierשה פעם אחד Mutatorבכל את לשנות מנסה

, לכך שידאג נוסף קוד יתבצע בתכנית הפוינטרים.Collectorשה בהתאם ונערך השנוי על יודע

Page 7: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

Read Barrier

בין Read Barrierבהפעלת סנכרון בעצם ישה שרואה ה Mutatorהתמונה פעולות לבין

Collector ה שרואה שמה פעם שבכל Mutatorבכךה פעולות עם עקבי ישנה Mutatorה Collectorאינו

. ה שלו העולם תמונת מבחינתו Collectorאתשה כמו בדיוק ה Mutatorמתנהג לצורך .GCנעצר

Page 8: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

Write Barrier

הוא שקובע וה Mutator ה Write Barrierבהפעלת Collector מעדכן את תמונת העולם שלו לפי

יאלץ Collector כך שיתכן שה Mutatorפעולות ה לבצע יותר פעולות מאשר יהי מבצע אילו ש

Mutator היה עוצר בזמן ה GC.

Page 9: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

ה של להיות חייבת הסנכרון על Mutatorהאחריות. פעולותיו את לצפות ניתן לא כי

Page 10: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

Read Barrier:תכונות

.עלות גבוהה.עלות גבוהה לא צפוי – יתכן שבפרוש ביטוי אחד יש שימוש לא צפוי – יתכן שבפרוש ביטוי אחד יש שימוש

בהרבה ערכי פוינטרים ולכן קשה לקבוע עלות בהרבה ערכי פוינטרים ולכן קשה לקבוע עלות ..OverHeadOverHeadממוצעת של ממוצעת של

Page 11: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

Write Barrier :תכונות

. נמוכה .עלות נמוכה עלות – ב גם יותר טוב ביצועים יחס קיים צפוי ב – יותר גם יותר טוב ביצועים יחס קיים צפוי . . Worst CaseWorst Caseיותר

לסביבת יותר מתאים לסביבת לכן יותר מתאים ..RTRTלכן ה הMutatorMutator ה עכשיו עד שעשה בעבודה תלוי ה אינו עכשיו עד שעשה בעבודה תלוי CollectorCollectorאינו

ה ה ולכן .CollectorCollectorולכן התכנית התקדמות את לעקב יכול .לא התכנית התקדמות את לעקב יכול לא

Write Barrier לאפליקציות יותר כי Real Timeמתאיםה יעשה עבודה כמה חשוב ממש עוד Collectorלא כל

ה לפעולת מפריע .Mutatorאינו

Page 12: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

Bakerאלגוריתם Copying Garbage Collectionהאלגוריתם מבצע

Collector וה Mutatorבצורה אינקרימנטלית. ה מדברים ביניהם ע"י העברת הודעות באופן שוטף.

לשם שמירה על עקביות Read Barrierיש שימוש ב לעומת גרף Mutatorשל מה שרואה ה

האובייקטים.

Page 13: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

בעיות:

היא Collector וה Mutatorהעברת מידע בין ה כי קיימת הפרעה RTבעקרון בעיה במערכות

נבדקת בתדירות MailBoxלריצת התכנית. אם ה העלות גדולה. אם Mutatorמסוימת ע"י ה יש הפרעה לריצת ה Interruptמשתמשים ב

Mutator.שעלולה להגיע ברגעים קריטיים אשר אמנם כל עדכון בו Read Barrierיש שימוש ב

נעדה מהר יחסית אבל יתכן שעדכונים נעשים בתדירות גבוהה וגורמים לתכנית לא להספיק

למועד הסיום.

Page 14: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

לדוגמא:ריצה על רשימה מקושרת

for i=1 to list.size p=p.nextend

אם הרשימה עדיין לא הועתקה ע”י ה Collector היא תועתק איבר איבר בגלל ה

Read Barrier.

אמנם העתקת איבר היא לא ארוכה אבל סך כל העבודה המצטברת תגרום לכך שהתכנית

לא תסיים הזמן.

Page 15: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

תגובת האלגוריתם:

ה צעד ל Mutatorבכל את Collectorיורה להביא. ברשימה הבא האיבר

כל לאורך קטן זמן לוקח צעד כל שביצוע למרותה התכנית של את Collectorהרימה מאד יעקב

ב נעמוד שלא ויתכן .deadlineהתכנית

Page 16: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

הרחבות:קיימים אלגוריתמים שניסו לשפר את האלגוריתם

שלם Page ע"י פעולות ברמה של Bakerשל ואיטרציות יותר גדולות ופחות תכופות. התוצאה

היא שהתנהגות התכנית עוד פחות ניתנת לצפייה מראש.

Page 17: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

הגישה לפתרון

בתכנית אפשרי מסלול שבכל נבטיח לא אנחנוחסם מאשר ליותר יצטבר לא העבודה סך תמידיקרו, לא שהעדכונים להבטיח ננסה אבל קבוע

. מידי גבוהה בתדירותה בין הדוק פחות קשר דורשת כזו Mutatorהבטחה

ה .Collectorלביןב , Write Barrierנשתמש ב GarbageבלבדCollection מבצע .Copyingשאינו

Page 18: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

יישום: צבעים בשלושה האובייקטים את לצבוע ניתן

הבנים – כל ואת אותו סרקנו אשר אובייקט שחורשלו.

לא – אבל בסריקה אליו הגענו אשר אובייקט אפור. שכניו כל על עברנו בהכרח

. נסרק – לא שעדיין אובייקט לבן

פוינטרים של עדכון שבכל לכך לגרום צריכים אנוה" י שחור Mutatorע אובייקט שבו למצב נגיע לא

. המצביע וזה יתכן אחרת לבן אובייקט על מצביעיישאר ואז הלבן האובייקט אל Danglingהיחידי

Pointer

Page 19: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

לדוגמא:

הלבנים : האובייקטים כל חוקי במצב מתחילנגישים

Page 20: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

לדוגמא:

חוקי מצב עדיין

Page 21: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

לדוגמא:

לעולם יסרק לא אשר אובייקט קיים

Page 22: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

דרכים לפתרוןSnapShot at beginningSnapShot at beginning . יעלם – לא פוינטר . אף יעלם – לא פוינטר אף

דמי משתנה ניצור ערך ישנה שפוינטר פעם דמי בכל משתנה ניצור ערך ישנה שפוינטר פעם בכל. הישן הערך על .שיצביע הישן הערך על שיצביע

Incremental UpdateIncremental Update – פוינטר שישתנה פעם פוינטר – בכל שישתנה פעם בכלל כך על נודיע שחור באובייקט ל שנמצא כך על נודיע שחור באובייקט CollectorCollectorשנמצא

את ישנה או החדש האובייקט את שיסרוק את כדי ישנה או החדש האובייקט את שיסרוק כדי. לאפור .הצבע לאפור הצבע

Page 23: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

SnapShot-at-Beginning

: מסלול שנשבר פעם בכל מבטיחה השיטה. לאובייקט חדש מסלול נוצר לאובייקט

ה אשר אובייקט שקיים יתכן לא יכול Mutatorלכןה אך אליו .Collectorלהגיע לא

Page 24: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

בעיות אופטימיזציה:

המחסנית על במשתנים שונה טיפול לבנות המחסנית קשה על במשתנים שונה טיפול לבנות קשה על במידע להשתמש ניתן על לא במידע להשתמש ניתן של של LivenessLivenessלא

משתנים.משתנים. של טכניקות עם לשילוב של קשה טכניקות עם לשילוב ו ו GenerationalGenerationalקשה

hierarchical Garbage Collectionhierarchical Garbage Collection.. קשה הזיכרון את שיחרר המתכנת אם קשה גם הזיכרון את שיחרר המתכנת אם גם

. הזה במידע .להשתמש הזה במידע להשתמש

Page 25: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

Incremental Update

שומר על התכונה המקומית שלא יווצר מצב שבו יש פוינטר מאובייקט שחור לאובייקט לבן. אם ה

Mutator יוצר פוינטר כזה אז נודיע על כך ל Collector.כדי שיהפוך אחד מהם לאפור

Page 26: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

יתרונות אופטימיזציה

פחות קונסרבטיבי - שנוי של פוינטר מאובייקט פחות קונסרבטיבי - שנוי של פוינטר מאובייקטלבן לא מפריע.לבן לא מפריע.

לא ניגע במחסנית עד סוף הסריקה - עוזר לא ניגע במחסנית עד סוף הסריקה - עוזר..Floating GarbageFloating Garbageלהפטר מהרבה להפטר מהרבה

קל יותר להסבה ל קל יותר להסבה לGenerational GCGenerational GC..)ניתן לשלב מידע מהמתכנת )כגון שחרור זכרון(ניתן לשלב מידע מהמתכנת )כגון שחרור זכרון

Page 27: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

ניקוי הזכרון

לבצע נרצה . Copyingלא את נשמור לכן מלא - כיווניות דו מקושרות רשימות בתוך האובייקטים

העברתו יהיה שחרורו או אובייקט של צבע ושינוי. לרשימה מרשימה

של חזקות שהם בגדלים רק אובייקטים 2נקצה. פרגמנטציה למנוע נקווה ובכך

Page 28: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

יתרונות:

של המחיר לכן אובייקטים של ממשית העתקה אין. בהרבה קטן האלגוריתם יישום

לא התכנית במהלך זזים לא שהאובייקטים מכיווןה את .Mutatorמבלבלים

Page 29: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

חסרונות:

תתכן פרגמנטציה גדולה מאד של הזיכרון.

במקרה הגרוע ביותר: אם בכל איטרציה נקצה זיכרון בגודל אחר עד שנגמר ואז נשחרר הכל,

נקצה לכל אובייקט זיכרון מחדש.

למעשה במקרה הממוצע העלות הייתה סבירה.

Page 30: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

ישום

Operator ע”י C++האלגוריתם יושם בשפת Overloading ונבחן על מספר תכניות. זמני ריצה

, כנראה בגלל חוסר 10-90הראו פגיעה של % תמיכה מהקומפיילר.

Page 31: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

לסיכום:בסביבת Garbage Collectorראינו RealשפועלTime ,של טכניקות במספר לשילוב , GCניתן

לאורך קבוע ביצועים יחס להבטיח בפועל ומסוגל. התכנית ריצת

כולל הוא Write Barrierהאלגוריתם ולכן בלבד , או מיוחדת חומרה דורש ואינו למימוש זול יחסית

. ההפעלה ממערכת מיוחדת תמיכה

Page 32: Paul R. Wilson & Mark S. Johnstone University of Austine Texas 1993 Real Time Non-Copying GC מוגש ע ” י רם נתנאל

תכניות לעתיד

להפעיל בצורה מבוזרתלהפעיל בצורה מבוזרת לשלב לשלבGenerational GCGenerational GC להפעיל מספר להפעיל מספרCollectorsCollectors.בו זמנית. בו זמנית לשכלל את ניהול הזכרון להתמודד עם לשכלל את ניהול הזכרון להתמודד עם

פרגמנטציה.פרגמנטציה.