עיצוב מבנה נתונים של Robust לסביבת מחשוב במקביל ומקבילה
תכנון מבני נתונים המבצעים ביעילות בסביבות מחשוב במקביל ומקבילה חיוני לפיתוח תוכנה מודרני. מבנים אלה חייבים להתמודד עם תהליכים מרובים או חוטים גישה ושינוי נתונים בו זמנית מבלי לגרום שגיאות או אי-consistencies.
אתגרים במבנה נתונים במקביל ומקביל
אחד האתגרים העיקריים הוא להבטיח שלמות נתונים כאשר חוטים מרובים גישה משאבים משותפים.תנאים של גזע, מחסומים מתים, ושחיתות נתונים יכול להתרחש אם סינכרון לא מנוהל כראוי.בנוסף, צווארי בקבוק ביצועים עשויים להתעורר עקב נעילה מופרזת או אלגוריתמים לא יעילים.
עקרונות עיצוב עבור Robust Data Structures
מבנים נתונים יעילים לסביבות מקבילות צריכים עדיפות לבטיחות חוט, דרוגיות, ומנעול מינימלי.שימוש באלגוריתמים ללא מנעול או ללא המתנה יכול להפחית את התוכן ולשפר את הביצועים.עיצוב של חוסר יכולת ושימוש בפעולות אטומיות הם גם אסטרטגיות נפוצות.
טכניקות ותבניות נפוצות
- (ב) אלגוריתמים ללא תשלום: 1FLT) משתמשים בפעולות אטומיות כדי להימנע ממניעה של מנגנונים.
- (ב) ,0) ,מבנים נתונים שניתן לעיין בהם: בורא עולם: בורא עולם: בורא עולם לא משתנה לאחר הבריאה, מפשט גישה זו.
- (ב) ,0) תורים וערימות: חליל 1 (הופנה מהדף ⁇ ⁇ ) אוספים בטוחים חוטים לצורך תקשורת בין חוטים.
- (ב) ,0) מנעול: 1FIRLT: Lock only Small part of Data to Lose Contention.