os - deadlock Flashcards

1
Q

מה הוא משאב בלעדי?

A

מוצר הדורש גישה אקסקלוסיבית (לדוגמה: מדפסת). משאב הניתן לחילוץ: משאב שניתן לקחת מתהליך בלי לגרום לתהליך להיפגע. משאב שלא ניתן לחילוץ: לקיחת המשאב מהתהליך תגרום לו להיכשל.


How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

סדר הפעולות הנדרש לשימוש במשאב

A

בקשת המשאב, שימוש בו ושחרורו.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

קיפאון (deadlock)

A

קבוצת תהליכים נמצאת במצב קיפאון, אם כל תהליך בקבוצה מחכה לאירוע הנמצא בשליטתו של תהליך אחר בקבוצה.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

ארבעת התנאים לקיפאון

A

מניעה הדדית: כל משאב מוקצה לתהליך אחד לכל היותר.

החזקה והמתנה: תהליך המחזיק משאב יכול לדרוש משאב אחר מבלי לשחרר את המשאב שהוא מחזיק.

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

מעגל המתנה: חייב להתקיים מעגל שבו כל תהליך מחזיק במשאב הנדרש על ידי תהליך אחר במעגל.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

האם תהליך יחיד יכול להיות בקיפאון?

A

לא

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

מה ההסתברות לצאת מקיפאון

A

0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

pid נחשב למשאב אקסקלוסיבי
כיצד fork מתמודדת עם משאב זה?

A

Fork מחזירה כישלון במקום להמתין בעת ניסיון לייצר בן חדש, כיוון ש-pid נחשב למשאב אקסקלוסיבי. המתנה של כמה תהליכים שמנסים לעשות fork גורמת לקיפאון.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

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

A

התעלמות מהבעיה
גילוי והחלמה
התחמקות
מניעה

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

התמודדת עם קיפאון באמצעות התעלמות מהבעיה

A

ניח שהבעיה אינה קיימת. טיפול בקיפאון דורש מאמץ חישובי רב, וכשהוא קורה לעיתים נדירות ניתן להתעלם מהבעיה- שיטת בת היענה

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

התמודדות עם קיפאון באמצעות גילוי והחלמה

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

התמודדות עם קיפאון באמצעות התחמקות

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

התמודדות עם קיפאון באמצעות מניעה

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

התמודדות עם קיפאון באמצעות מניעה של ״מניעה הדדית״

A

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


How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

התמודדות עם קיפאון באמצעות מניעה של ״החזקה והמתנה״

A

ניסיון למנוע את ההמתנה. על מערכת ההפעלה לספק את כל צרכיו של תהליך מראש, אך דבר זה גורם לבזבוז משאבים עצום, ובכלל לא תמיד ניתן לחזות את צרכיו של תהליך מראש. דרך פעולה אחרת היא שתהליך שרוצה לבקש משאב- עליו להחזיר את כל המשאבים שבבעלותו ואז לבקש את כל המשאבים שהוא צריך ביחד. דבר זה עלול לגרום לסדרה אינסופית של הקצאות ושחרורים. 


How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

התמודדות עם קיפאון באמצעות חילוץ כפוי (מניעה)

A

כל משאב הניתן לחילוץ יחולץ. לא מומלץ להשתמש בשיטה זאת עבור תהליכים שלא ניתנים לחילוץ, כיוון שהוא עלול לגרום לנזק חמור לתהליך

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

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

A

ניתן לקבוע כמדיניות שתהליך רשאי להחזיק רק משאב אחד כל פעם, אך אין טעם רב במדיניות זאת. ניתן גם להקצות משאבים בסדר קבוע מראש- סידור המשאבים בסדר מסוים, כך שניתן להקצות אותם בסדר זה בלבד. קשה לממש שיטה זו

17
Q

נעילה בשני מעברים (Two-Phase Locking)

A

במעבר הראשון התהליך מנסה לנעול את כל הרשומות שהוא צריך בזו אחר זו. אם כל הנעילות מצליחות, במעבר השני התהליך מתחיל לעדכן ולשחרר את הנעילות. אם במהלך המעבר הראשון התהליך נכשל בנעילתה של רשומה, התהליך משחרר את כל הרשימות שהוא נעל וחוזר לשלב הראשון.

18
Q

הרעבה

A

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

הרעבה היא אינה קיפאון!!