שאלת מבחן במערכות הפעלה - האוניברסיטה הפתוחה 2015 - תהליכים

הוכיחו או הפריכו את הטענות הבאות לגבי אלגוריתם הבנקאי (banker algorithm). א. (10 נק') מהי בעיית היפוך עדיפויות (priority inversion problem)? כיצד היא יכולה להתעורר? כיצד ניתן להתגבר על הבעיה? ב. (20 נק') חמישה תהליכים הגיעו למערכת בסדר א"ב-י בזמן . הטבלה מטה מתארת את זמן ה CPU הנדרש לתהליכים הללו ואת עדיפותם (ערך קטן מסמל עדיפות גבוהה):
CPU BurstPriority
A33
B75
C51
D24
E62
מלאו את הפרטים החסרים בטבלה הבאה: זמן הממנה לכל תהליך בהינתן מדיניות תזמון וזמן המתנה ממוצע לכל אחת ממדיניות התזמון:
Scheduling PolicyWaiting Time AWaiting Time BWaiting Time CWaiting Time DWaiting Time EAverage 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. דיאגרמת גנט:

| 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 PolicyWaiting Time AWaiting Time BWaiting Time CWaiting Time DWaiting Time EAverage Waiting Time
First-Come-First-Served031015179.0
Non-Preemptive Shortest-Job First21650106.6
Priority111601459.2
Round-Robin (time quantum=2)8161561612.2