מרץ 2002אלן אזאגורי ©1 קיפאון deadlock. מרץ 2002 אלן אזאגורי...

37
ץץץ2002 © ץץץ ץץץץץץץ1 ץץץץץץDeadlock

Post on 21-Dec-2015

233 views

Category:

Documents


4 download

TRANSCRIPT

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

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

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

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

אצל תהליך אחר

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

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

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

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

2002מרץ אלן אזאגורי © עמוד5

)המשך(תנאים לקיפאון

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

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היא קבוצת כל הצמתים ללא קשתות יוצאות

אלגוריתםjS ,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ניתן לצמצם את •P4 (R2)כעת ניתן לספק את כל צרכיו של •

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פקודת –מקצה את כל משאבים יחד, אם כולם פנויים–