Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "טיפול בקיפאון בעיית הקיפאון הימנעות מקיפאון"— Presentation transcript:

1 טיפול בקיפאון בעיית הקיפאון הימנעות מקיפאון
זיהוי קיפאון באמצעות מציאת מעגלים אלגוריתם להתחמקות מקיפאון מערכות הפעלה (אביב 2004) חגית עטיה ©

2 דוגמא: הפילוסופים הסועדים
כל פילוסוף מבלה ב- חשיבה (thinking) ניסיון להשיג מזלגות (hungry) אוכל (eating) מערכות הפעלה (אביב 2004) חגית עטיה ©

3 פילוסופים סועדים: עם סמפורים
ריצה פשוטה? קיפאון! פיתרון פשוט סמפור fork[i] לכל מזלג wait(fork[i]) wait(fork[i+1]) eat signal(fork[i]) signal(fork[i+1]) 5 1 1 5 2 4 4 3 2 3 מערכות הפעלה (אביב 2004) חגית עטיה ©

4 גרף בקשות-הקצאות נתאר מצב (בזמן מסוים) של מערכת על-ידי גרף מכוון (דו-צדדי) עיגול לכל תהליך מלבן עם n נקודות למשאב עם n עותקים קשת מתהליך למשאב התהליך ממתין למשאב קשת מעותק של משאב לתהליך עותק של המשאב הוקצה לתהליך מערכות הפעלה (אביב 2004) חגית עטיה ©

5 גרף בקשות-הקצאות: דוגמא
P1 מחזיק עותק של R2 ומחכה ל-R1 P2 מחזיק עותקים של R1 ו-R2 ומחכה ל-R3 P3 מחזיק עותק של R3 P1 P2 P3 R1 R3 R2 מערכות הפעלה (אביב 2004) חגית עטיה ©

6 עותק יחיד מכל משאב ניתן לפשט את גרף בקשות-הקצאות P1 P2 P3 R1 R2 R3
מערכות הפעלה (אביב 2004) חגית עטיה ©

7 גרף לבעיית הפילוסופים הסועדים
P5 P4 P1 P3 P2 מערכות הפעלה (אביב 2004) חגית עטיה ©

8 קיפאון קבוצת תהליכים / חוטים שבה כל אחד ממתין למשאב המוחזק על-ידי מישהו אחר בקבוצה. מתקיימים התנאים הבאים: יש מניעה הדדית משאבים שרק תהליך אחד יכול לעשות שימוש בהם בו-זמנית מערכת שבה כל המשאבים ניתנים לשימוש משותף בו-זמנית? מערכות הפעלה (אביב 2004) חגית עטיה ©

9 קיפאון קבוצת תהליכים / חוטים שבה כל אחד ממתין למשאב המוחזק על-ידי מישהו אחר בקבוצה. מתקיימים התנאים הבאים: יש מניעה הדדית החזק והמתן תהליך מחזיק משאב ומחכה למשאב אחר שבשימוש אצל תהליך אחר תהליך לא ממתין למשאב אם כבר מחזיק משאב אחר? מערכות הפעלה (אביב 2004) חגית עטיה ©

10 קיפאון קבוצת תהליכים / חוטים שבה כל אחד ממתין למשאב המוחזק על-ידי מישהו אחר בקבוצה. מתקיימים התנאים הבאים: יש מניעה הדדית החזק והמתן לא ניתן להפקיע משאבים נפקיע משאבים מתהליך בהמתנה? מערכות הפעלה (אביב 2004) חגית עטיה ©

11 קיפאון קבוצת תהליכים / חוטים שבה כל אחד ממתין למשאב המוחזק על-ידי מישהו אחר בקבוצה. מתקיימים התנאים הבאים: יש מניעה הדדית החזק והמתן לא ניתן להפקיע משאבים המתנה מעגלית... תהליכים P0,P1,…,Pn-1 Pi מחכה למשאב המוחזק ע"י P(i+1) mod n מערכות הפעלה (אביב 2004) חגית עטיה ©

12 מניעת המתנה מעגלית תהליכים P0,P1,…,Pn-1 נקבע סדר מלא בין המשאבים
Pi מחכה למשאב המוחזק ע"י P(i+1) mod n נקבע סדר מלא בין המשאבים F(tape)=1, F(printer)=2, F(scanner)=3, … תהליכים יבקשו משאבים רק בסדר עולה תהליך שמחזיק את ה-printer לא יוכל לבקש את ה-tape או... תהליך שמבקש משאב מסדר נמוך חייב לשחרר קודם משאבים מסדר גבוה מערכות הפעלה (אביב 2004) חגית עטיה ©

