נובמבר 2002 1 קיפאון deadlock. נובמבר 2002 2עמוד נושאים בעית...
Post on 21-Dec-2015
240 views
TRANSCRIPT
![Page 1: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/1.jpg)
2002נובמבר 1
קיפאוןDeadlock
![Page 2: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/2.jpg)
2002נובמבר עמוד2
נושאים
בעית הקיפאוןדוגמא–תנאים לקיפאון–
טיפול בקיפאוןמניעה, זיהוי ,התחמקות–אלגוריתמים למניעה והתחמקות–
![Page 3: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/3.jpg)
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עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/4.jpg)
2002נובמבר עמוד4
הגדרה
קפאון הוא מצב בו אף אחד מהתהליכים/חוטים במערכת אינו יכול לבצע את הפקודה
הבאה בתכנית שלו.
כל אחד מארבעת התנאים הבאיםאבחנה:
חייב להתקיים כדי שייווצר קיפאון:
![Page 5: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/5.jpg)
2002נובמבר עמוד5
תנאים לקיפאוןמניעה הדדית1.
ישנם משאבים שרק תהליך אחד יכול לעשות שימוש בהם –בו-זמנית
החזק והמתן2.ישנו תהליך המחזיק משאב ומחכה למשאב אחר שבשימוש –
אצל תהליך אחר
לא ניתן להפקיע משאבים3.לא ניתן להפקיע משאב מתהליך ללא הסכמתו–
המתנה מעגלית4. מחכה למשאב המוחזק ע"י Pi תהליכים כך ש-nקיימים –
P(i+1)mod n (0<=i<=n-1)
![Page 6: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/6.jpg)
2002נובמבר עמוד6
דרכי התמודדות עם קיפאון
מניעה(prevention)לקבוע מדיניות שתימנע קיפאון–
התחמקות(avoidance)להשתמש במידע מוקדם על צרכיו של כל תהליך כדי –
להראות שלא קורה גילוי והתאוששות(detection and recovery)
מאפשרים למערכת להגיע לקיפאון–כאשר זה קורה, המערכת תגלה זאת ותיחלץ מהמצב–
להתעלם מהבעיהלהניח שהמצב כמעט ואינו קורה...–
![Page 7: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/7.jpg)
2002נובמבר עמוד7
Preventionמניעת קיפאון –
מניעה הדדית1. המשאבים ניתנים לשימוש כללמשל, בנית מערכת שבה –
משותף בו-זמנית
החזק והמתן2.למשל, לא נאפשר לתהליך להמתין למשאב כאשר הוא –
מחזיק משאב אחר
לא ניתן להפקיע משאבים3.למשל, נאפשר להפקיע משאבים מתהליך שכרגע –
בהמתנה
המתנה מעגלית4.נקבע מדיניות שתמנע המתנה מעגלית–
![Page 8: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/8.jpg)
2002נובמבר עמוד8
מניעת קיפאוןמניעה המתנה מעגלית
נקבע סדר מלא בין השאבים–F(tape)=1, F(printer)=2, F(scanner)=3… ,
תהליכים יבקשו משאבים רק בסדר עולה לא יוכל לבקש printerתהליך שמחזיק את ה-–
tapeאת ה- או... תהליך שמבקש משאב מסדר נמוך
חייב לשחרר קודם משאבים מסדר גבוה
![Page 9: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/9.jpg)
2002נובמבר עמוד9
גרף בקשות-הקצאות
נתאר מצב רגעי של מערכת ע"י הגרףהמכוון הבא
כל תהליך מתואר כעיגול– n עותקים מתואר כמלבן עם nמשאב בעל –
נקודותקשת מתהליך למשאב–
התהליך ממתין למשאב•
קשת מ(עותק של) משאב לתהליך–עותק של המשאב הוקצה לתהליך•
![Page 10: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/10.jpg)
2002נובמבר עמוד10
גרף בקשות-הקצאותדוגמא
P1 מחזיק עותק של R2-ומהכה ל R1P2 מחזיק עותקים של R1-ו R2 ומחכה
R3ל-P3 מחזיק עותק של R3
P1 P2 P3
R1R2
R3
![Page 11: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/11.jpg)
2002נובמבר עמוד11
גילוי קיפאון
משפט: אם יש קיפאון אזי קיים מעגלמכוון בגרף בקשות-הקצאות
נובע מתנאי "החזק והמתן" ו-"המתנה מעגלית"– אבל... קיום מעגל אינו תנאי מספיק
P1לקיפאון! P2 P3
R1R2
![Page 12: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/12.jpg)
2002נובמבר עמוד12
גילוי קיפאוןעותק יחיד של כל משאב
משפט:בהנחה שיש עותק יחיד של כלמשאב, קיים מעגל מכוון בגרף
בקשות-הקצאות אם ורק אם יש קיפאון המתנה מעגלית–
P1 P2 P3
R1 R3R2
P4
R4
![Page 13: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/13.jpg)
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עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/14.jpg)
2002נובמבר עמוד14
גילוי מעגל – דוגמא
S
![Page 15: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/15.jpg)
2002נובמבר עמוד15
גילוי מעגל – דוגמא
S
![Page 16: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/16.jpg)
2002נובמבר עמוד16
גילוי מעגל – דוגמא
S
![Page 17: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/17.jpg)
2002נובמבר עמוד17
גילוי מעגל – דוגמא
S
![Page 18: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/18.jpg)
2002נובמבר עמוד18
זיהוי קיפאוןמספר עותקים מכל משאב
כפי שראינו, גילוי מעגל אינו תנאי מספיקדרוש כלי חזק יותר–
פריקות של גרף בקשות-הקצאות צומת/תהליך אם ניתן לספק את כל לצמצםניתן –
בקשותיובעת הצמצום משחררים את כל המשאבים שברשותו•
אם ניתן לצמצם תהליך כלשהופריקגרף הוא – אם קיימת סדרת פריק לחלוטיןגרף הוא –
צמצומים שבסיומה כל צמתי הגרף מבודדים
![Page 19: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/19.jpg)
2002נובמבר עמוד19
צמצום גרף בקשות-הקצאות
P1 P2 P3
R1 R2
P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P(2 (או P4כעת ניתן לספק את כל צרכיו של •
P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •
R3
![Page 20: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/20.jpg)
2002נובמבר עמוד20
צמצום גרף בקשות-הקצאות
P1 P2 P3
R1 R2
P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P4 (R2)כעת ניתן לספק את כל צרכיו של •
P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •
R3
![Page 21: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/21.jpg)
2002נובמבר עמוד21
צמצום גרף בקשות-הקצאות
P1 P2 P3
R1 R2
P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P4 (R2)כעת ניתן לספק את כל צרכיו של •
P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •
R3
![Page 22: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/22.jpg)
2002נובמבר עמוד22
צמצום גרף בקשות-הקצאות
P1 P2 P3
R1 R2
P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P4 (R2)כעת ניתן לספק את כל צרכיו של •
P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •
R3
![Page 23: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/23.jpg)
2002נובמבר עמוד23
צמצום גרף בקשות-הקצאות
P1 P2 P3
R1 R2
P4R3ו-R2 ולשחרר את P3ניתן לצמצם את •P4 (R2)כעת ניתן לספק את כל צרכיו של •
P1אך לא של •P1 ו-P2אחר-כך ניתן לצמצם את •
הגרף פריק לחלוטין
R3
![Page 24: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/24.jpg)
2002נובמבר עמוד24
סדרת צמצומים מירבית בגרף בקשות-הקצאות
הגדרהסדרת צמצומים בגרף בקשות-הקצאות היא –
מירבית אם לא ניתן להמשיך לצמצם צמתיםטענה
כל סדרות הצמצומים המירביות מביאות לאותו –גרף בלתי פריק
![Page 25: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/25.jpg)
2002נובמבר עמוד25
סדרת צמצומים מירבית בגרף בקשות-הקצאות
הוכחהנסתכל על שתי סדרות צמצומים מירביות–
•p1, …, pk -ו q1, …, qr
נניח (בדרך השלילה) שהן אינן מכילות את אותם –התהליכים
q1, …, qr שאינו מופיע ב-piנתבונן בתהליך הראשון –pi ניתן לצמצם את q1, …, qi-1אחרי –pi עדיין ניתן לצמצם את q1, …, qrולכן אחרי –סתירה!–
![Page 26: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/26.jpg)
2002נובמבר עמוד26
פריקות לחלוטיןP4
P5
P2
R1 R2
P1
R3 R4
P3
P1, P5ניתן לצמצם את •
![Page 27: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/27.jpg)
2002נובמבר עמוד27
פריקות לחלוטיןP4
P5
P2
R1 R2
P1
R3 R4
P3
לאחר מכן,לא ניתן לצמצם תהליכים אחרים•הגרף אינו פריק לחלוטין!•
![Page 28: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/28.jpg)
2002נובמבר עמוד28
פריקות לחלוטין וקפאון
משפט )עבור מקרה של מספר עותקים מכלמשאב(
גרף בקשות-הקצאות הוא פריק לחלוטין אם ורק אם אין –קיפאון
הוכחהאם הגרף פריק לחלוטין סדרת צמצום מירבית משרה סדרת –
הקצאות שתביא לסיום כל התהליכיםאם הגרף לא פריק לחלוטין, מסדרת צמצום מירבית כלשהי –
יתקבל גרף לא פריקקבוצת הצמתים הלא מבודדים משרה קבוצת תהליכים שאינם •
יכולים להתקדם
![Page 29: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/29.jpg)
2002נובמבר עמוד29
אלגוריתם לזיהוי קיפאון מספר עותקים מכל משאב
הרעיון: בדיקת פריקות גרף הקצאות-בקשות עם כל הצמתים שאינם מחכים למשאביםLנאתחל קבוצה –L ב-Piעבור כל תהליך –
Piשחרר את כל המשאבים התפוסים ע"י • אשר ניתן לספק את כל צרכיוPkעבור כל תהליך •
L ל- Pkהוסף את –
אינו מכיל את כל התהליכים אזי יש קיפאוןLאם בסיום –סיבוכיות
–O(m n2)•mמספר המשאבים – •nמספר התהליכים –
![Page 30: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/30.jpg)
2002נובמבר עמוד30
החלצות מקיפאון
אפשרויות החלצות מקיפאוןביטול כל התהליכים המצויים במצב קיפאון–ביטול תהליכים אחד אחד עד להחלצות–הפקעת משאבים–
מציאת קבוצה אופטימלית )של תהליכים אוNP-Completeמשאבים( היא
–feedback vertex set קבוצת צמתים מינימלית שתהפוך גרף לחסר מעגלים•
–feedback arc setקבוצת קשתות מינימלית שתהפוך גרף לחסר מעגלים•
![Page 31: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/31.jpg)
2002נובמבר עמוד31
התחמקות מקיפאון –Deadlock Avoidance
דואגים להשאיר את המערכת במצב בטוחתהליכים מצהירים על כוונותם לבקש משאבים–אסור לתהליך לבקש משאב שלא הצהיר עליו–מצב הוא בטוח אם קיימת סדרת הקצאות לכל –
המשאבים שהוצהרו, מבלי להיכנס לקיפאוןהתחמקות מקיפאון
בעת בקשה בפועל, אם היענות לבקשה תכניס את –המערכת למצב לא בטוח, הבקשה נדחת
אלגוריתם שמרנידורש הנחות מחמירות לגבי דרישות התהליכים–
![Page 32: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/32.jpg)
2002נובמבר עמוד32
התחמקות מקיפאוןדוגמא
תהליכיםP1-ו P2 מצהירים על כוונה לבקש את המדפסת ואת כונן הסרטים
מבקש את המדפסתP1תהליך –הבקשה נענית•
מבקש את כונן הסרטיםP2תהליך – יבקש את המדפסת P1הבקשה נדחית... אם •
בהמשך, ייווצר קיפאון
![Page 33: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/33.jpg)
2002נובמבר עמוד33
התחמקות מקיפאוןאלגוריתם הבנקאי
עקרונות האלגוריתםתהליכים המגיעים למערכת מצהירים על –
כוונותם המירביות לבקשות משאבים – לכל משאב
אם תהליך מבקש עותק ממשאב,הבקשה –תיענה אם
אין חריגה מההצהרות המקוריות•יש מספיק עותקים פנויים•ההקצאה משאירה את המערכת במצב בטוח•
![Page 34: נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/34.jpg)
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עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/35.jpg)
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עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/36.jpg)
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עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה,](https://reader035.vdocuments.net/reader035/viewer/2022062300/56649d5f5503460f94a3ef4a/html5/thumbnails/37.jpg)
2002נובמבר עמוד37
סיכום
רוב מערכות ההפעלה אינם דואגות למנועקיפאון
פעולה כבדה–האחריות נשארת אצל המתכנת –הריגת תהליך מאפשרת להיחלץ מקיפאון–
אך עלולות להשאיר את המערכת במצב לא תקין•
-בWindows NTWaitForMultipleObjectsפקודת –מקצה את כל משאבים יחד, אם כולם פנויים–