37
רררררר2002 1 ררררררDeadlock

נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

  • View
    233

  • Download
    4

Embed Size (px)

Citation preview

Page 1: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר 1

קיפאוןDeadlock

Page 2: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד2

נושאים

בעית הקיפאוןדוגמא–תנאים לקיפאון–

טיפול בקיפאוןמניעה, זיהוי ,התחמקות–אלגוריתמים למניעה והתחמקות–

Page 3: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד3

דוגמא – הפילוסופים הסועדים

פיתרון נאיבי בעזרת סמפורים לכל מזלגfork[i]נקצה סמפור ––p(fork[i-1]); p(fork[i]); eat; v(fork[i-1]); v(fork[i]) ;

בעיהכל פילוסוף תופס את–

המזלג השמאלי בו-זמניתותקוע בהמתנה לימני

!קיפאון

Page 4: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד4

הגדרה

קפאון הוא מצב בו אף אחד מהתהליכים/חוטים במערכת אינו יכול לבצע את הפקודה

הבאה בתכנית שלו.

כל אחד מארבעת התנאים הבאיםאבחנה:

חייב להתקיים כדי שייווצר קיפאון:

Page 5: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד5

תנאים לקיפאוןמניעה הדדית1.

ישנם משאבים שרק תהליך אחד יכול לעשות שימוש בהם –בו-זמנית

החזק והמתן2.ישנו תהליך המחזיק משאב ומחכה למשאב אחר שבשימוש –

אצל תהליך אחר

לא ניתן להפקיע משאבים3.לא ניתן להפקיע משאב מתהליך ללא הסכמתו–

המתנה מעגלית4. מחכה למשאב המוחזק ע"י Pi תהליכים כך ש-nקיימים –

P(i+1)mod n (0<=i<=n-1)

Page 6: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד6

דרכי התמודדות עם קיפאון

מניעה(prevention)לקבוע מדיניות שתימנע קיפאון–

התחמקות(avoidance)להשתמש במידע מוקדם על צרכיו של כל תהליך כדי –

להראות שלא קורה גילוי והתאוששות(detection and recovery)

מאפשרים למערכת להגיע לקיפאון–כאשר זה קורה, המערכת תגלה זאת ותיחלץ מהמצב–

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

Page 7: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד7

Preventionמניעת קיפאון –

מניעה הדדית1. המשאבים ניתנים לשימוש כללמשל, בנית מערכת שבה –

משותף בו-זמנית

החזק והמתן2.למשל, לא נאפשר לתהליך להמתין למשאב כאשר הוא –

מחזיק משאב אחר

לא ניתן להפקיע משאבים3.למשל, נאפשר להפקיע משאבים מתהליך שכרגע –

בהמתנה

המתנה מעגלית4.נקבע מדיניות שתמנע המתנה מעגלית–

Page 8: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד8

מניעת קיפאוןמניעה המתנה מעגלית

נקבע סדר מלא בין השאבים–F(tape)=1, F(printer)=2, F(scanner)=3… ,

תהליכים יבקשו משאבים רק בסדר עולה לא יוכל לבקש printerתהליך שמחזיק את ה-–

tapeאת ה- או... תהליך שמבקש משאב מסדר נמוך

חייב לשחרר קודם משאבים מסדר גבוה

Page 9: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד9

גרף בקשות-הקצאות

נתאר מצב רגעי של מערכת ע"י הגרףהמכוון הבא

כל תהליך מתואר כעיגול– n עותקים מתואר כמלבן עם nמשאב בעל –

נקודותקשת מתהליך למשאב–

התהליך ממתין למשאב•

קשת מ(עותק של) משאב לתהליך–עותק של המשאב הוקצה לתהליך•

Page 10: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד10

גרף בקשות-הקצאותדוגמא

P1 מחזיק עותק של R2-ומהכה ל R1P2 מחזיק עותקים של R1-ו R2 ומחכה

R3ל-P3 מחזיק עותק של R3

P1 P2 P3

R1R2

R3

Page 11: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד11

גילוי קיפאון

משפט: אם יש קיפאון אזי קיים מעגלמכוון בגרף בקשות-הקצאות

