שאלת מבחן במערכות הפעלה - האוניברסיטה הפתוחה 2015 - תהליכים
הוכיחו או הפריכו את הטענות הבאות לגבי אלגוריתם הבנקאי (
מלאו את הפרטים החסרים בטבלה הבאה: זמן הממנה לכל תהליך בהינתן מדיניות תזמון וזמן המתנה ממוצע לכל אחת ממדיניות התזמון:
banker algorithm). א. (10 נק') מהי בעיית היפוך עדיפויות (priority inversion problem)? כיצד היא יכולה להתעורר? כיצד ניתן להתגבר על הבעיה? ב. (20 נק') חמישה תהליכים הגיעו למערכת בסדר א"ב-י בזמן . הטבלה מטה מתארת את זמן ה CPU הנדרש לתהליכים הללו ואת עדיפותם (ערך קטן מסמל עדיפות גבוהה):| CPU Burst | Priority | |
|---|---|---|
| A | 3 | 3 |
| B | 7 | 5 |
| C | 5 | 1 |
| D | 2 | 4 |
| E | 6 | 2 |
| Scheduling Policy | Waiting Time A | Waiting Time B | Waiting Time C | Waiting Time D | Waiting Time E | Average Waiting Time |
|---|---|---|---|---|---|---|
| First-Come-First-Served | ||||||
| Non-Preemptive Shortest-Job First | ||||||
| Priority | ||||||
| Round-Robin (time quantum=2) |
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 822015סמסטר ב
★★★★★
תהליכיםתזמוןתזמון CPURound RobinFCFSSJFסנכרוןמנעוליםקטע קריטיהיפוך עדיפויותתזמון עדיפויות
חשבו על תרחיש עם שלושה תהליכים (עדיפות גבוהה, בינונית ונמוכה) ומשאב משותף כדי להבין את בעיית היפוך העדיפויות. לחישובי התזמון, הגדירו את נוסחת זמן ההמתנה וציירו דיאגרמת גנט עבור כל מדיניות.
א. היפוך עדיפויות (Priority Inversion)
הגדרה: היפוך עדיפויות הוא תרחיש במערכות מרובות-משימות שבו תהליך בעל עדיפות גבוהה נאלץ להמתין לתהליך בעל עדיפות נמוכה ממנו. הבעיה מחמירה כאשר תהליך בעדיפות בינונית, שאינו תלוי במשאב המשותף, מונע מהתהליך בעל העדיפות הנמוכה לרוץ, ובכך מעכב בעקיפין את התהליך בעל העדיפות הגבוהה.
אופן התרחשות: הבעיה מתעוררת בדרך כלל בנוכחות שלושה תהליכים (או יותר) בעלי רמות עדיפות שונות (גבוהה , בינונית , ונמוכה ) ומשאב משותף המוגן על ידי מנעול (כגון סמפור או mutex).
1. תהליך (עדיפות נמוכה) רוכש את המנעול ונכנס לקטע קריטי.
2. תהליך (עדיפות גבוהה) מתעורר ומוכן לריצה. מכיוון שעדיפותו גבוהה יותר, הוא מבצע החלפת הקשר (preemption) ומדיח את .
3. תהליך מנסה לרכוש את אותו המנעול, אך הוא תפוס על ידי . כתוצאה מכך, נחסם ועובר למצב המתנה.
4. המערכת מחזירה את לריצה כדי שישחרר את המנעול.
5. בשלב זה, תהליך (עדיפות בינונית) מתעורר ומוכן לריצה. עדיפותו גבוהה מזו של , ולכן הוא מדיח את .
6. כעת, רץ, בעוד מחכה ל-, ו- מחכה ל-. התהליך בעל העדיפות הגבוהה ביותר, , נאלץ להמתין לסיומו של תהליך בעדיפות בינונית, .
פתרונות:
1. ירושת עדיפויות (Priority Inheritance): כאשר תהליך נחסם על ידי משאב שמוחזק על ידי תהליך , העדיפות של "יורשת" באופן זמני את העדיפות של . במקרה זה, עדיפותו של תועלה לזו של , מה שימנע מתהליכים בעדיפות בינונית כמו להדיח אותו. ברגע ש- משחרר את המנעול, עדיפותו חוזרת לערכה המקורי, ו- יכול להמשיך בריצתו.
2. תקרת עדיפויות (Priority Ceiling Protocol): לכל משאב משותף מוגדרת "תקרת עדיפות", שהיא העדיפות הגבוהה ביותר מבין כל התהליכים שעשויים לרכוש אותו. כאשר תהליך כלשהו רוכש את המשאב, עדיפותו שלו מועלית באופן זמני לתקרת העדיפות של המשאב. שיטה זו מונעת לא רק היפוך עדיפויות אלא גם קיפאון (deadlock) במצבים מסוימים.
ב. נחשב את זמני ההמתנה עבור כל מדיניות תזמון. זמן המתנה של תהליך מוגדר כזמן הכולל שהוא מבלה בתור המוכנים (ready queue). מאחר שכל התהליכים מגיעים בזמן , זמן ההמתנה הוא: .
1. First-Come-First-Served (FCFS)
סדר הביצוע הוא A, B, C, D, E. דיאגרמת גנט:
2. Non-Preemptive Shortest-Job First (SJF)
סדר הביצוע לפי אורך הריצה: D(2), A(3), C(5), E(6), B(7).
3. Priority (Non-Preemptive)
סדר הביצוע לפי עדיפות: C(1), E(2), A(3), D(4), B(5).
4. Round-Robin (RR) with quantum=2
דיאגרמת גנט:
זמני סיום: A=11, B=23, C=20, D=8, E=22.
טבלת סיכום:
הגדרה: היפוך עדיפויות הוא תרחיש במערכות מרובות-משימות שבו תהליך בעל עדיפות גבוהה נאלץ להמתין לתהליך בעל עדיפות נמוכה ממנו. הבעיה מחמירה כאשר תהליך בעדיפות בינונית, שאינו תלוי במשאב המשותף, מונע מהתהליך בעל העדיפות הנמוכה לרוץ, ובכך מעכב בעקיפין את התהליך בעל העדיפות הגבוהה.
אופן התרחשות: הבעיה מתעוררת בדרך כלל בנוכחות שלושה תהליכים (או יותר) בעלי רמות עדיפות שונות (גבוהה , בינונית , ונמוכה ) ומשאב משותף המוגן על ידי מנעול (כגון סמפור או mutex).
1. תהליך (עדיפות נמוכה) רוכש את המנעול ונכנס לקטע קריטי.
2. תהליך (עדיפות גבוהה) מתעורר ומוכן לריצה. מכיוון שעדיפותו גבוהה יותר, הוא מבצע החלפת הקשר (preemption) ומדיח את .
3. תהליך מנסה לרכוש את אותו המנעול, אך הוא תפוס על ידי . כתוצאה מכך, נחסם ועובר למצב המתנה.
4. המערכת מחזירה את לריצה כדי שישחרר את המנעול.
5. בשלב זה, תהליך (עדיפות בינונית) מתעורר ומוכן לריצה. עדיפותו גבוהה מזו של , ולכן הוא מדיח את .
6. כעת, רץ, בעוד מחכה ל-, ו- מחכה ל-. התהליך בעל העדיפות הגבוהה ביותר, , נאלץ להמתין לסיומו של תהליך בעדיפות בינונית, .
פתרונות:
1. ירושת עדיפויות (Priority Inheritance): כאשר תהליך נחסם על ידי משאב שמוחזק על ידי תהליך , העדיפות של "יורשת" באופן זמני את העדיפות של . במקרה זה, עדיפותו של תועלה לזו של , מה שימנע מתהליכים בעדיפות בינונית כמו להדיח אותו. ברגע ש- משחרר את המנעול, עדיפותו חוזרת לערכה המקורי, ו- יכול להמשיך בריצתו.
2. תקרת עדיפויות (Priority Ceiling Protocol): לכל משאב משותף מוגדרת "תקרת עדיפות", שהיא העדיפות הגבוהה ביותר מבין כל התהליכים שעשויים לרכוש אותו. כאשר תהליך כלשהו רוכש את המשאב, עדיפותו שלו מועלית באופן זמני לתקרת העדיפות של המשאב. שיטה זו מונעת לא רק היפוך עדיפויות אלא גם קיפאון (deadlock) במצבים מסוימים.
ב. נחשב את זמני ההמתנה עבור כל מדיניות תזמון. זמן המתנה של תהליך מוגדר כזמן הכולל שהוא מבלה בתור המוכנים (ready queue). מאחר שכל התהליכים מגיעים בזמן , זמן ההמתנה הוא: .
1. First-Come-First-Served (FCFS)
סדר הביצוע הוא A, B, C, D, E. דיאגרמת גנט:
| A(3) | B(7) | C(5) | D(2) | E(6) |0------3------10-----15-----17-----23- A:
- B:
- C:
- D:
- E:
2. Non-Preemptive Shortest-Job First (SJF)
סדר הביצוע לפי אורך הריצה: D(2), A(3), C(5), E(6), B(7).
| D(2) | A(3) | C(5) | E(6) | B(7) |0------2------5------10-----16-----23- A:
- B:
- C:
- D:
- E:
3. Priority (Non-Preemptive)
סדר הביצוע לפי עדיפות: C(1), E(2), A(3), D(4), B(5).
| C(5) | E(6) | A(3) | D(2) | B(7) |0------5------11-----14-----16-----23- A:
- B:
- C:
- D:
- E:
4. Round-Robin (RR) with quantum=2
דיאגרמת גנט:
|A|B|C|D|E|A|B|C|E|B|C|E|B|0-2-4-6-8-10-11-13-15-17-19-20-22-23זמני סיום: A=11, B=23, C=20, D=8, E=22.
- A:
- B:
- C:
- D:
- E:
טבלת סיכום:
| Scheduling Policy | Waiting Time A | Waiting Time B | Waiting Time C | Waiting Time D | Waiting Time E | Average Waiting Time |
|---|---|---|---|---|---|---|
| First-Come-First-Served | 0 | 3 | 10 | 15 | 17 | 9.0 |
| Non-Preemptive Shortest-Job First | 2 | 16 | 5 | 0 | 10 | 6.6 |
| Priority | 11 | 16 | 0 | 14 | 5 | 9.2 |
| Round-Robin (time quantum=2) | 8 | 16 | 15 | 6 | 16 | 12.2 |