Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון."— Presentation transcript:

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

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

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

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

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

6 מערכות הפעלה ( אביב 2006) חגית עטיה ©6 עותק יחיד מכל משאב ניתן לפשט את גרף בקשות - הקצאות P1P1 P2P2P3P3 R1R1R2R2R3R3

7 מערכות הפעלה ( אביב 2006) חגית עטיה ©7 גרף לבעיית הפילוסופים הסועדים P5P5 P4P1P1 P3P3P2

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

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

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

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

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

13 מערכות הפעלה ( אביב 2006) חגית עטיה ©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 2 1 3 4 1 2 3 4 5

14 מערכות הפעלה ( אביב 2006) חגית עטיה ©14 גילוי קיפאון עם עותק יחיד קיפאון קורה כשיש מעגל מכוון בגרף בקשות - הקצאות נובע מתנאי " החזק והמתן " ו -" המתנה מעגלית " גילוי קיפאון על - ידי זיהוי מעגל. P1P1 P2P2 P3P3 P4P4

15 מערכות הפעלה ( אביב 2006) חגית עטיה ©15 מספר עותקים מכל משאב קיפאון לא בהכרח קורה כשיש מעגל מכוון בגרף בקשות - הקצאות עם כמה עותקים מכל משאב יכול להיות מעגל אבל לא קיפאון. P1P1P2P2P3P3 R1R1 R2R2

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

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

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

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

20 מערכות הפעלה ( אביב 2006) חגית עטיה ©20 התחמקות : אלגוריתם הבנקאי  פרמטרים : Available – vector of size m – the number of available resources of each type Max – an n x m matrix – the maximum demand of each process for each resource type Allocation – an n x m matrix – the amount of currently allocated resources of each type to each resource Need – an n x m matrix – the remaining resources needed by each process ( Need = Max - Allocation ) Work and Finish – temporary arrays of size n

21 מערכות הפעלה ( אביב 2006) חגית עטיה ©21 התחמקות : אלגוריתם הבנקאי  הפרוטוקול : 1. Initialize Work := Available ; Finish :=[false, …,false]; 2. Find an i such that ( Finish [ i ]=false & Need [ i ]<= Work ) If none found, goto step 4; 3. Work := Work + Allocation [ i ]; Finish [ i ]:=true; goto step 2; 4. If Finish [ i ]=true for all i, then the system is safe לפני מתן אישור לבקשה למשאב ודא שהמכרעת תישאר במצב בטוח אם הבקשה היתה מתקבלת

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


Download ppt "מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון."

Similar presentations


Ads by Google