נובע מתנאי "החזק והמתן" ו-"המתנה מעגלית"– אבל... קיום מעגל אינו תנאי מספיק

P1לקיפאון! P2 P3

R1R2

Page 12: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד12

גילוי קיפאוןעותק יחיד של כל משאב

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

בקשות-הקצאות אם ורק אם יש קיפאון המתנה מעגלית–

P1 P2 P3

R1 R3R2

P4

R4

Page 13: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד13

גילוי קיפאוןעותק יחיד של כל משאב

זיהוי מעגל–Sהיא קבוצת כל הצמתים ללא קשתות יוצאות

אלגוריתםS כלשהו ב-j, עבור j הנכנסת לצומת ijכל עוד יש קשת –

מהגרףijמחק את הקשת •S ל-i אין קשתות יוצאות, הוסף את iאם ל-•

לא מכיל את כל הצמתים בגרף, אזי יש מעגל Sאם בסוף –C?S ו-Cמהו היחס בין הצמתים ב-•

סיבוכיות–O(|E|) כאשר Eהיא קבוצת הקשתות

Page 14: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד14

גילוי מעגל – דוגמא

S

Page 15: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד15

גילוי מעגל – דוגמא

S

Page 16: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד16

גילוי מעגל – דוגמא

S

Page 17: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד17

גילוי מעגל – דוגמא

S

Page 18: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד18

זיהוי קיפאוןמספר עותקים מכל משאב

כפי שראינו, גילוי מעגל אינו תנאי מספיקדרוש כלי חזק יותר–

פריקות של גרף בקשות-הקצאות צומת/תהליך אם ניתן לספק את כל לצמצםניתן –

בקשותיובעת הצמצום משחררים את כל המשאבים שברשותו•

אם ניתן לצמצם תהליך כלשהופריקגרף הוא – אם קיימת סדרת פריק לחלוטיןגרף הוא –

צמצומים שבסיומה כל צמתי הגרף מבודדים

Page 19: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד19

צמצום גרף בקשות-הקצאות

P1 P2 P3

R1 R2