13 מניעת המתנה מעגלית בבעיית הפילוסופים הסועדים
בקשת מזלגות בסדר עולה... if ( i = 5) then wait(fork[1]) wait(fork[5]) else wait(fork[i]) wait(fork[i+1]) eat signal(fork[i+1]) signal(fork[i]) 5 1 1 5 2 4 4 3 2 3 מערכות הפעלה (אביב 2004) חגית עטיה ©

14 גילוי קיפאון עם עותק יחיד
קיפאון  יש מעגל מכוון בגרף בקשות-הקצאות נובע מתנאי "החזק והמתן" ו-"המתנה מעגלית" גילוי קיפאון על-ידי זיהוי מעגל. P2 P3 P1 אלגוריתם ידוע (קורס "אלגוריתמים בתורת הגרפים"), בסיבוכיות O(m), כאשר m מספר הקשתות P4 מערכות הפעלה (אביב 2004) חגית עטיה ©

15 מספר עותקים מכל משאב קיפאון  יש מעגל מכוון בגרף בקשות-הקצאות
עם כמה עותקים מכל משאב יכול להיות מעגל אבל לא קיפאון. P1 P2 P3 R1 R2 מערכות הפעלה (אביב 2004) חגית עטיה ©

16 היחלצות מקיפאוןRecovery
ביטול כל התהליכים המצויים במצב קיפאון. ביטול תהליכים אחד-אחד עד להיחלצות. הפקעת משאבים. מציאת קבוצה אופטימאלית (של תהליכים או משאבים) לביטול היא בעיה קשה מאוד. מערכות הפעלה (אביב 2004) חגית עטיה ©

17 התחמקות מקיפאון Avoidance
דואגים להשאיר את המערכת במצב בטוח תהליכים מצהירים על כוונתם לבקש משאבים אסור לתהליך לבקש משאב שלא הצהיר עליו מצב הוא בטוח אם קיימת סדרת הקצאות לכל המשאבים שהוצהרו, מבלי להיכנס לקיפאון. אם היענות לבקשה עלולה להכניס את המערכת למצב לא בטוח, הבקשה נידחת. אלגוריתם שמרני הנחות מחמירות לגבי דרישות התהליכים מערכות הפעלה (אביב 2004) חגית עטיה ©

18 התחמקות מקיפאון: דוגמא
P1 ו-P2 מצהירים על כוונה לבקש את המדפסת והדיסק P1 מבקש את המדפסת הבקשה נענית P2 מבקש את הדיסק הבקשה נדחית... אם P2 יבקש את המדפסת בהמשך, יהיה קיפאון ובאופן כללי, אלגוריתם הבנקאי... מערכות הפעלה (אביב 2004) חגית עטיה ©

19 התחמקות: אלגוריתם הבנקאי
כאשר תהליך מגיע למערכת, מצהיר כמה עותקים ירצה (לכל היותר) מכל משאב. אם תהליך מבקש עותק ממשאב,הבקשה תיענה אם יש מספיק עותקים פנויים. לא חורג מההצהרה ההתחלתית. ההקצאה משאירה את המערכת במצב בטוח: תוכל לספק את הבקשות של תהליכים שכבר נמצאים במערכת עד למקסימום המוצהר לכל סוג משאב חייבים להוסיף דוגמת הרצה, או פירוט נוסף. מערכות הפעלה (אביב 2004) חגית עטיה ©

20 קיפאון: הערות רוב מערכות ההפעלה לא דואגות למנוע קיפאון. ב-Windows NT
פעולה כבדה. האחריות נשארת אצל המתכנת . הריגת תהליך מאפשרת להיחלץ מקיפאון. אך עלולה להשאיר את המערכת במצב לא תקין. ב-Windows NT פקודת WaitForMultipleObjects. מקצה את כל המשאבים בבת-אחת, אם כולם פנויים. מערכות הפעלה (אביב 2004) חגית עטיה ©


Download ppt "טיפול בקיפאון בעיית הקיפאון הימנעות מקיפאון"

Similar presentations


Ads by Google