150 likes | 215 Views
חסמי זמן ומקום תחתונים עבור מימושים א-חוסמים. Time & Space Lower Bounds for Non-Blocking Implementations. אז מה הקטע?. נדבר על increment object ונראה שסיבוכיות הזמן שלו במימוש אקראי היא לכל הפחות n-1 , כאשר n הוא מספר התהליכים הרצים.
E N D
חסמי זמן ומקום תחתונים עבור מימושים א-חוסמים Time & Space Lower Bounds for Non-Blocking Implementations
אז מה הקטע? • נדבר על increment object ונראה שסיבוכיות הזמן שלו במימוש אקראי היא לכל הפחותn-1, כאשר n הוא מספר התהליכים הרצים. • Increment object תומך בפעולת read המחזירה את מצבו של האובייקט ; ופעולת increment המוסיפה 1 למצבו של האובייקט.
מימוש אקראי • במימוש אקראי, תהליך מטיל מטבע לפני כל צעד שהוא מבצע ופועל בהתאם. • התהליך מקבל כקלט רשימת פעולות אינסופית op-list-i, המורכבת מן הפעולות הנתמכות ע"י האובייקט המדובר, כאשר comp-i מסמן את רשימתהפעולות שהושלמו ו-rem-i את היתר. • כתוצאה מכל צעד שביצע התהליך הוא יקבל בחזרה ack או return value. • מצבו של תהליך במימוש אקראי מאופיין ע"י ה-PC, comp-i והערכים שקיבל כתוצאה מפעולותיו.
ריצה במודל האקראי • "ריצה" היא רצף כלשהו של [p,t] כאשר p הינו תהליך הנמצא על סף ביצוע צעד כלשהו ו-t הינה תוצאת הטלת המטבע. • מה ניתן לומר על היחס בין מרחב הריצות הדטרמיניסטיות למרחב הריצות האקראיות?
קונפיגורציה ודמיון קונפיגורציות • קונפיגורציה C הינה וקטור : (st-1,…,st-n,rem-1,…,rem-n, O-1,…,O-m). • C1 ו-C2 תקראנה "דומות" אם מצבם הפנימי של כל התהליכים זהה ומצבם של האובייקטים המשותפים זהה. • C1 ו-C2 תקראנה "דומות מבחינת Pi" אם מצבו הפנימי של Pi זהה בשתיהן ומצב האובייקטים המשותפים זהה. • קונפיגורציה C הינה ברת-השגה אם קיימת קונפיגורציה התחלתית וריצה כך ששרשור הריצה לקונפיגורציה זו, תביא את המערכת לקונפיגורציה C.
לחימום הקנה • נניח שהאובייקט הממומש הינו counter, ותהינה שתי הריצות הבאות: • ,C1=C0(p1.inc,p1.read)C2=C0(p1.inc,p1.read,p2.read) • בהנחה שפעולת read אינה משנה את מצב האובייקט, מה ניתן לומר על שתי הקונפיגורציות הללו? • מה תהיה התשובה ללא הנחה זו?
Non-Blocking Implementations • Wait-free • Lock-free • "סיום יחידני" (Obstruction-free) תהליך pi יסיים את פעולתו באם ירוץ לבד החל מכל קונפיגורציה. במקרה האקראי – קיימת סדרת תוצאות מטבע כך שהתהליך יסיים את פעולתו.
מה הולך לקרות? • המטרה היא להוכיח שכל מימוש אקראי של increment object המקיים את התנאי "סיום יחידני", זקוק לפחות ל-(n-1) אובייקטי בסיס. בתום ההוכחה נגלה שקיבלנו גם חסם תחתון על סיבוכיות זמן הריצה. • נוכיח טענה זאת תחת הדרישה שאובייקטי הבסיס הם: register, swap register & resettable consensus
Register & swap register • Register – תומך בקריאה וכתיבה, כך שכתיבה מחזירה ack וקריאה מחזירה את מצב הרגיסטר. • Swap register – תומך בקריאה וכתיבה, כך שכתיבה מחזירה את הערך שהוחלף.
Consensus • אובייקט הקונצנזוס תומך בפעולת ה-decide / propose ומקיים שני תנאים: • הסכמה • ערכיות
Resettable consensus • תומך באיפוס וב-propose. מצבו של אובייקט מאופס הוא ֲ ואילו שאר המצבים האפשריים הם ערכי מספרים טבעיים. • פעולת איפוס מחזירה ack ופעולת propose(v) מחזירה v אם האובייקט מאופס, ואת w אם לא.
תזכורת למשפט: • עבור כל מימוש אקראי של increment object המקיים obstruction-freedom, יש צורך לפחות ב-n-1 אובייקטי בסיס. • נוכיח זאת באינדוקציה על...
התנאי הבלתי נגמר • תהיינה הריצות Λk,Σk,Πk, קבוצת אובייקטי הבסיס Skו-C0 קונפיגורציה התחלתית. • הריצות Λk,Σk אינן כוללות את Pn. • עבור k=0, מתקיים ש- Σkהינה הריצה הריקה. עבור k≥1 מתקיים ש- Σk הינה הריצה [Pik,Tk], [Pik-1,Tk-1],…,[Pi1,T1] כאשר כל התהליכים שונים אחד מהשני. • Πk הינה ריצה יחידנית של Pn. • |Sk| = k, כאשר הקבוצה מסמנת אובייקטי בסיס. • Sk הינה קבוצת כל אובייקטי הבסיס ש-Pn ניגש אליהם בריצה C0(ΛkΣkΠk). • בריצה C0(ΛkΣkΠk), הפעולה הראשונה של Pn (OP) על האובייקט הממומש (O) טרם הסתיימה, או בדיוק הסתיימה. • נסמן Free-k להיות הקבוצה {P1,…,Pn-1} – Process-Set(Σk). תהי γ ריצה כלשהי בה רק תהליכי Free-k לוקחים צעדים. ה-state של כל אובייקטי הבסיס שב-Skזהה בתום הריצות C0(ΛkΣk) ו- C0(ΛkγΣk).