P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P(2 (או P4כעת ניתן לספק את כל צרכיו של •

P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •

R3

Page 20: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד20

צמצום גרף בקשות-הקצאות

P1 P2 P3

R1 R2

P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P4 (R2)כעת ניתן לספק את כל צרכיו של •

P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •

R3

Page 21: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד21

צמצום גרף בקשות-הקצאות

P1 P2 P3

R1 R2

P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P4 (R2)כעת ניתן לספק את כל צרכיו של •

P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •

R3

Page 22: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד22

צמצום גרף בקשות-הקצאות

P1 P2 P3

R1 R2

P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P4 (R2)כעת ניתן לספק את כל צרכיו של •

P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •

R3

Page 23: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד23

צמצום גרף בקשות-הקצאות

P1 P2 P3

R1 R2

P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P4 (R2)כעת ניתן לספק את כל צרכיו של •

P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •

הגרף פריק לחלוטין

R3

Page 24: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד24

סדרת צמצומים מירבית בגרף בקשות-הקצאות

הגדרהסדרת צמצומים בגרף בקשות-הקצאות היא –

מירבית אם לא ניתן להמשיך לצמצם צמתיםטענה

כל סדרות הצמצומים המירביות מביאות לאותו –גרף בלתי פריק

Page 25: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד25

סדרת צמצומים מירבית בגרף בקשות-הקצאות

הוכחהנסתכל על שתי סדרות צמצומים מירביות–

•p1, …, pk -ו q1, …, qr

נניח (בדרך השלילה) שהן אינן מכילות את אותם –התהליכים

q1, …, qr שאינו מופיע ב-piנתבונן בתהליך הראשון –pi ניתן לצמצם את q1, …, qi-1אחרי –pi עדיין ניתן לצמצם את q1, …, qrולכן אחרי –סתירה!–

Page 26: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד26

פריקות לחלוטיןP4

P5

P2

R1 R2

P1

R3 R4

P3

P1, P5ניתן לצמצם את •

Page 27: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד27

פריקות לחלוטיןP4

P5

P2

R1 R2

P1

R3 R4

P3

לאחר מכן,לא ניתן לצמצם תהליכים אחרים•הגרף אינו פריק לחלוטין!•

Page 28: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד28

פריקות לחלוטין וקפאון

משפט )עבור מקרה של מספר עותקים מכלמשאב(

גרף בקשות-הקצאות הוא פריק לחלוטין אם ורק אם אין –קיפאון

הוכחהאם הגרף פריק לחלוטין סדרת צמצום מירבית משרה סדרת –

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

יתקבל גרף לא פריקקבוצת הצמתים הלא מבודדים משרה קבוצת תהליכים שאינם •

יכולים להתקדם

Page 29: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד29

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

הרעיון: בדיקת פריקות גרף הקצאות-בקשות עם כל הצמתים שאינם מחכים למשאביםLנאתחל קבוצה –L ב-Piעבור כל תהליך –

Piשחרר את כל המשאבים התפוסים ע"י • אשר ניתן לספק את כל צרכיוPkעבור כל תהליך •

L ל- Pkהוסף את –

אינו מכיל את כל התהליכים אזי יש קיפאוןLאם בסיום –סיבוכיות

–O(m n2)•mמספר המשאבים – •nמספר התהליכים –

Page 30: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד30

החלצות מקיפאון

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

מציאת קבוצה אופטימלית )של תהליכים אוNP-Completeמשאבים( היא

–feedback vertex set קבוצת צמתים מינימלית שתהפוך גרף לחסר מעגלים•

–feedback arc setקבוצת קשתות מינימלית שתהפוך גרף לחסר מעגלים•

Page 31: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד31

התחמקות מקיפאון –Deadlock Avoidance

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

המשאבים שהוצהרו, מבלי להיכנס לקיפאוןהתחמקות מקיפאון

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

אלגוריתם שמרנידורש הנחות מחמירות לגבי דרישות התהליכים–

Page 32: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד32

התחמקות מקיפאוןדוגמא

תהליכיםP1-ו P2 מצהירים על כוונה לבקש את המדפסת ואת כונן הסרטים

מבקש את המדפסתP1תהליך –הבקשה נענית•

מבקש את כונן הסרטיםP2תהליך – יבקש את המדפסת P1הבקשה נדחית... אם •

בהמשך, ייווצר קיפאון

Page 33: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד33

התחמקות מקיפאוןאלגוריתם הבנקאי

עקרונות האלגוריתםתהליכים המגיעים למערכת מצהירים על –

כוונותם המירביות לבקשות משאבים – לכל משאב

אם תהליך מבקש עותק ממשאב,הבקשה –תיענה אם

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

Page 34: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד34

אלגוריתם הבנקאיפירוט

משתנים–available[1..m]מספר עותקים פנויים מכל משאב – –max[1..n, 1..m] מספר עותקים מקסימלי שתהליך –

יכול לבקש (הצהרה)–allocation [1..n, 1..m] מספר העותקים של –

המשאב שכעת מוקצים לתהליך–need[i,j]=max[i,j]-allocation[i,j]

עלול לבקשiמספר העותקים של המשאב שהתהליך •

פעולות וקטוריות–X Y אמ"ם X[i] Y[i] 1 לכל i m

Page 35: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד35

אלגוריתם הבנקאיפירוט

L =

while there is a PiL and need[i] available do

available:=available+allocation[i]

add Pi to L

end

if L contains all processes then

this is a safe state

Page 36: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד36

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

?"בטוח“

ניתן לצמצם אתP2P1 ו-P3לאחר שחרור משאביו, ניתן לצמצם את –

A B C

P1 0 1 0

P2 2 1 0

P3 1 0 3

Total 3 2 3

A B C

3 1 1

2 1 4

3 2 3

A B C

0 3 4

A B C

3 0 1

0 0 4

2 2 0

allocation max available need

Page 37: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,

2002נובמבר עמוד37

סיכום

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

פעולה כבדה–האחריות נשארת אצל המתכנת –הריגת תהליך מאפשרת להיחלץ מקיפאון–

אך עלולות להשאיר את המערכת במצב לא תקין•

-בWindows NTWaitForMultipleObjectsפקודת –מקצה את כל משאבים יחד, אם כולם פנויים–