אלגוריתם מס` 3
Download
Report
Transcript אלגוריתם מס` 3
Principles of Structure of
Operating Systems
עקרונות מבנה מערכות הפעלה
זימון תהליכים-CPU תזמון
רעיון כללי
המטרה של multiprogrammingהיא להחזיק
מספר תהליכים רצים במשך כל הזמן ,בכדי לנצל
את ה CPU-באופן מקסימאלי .במערכות
( uni-processorמעבד אחד)
רק תהליך אחד יכול לרוץ .יתר התהליכים יצטרכו
להמתין עד שה CPU-יתפנה.
רעיון כללי -המשך
• הרעיון של multiprogrammingביסודו פשוט .תהליך רץ עד שהוא
צריך להמתין .ההמתנה היא בדרך כלל לסיום של בקשות .I/O
במצב כזה במערכת מחשב פשוטה ,ה CPU-יעבור למצב של idle
(סרק) .כל זמן ההמתנה הזה מבוזבז – כי אפשר היה לנצל את
המעבד בזמן זה לביצוע מטלות אחרות.
• ב multiprogramming-אנחנו מנסים להשתמש בזמן הזה בצורה
מועילה .מספר תהליכים נשמרים בזיכרון באותו זמן ,וכאשר תהליך
אחד נמצא במצב המתנה ,מערכת ההפעלה לוקחת את הCPU-
מהתהליך ונותנת אותו לתהליך אחר.
• תזמון הנו אחד מהפעולות העיקריות של מערכת ההפעלה .כמעט
כל משאבי המחשב מתוזמנים לפני שימוש.
מושגים
)1מעגל ה"התפרצויות" של המעבד CPU-I/O Burst Cycle -
ריצת תהליך מורכבת ממעגל של ריצה ב CPU-והמתנה ל ,I/O-כאשר כל הזמן
התהליך עובר בין השניים .כמו כן ,התהליך מתחיל ב CPU-ומסתיים בו.
תוכנית המבוססת בעיקר על I/Oסביר שיהיו לה פרצי ( CPU )burstקצרים,
ואילו תוכנית המבוססת על CPUתכיל פרצים ארוכים .הצלחת מתזמן ה-
CPUתלויה למעשה בריצת התהליך.
)2מתזמן המעבד CPU Scheduler -
ברגע שה CPU-נכנס למצב של סרק ,מערכת ההפעלה חייבת לבחור תהליך
מתוך ה ready queue-ולתת לו לרוץ על ה .CPU-החלטות המתזמן עשויות
לקרות באחד מארבעת הנסיבות הבאות:
א .כאשר תהליך עובר ממצב ריצה למצב המתנה.
ב .כאשר תהליך עובר ממצב ריצה למצב .ready
ג .כאשר תהליך עובר ממצב המתנה למצב .ready
ד .כאשר תהליך מסתיים.
מושגים -המשך
• במקרים 1,4אין אפשרות בחירה .התהליך מסתיים מיוזמתו,
ותהליך חדש חייב להיבחר מתוך התור .מקרים מסוג זה נקראים
( non-preemptiveמדיניות ללא-הפקעה) .המשמעות היא שברגע
שה CPU-הוקצה לתהליך ,התהליך שומר על ה CPU-עד שהוא
משחרר אותו ,ולא ייתכן מצב שמערכת ההפעלה תפריע לו באמצע,
או תעצור אותו ותיתן עדיפות לתהליך אחר .זוהי מערכת שאדישה
לשינויים .תהליך בעל עדיפות גבוהה יותר לא יכול להפריע לתהליך
שכבר רץ.
• עבור מקרים 2ו 3-קיימת אפשרות בחירה .מקרים אלו נקראים
( preemptiveמדיניות עם הפקעה) – קיימת עדיפות לתהליך.
מערכת מסוג זה אינה אדישה לשינויים ,והיא בודקת כל הזמן את
מצבי התהליכים ועשויה להפסיק תהליך אחד עבור תהליך בעל
עדיפות גבוהה יותר .תזמון מסוג זה גורם לעלויות – זמן
ה .context switch-בעיה נוספת במערכת מסוג זה היא הסנכרון.
מושגים -המשך
)3המשגר Dispatcher -
moduleזה מעביר את הבקרה של ה CPU-לתהליך שנבחר ע"י
•
ה .short-term scheduler-פעולה זו כוללת:
א.Switching context .
ב .מעבר ל.user mode-
ג .קפיצה למקום הנכון בתוכנית המשתמש במטרה להתחיל
להריץ אותה.
moduleזה צריך להיות מהיר ככל האפשר ,שכן הוא נקרא בכל
•
פעם שמחליפים תהליך .הזמן שלוקח ל dispatcher-להפסיק את
התהליך הרץ ולהתחיל בהרצת תהליך חדש נקרא dispatch
latency
קריטריונים לתזמון Scheduling -
Criteria
כאשר אנו מחליטים באיזה אלגוריתם להשתמש במצב מסוים ,יש לקחת בחשבון את
המאפיינים של כל אלגוריתם .הקריטריונים בהם משתמשים להשוואות אלגוריתמים
של מתזמני CPUהם:
.1ניצול – CPUנרצה לוודא שה CPU-עסוק כל הזמן .ניצול ה CPU-יכול לנוע
מ 0-אחוז ל 100-אחוז .במערכת אמיתית הטווח צריך להיות בין 40אחוז ל-
90אחוז.
.2תפוקה – יעילות הרצת תהליכים חופפים .אחת הדרכים לבדוק את עבודת
האלגוריתם היא מספר התהליכים שסיימו ביחידת זמן אחת.
.3זמן סבב – מנקודת מבט של תהליך ספציפי ,הקריטריון החשוב הוא כמה
זמן לוקח להריץ את התהליך .המרווח בין הזמן שהתהליך ביקש לרוץ לבין
הזמן שהתהליך יסתיים נקרא זמן סבב .זמן זה הוא סכום משך הזמנים
שהתהליך בזבז בהמתנה לזיכרון ,המתנה בתור ,readyריצה בCPU-
והפעלת (.I/Oמדידה מהרגע שנכנס ל )memory queue
קריטריונים לתזמון Scheduling Criteria -
המשך
.4זמן המתנה – האלגוריתם אינו משפיע על הזמן בו תהליך רץ או
משתמש ב ,I/O-אלא רק על הזמן שתהליך מעביר בהמתנה בתור
ה .ready-זמן ההמתנה הוא סכום משך הזמנים הכולל שהתהליך
העביר בתור ה(.ready-כשזמן ההמתנה אינסופי אז יש הרעבה)
.5זמן תגובה – במערכת אינטראקטיבית ,זמן הסבב אינו יכול להיות
קריטריון מתאים ,משום שלעיתים קרובות ,תהליך יכול לספק חלק
מהפלט די מהר ,ולהמשיך בחישובים אחרים בזמן שחלק מהפלט
כבר מוצג למשתמש .לכן אמת מידה נוספת היא הזמן שלוקח מרגע
הבקשה ועד לתגובה הראשונה .זמן התגובה הנו משך הזמן שלוקח
להתחיל להגיב ,אבל לא כולל את זמן התגובה עצמו.
קובע את מידת ההגינות של המערכת – זמן תגובה דומה לכל
התהליכים זה ממתי שנכנס ל ready queueועד שקיבל cpuועבר
ל .running
המטרה
המטרה היא להביא את ניצול ה CPU-ואת
התפוקה למצב מקסימאלי ,ולמזער כמה שיותר
את זמן הסבב ,זמן ההמתנה וזמן התגובה .ברוב
המקרים מנסים לייעל את הממוצע של כל
הקריטריונים ,אך קיימים מצבים בהם רצוי לייעל
את ערכי המקסימום או המינימום ולא את
הממוצע .לדוגמא ,כאשר רוצים להבטיח שכל
המשתמשים יקבלו שירות טוב ,נרצה להקטין את
זמן התגובה המקסימאלי.
אלגוריתמים שונים לתזמון Scheduling -
Algorithms
קיימים מס' אלגוריתמים שמנסים להשיג את
המטרה .
בחלק זה נציג חלק מהאלגוריתמים הקיימים ונעריך
את היתרונות והחסרונות של כל אחד מהם .
אלגוריתם מס :1ראשון בא ,ראשון ישורת -
FCFS - First Come, First Served
באלגוריתם זה ה Schedulerיכניס לעבודה ב CPUאת
התהליך הראשון שהיגיע ל . ready queue
התהליכים מסודרים בתור לפי סדר הגעתם ומוכנסים
לעבודה לפי סדר זה.
מימוש האלגוריתם
ברגע שתהליך נכנס ל ,ready queue-ה PCB-שלו
מקושר לזנב התור .כאשר ה CPU-פנוי ,הוא מוקצה
לתהליך שנמצא בראש התור (התהליכים יתבצעו לפי
סדר ההגעה שלהם).
אלגוריתם מס :1ראשון בא ,ראשון ישורת -
FCFS - First Come, First Served
יתרונות האלגוריתם :
א .פשוט מאוד למימוש .
ב .שומר על עיקרון ההגינות.
חסרון האלגוריתם :
זמן ההמתנה הממוצע במקרה זה הוא לרוב
ארוך ,והוא תלוי בזמן ההגעה של התהליכים
אלגוריתם מס :1ראשון בא ,ראשון ישורת -
FCFS - First Come, First Served
דוגמא לזמן המתנה ממוצע
נניח כי מגיעים שלושה תהליכים לready queue -
Burst time
זמן סיום התהליך
Process
24
p1
3
p2
3
p3
המשך הדוגמא
אם התהליכים הגיעו על פי הסדר :
P1ראשון P2 ,שני P3 ,שלישי ,
נקבל את המצב הבא:
זמן ההמתנה של P1יהיה ( 0משום שהואהתחיל מיד)
זמן ההמתנה של P2יהיה 24זמן ההמתנה של P3יהיה .27זמן ההמתנה הממוצע הינו:
(0+24+27)/3=17
המשך הדוגמא
אם התהליכים הגיעו על פי הסדר :
P2ראשון P3 ,שני P1 ,שלישי ,
נקבל את המצב הבא:
זמן ההמתנה של P2יהיה ( 0משום שהואהתחיל מיד)
זמן ההמתנה של P3יהיה3זמן ההמתנה של P1יהיה .6זמן ההמתנה הממוצע הינו:
(0+3+6)/3=3
הסבר
לפי הדוגמא אנו רואים שזמן ההמתנה הממוצע תלוי בסדר
הגעת התהליכים .
ככול שבראש התור יש תהליכים ארוכים יותר זמן ההמתנה
הממוצע עולה.
מצב (convoy effectאפקט השיירה)
מצב כאשר כל התהליכים ממתינים לתהליך אחד ארוך
שיסיים עם ה.CPU-
אלגוריתם זה בעיקר בעייתי במערכות ,time-sharingבהן
חשוב שכל משתמש יקבל את ה CPU-המשותף במרווח
רגיל.
אלגוריתם מס' : 2הקצר ביותר ראשון SJF -
- Shortest Job First
• ראינו בדוגמא כי ככול שבתחילת התור יש תהליכים
קצרים יותר זמן ההמתנה הממוצע קטן.
• אלגוריתם זה מקשר לכל תהליך את אורך פרץ הCPU-
( )CPU Burstהבא שלו .ברגע שה CPU-נגיש ,הוא
מוקצה לתהליך בעל פרץ ה CPU-הבא הקצר ביותר .אם
לשני תהליכים יש את אותו אורך פרץ ,CPUיעשה שימוש
באלגוריתם FCFSלבחירת התהליך הראשון .נשים לב
שהאלגוריתם לא מתייחס לזמן הכולל הנדרש לתהליך על
ה ,CPU-אלא רק לפרץ ה CPU-הבא.
אלגוריתם מס' : 2הקצר ביותר ראשון SJF -
- Shortest Job First
• יתרון האלגוריתם :
קיצור זמן ההמתנה הממוצע למינימום.
דוגמא לזמן המתנה ממוצע
נניח כי מגיעים ארבע תהליכים ל ready queue -לפי הסדר
הבא
Burst time
Process
6
p1
8
p2
7
p3
3
p4
המשך הדוגמא
• תזמון התהליכים ע"י שימוש באלגוריתם זה בסדר הבא:
P4ראשון -זמן ההמתנה שלו הוא 0 P1שני – זמן ההמתנה שלו הוא 3 P3שלישי -זמן ההמתנה שלו הוא 9 P2רביעי -זמן ההמתנה שלו הוא 16זמן ההמתנה הממוצע יהיה
(0+3+9+16)/4=7
אלגוריתם מס' : 2הקצר ביותר ראשון SJF -
- Shortest Job First
חיסרון האלגוריתם :
תתכן הרעבה עבור התהליך בעל Burst time
הארוך ביותר.
סיכום :
אלגוריתם זה מבטיח ממוצע זמן המתנה אופטימאלי (בין
אלגוריתמים ה )non-preemptive -
אלגוריתם מס' – 3זמן הריצה הקצר ביותר
)Shortest Remaining Time (SRT
• ראינו שבמערכות non-preemptiveאלגוריתם
SJFהוא היעיל ביותר אך ,אם המערכת שלו
מאפשרת preemptiveאם ניתן ליעל אותו ?
• אלגוריתם SRTמייעל את האלגורית SJFבמערכות
.preemptive
אלגוריתם מס' – 3זמן הריצה הקצר ביותר
)Shortest Remaining Time (SRT
הסבר עיקרון האלגוריתם:
אלגוריתם זה בודק עבור כל תהליך חדש המגיע
לתור האם זמן Burst Timeשלו קטן מהזמן
שנשאר לתהליך שרץ כעט עד לסיומו
( ,)Remaining Timeאם כן ,יופסק התהליך הרץ
עכשיו וה CPU-יימסר לתהליך שהיגיע .
אלגוריתם מס' – 3זמן הריצה הקצר ביותר
)Shortest Remaining Time (SRT
דוגמא לפעולת האלגוריתם
נניח שמגיעים התהליכים האים לפי הסדר הבא :
Burst
Arrival
8
0
Proces
s
p1
4
1
p2
9
2
p3
5
3
p4
התהליכים ירוצו בסדר הבא.P1, P2, P4, P1, P3 :
אלגוריתם מס' – 3זמן הריצה הקצר ביותר
)Shortest Remaining Time (SRT
כי :
P1יתחיל לרוץ בזמן 0מכיוון שהוא היחיד בתור.
ברגע ש P2-מגיע ל P1-נשאר פרץ CPUבגודל ,7
ולכן P2יתחיל לרוץ במקומו.
כאשר P3ו P4-מגיעים פרץ הזמן שלהם גדול יותר מפרץ הזמן
שנותר ל P2-ולכן אף אחד מהם לא גורם ל P2-לעצור.
זמן ההמתנה של P2הוא אפס ,זמן ההמתנה של P4הוא ( 2משום
שהוא מתחיל ביחידת הזמן ,5אבל הוא הגיע בזמן ,)3זמן
ההמתנה של P3הוא 15וזמן ההמתנה של P1הוא .9
זמן ההמתנה הממוצע יהיה
(0+2+9+15)/4=6.5
אלגוריתם מס' – 3זמן הריצה הקצר ביותר
)Shortest Remaining Time (SRT
SRTבהשוואה ל SJF
אם באותה מערכת היינו עובדים עפ"י אלגוריתם , sjfהתהליכים ירוצו בסדר הבא:
P1, P2, P4, P3
זמן ההמתנה של – P1הוא . 0 זמן ההמתנה של – P2הוא ( 7תהליך זההיגיע בזמן 1ולכן ) 8-1
זמן ההמתנה של - P4הוא ( 9תהליך זה היגעבזמן , 3לכן ) 8+4-3
זמן ההמתנה של – P3הוא ( 15תהליך זה הגיע בזמן , 2לכן ) 8+4+5-2
זמן ההמתנה הממוצע יהיה
(0+7+9+15)/4=7.75
אלגוריתם מס' – 3זמן הריצה הקצר ביותר
)Shortest Remaining Time (SRT
בעיתיות האלגוריתם :
• אלגוריתם זה מניח שתי הנחות:
.1זמני ההחלפה בין התהליכים הם מהירים ,ואינם
משפיעים על זמני ההמתנה.
.2זמני הריצה בין ההחלפות הם ארוכים ,כלומר
לא ייתכן מצב שבו רק מחליפים כל הזמן.
• לאור הנחות אלו ניתן לראות כי אלגוריתם זה אינו
ישים ,והוא מתאר שיטה תיאורטית בלבד.
אלגוריתם מס' - 4תזמון ע"פ עדיפות -
Priority Scheduling
הסבר עיקרון האלגוריתם:
אלגוריתם זה נותן לכל תהליך עדיפות ,והCPU-
מוקצה לתהליך בעל העדיפות הגבוהה ביותר.
העדיפות נקבעת העדיפות נקבעת פעם אחת,
בכניסה אל המערכת .אם לשני תהליכים יש את
אותה עדיפות ,יעשה שימוש באלגוריתם FCFS
לבחירת התהליך הראשון.
אלגוריתם מס' - 4תזמון ע"פ עדיפות -
Priority Scheduling
דוגמא לפעולת האלגוריתם :
נניח שמגיעים התהליכים הבאים ,לכל תהליך עדיפות
(מס' נמוך עדיפות גבוהה )
Priority
3
Burst
10
Process
p1
1
3
4
2
1
2
1
5
p2
p3
p4
p5
התהליכים ירוצו בסדר הבא.P2, P5, P1, P3, P4 :
אלגוריתם מס' - 4תזמון ע"פ עדיפות -
Priority Scheduling
קביעת עדיפות
קיימות שני דרכים להגדיר עדיפות:
)1עדיפויות סטטיות :קבועות לאורך כל ריצת התהליך
– למשל :חשיבות בארגון ,מחיר ששולם עבור השרות
– ב:UNIX-
• עדיפות לkernel -
• פקודת niceלהורדת עדיפות
) 2עדיפויות דינאמיות :עפ"י צריכת משאבים
– עדיפות למי שצורך מעט (I/O bound) CPU
אלגוריתם מס' - 4תזמון ע"פ עדיפות -
Priority Scheduling
חסרונות האלגוריתם :
אחת הבעיות באלגוריתם מסוג זה היא הרעבה – מצב
שבו תהליך שמוכן לרוץ אינו מקבל את ה( CPU-מערכת
לא מסוגלת לזהות הרעבה) .תהליך שנמצא במצב של
המתנה נחשב לחסום – .Blocked
אלגוריתם עדיפויות עשוי לגרום לתהליכים בעלי עדיפות
נמוכה לחכות לנצח .במקרה של מערכות הנטענות
בכבדות ,תהליכים בעלי עדיפות גבוהה עשויים למנוע
מתהליכים בעלי עדיפות נמוכה גישה ל.CPU-
אלגוריתם מס' - 4תזמון ע"פ עדיפות -
Priority Scheduling
מנגנון הזדקנות כפיתרון להרעבה עקב עדיפות
כדי לפתור את בעיית הרעבת תהליך נפתח מנגנון הזדקנות
Aging
במנגנון זה מגדילים את העדיפות של התהליך ככל
שזמן ההמתנה שלו גדל.
ז"א הגדלה הדרגתית של עדיפות של תהליכים
הממתינים זמן רב
אלגוריתם מס' - 5תזמון סרט נע –
Round-Robin Scheduling
אלגוריתם זה עוצב במיוחד למערכת .time-sharingהאלגוריתם דומה
לאלגוריתם ,FCFSאלא שהפעם ייתכן והתהליכים יוחלפו ביניהם תוך
כדי ריצה .
עיקרון פעולת האלגוריתם:
מוגדרת יחידת זמן קטנה ,הנקראת .time quantum
מתייחסים אל תור ה ready-כאל תור מעגלי.
מתזמן ה CPU-עובר על התור ומקצה את ה CPU-בכל פעם לתהליך
אחר לזמן של .time quantum
בעת מימוש האלגוריתם ,שומרים את תור ה ready-בתור .FIFO
תהליך חדש מתווסף תמיד לסוף התור.
מתזמן ה CPU-בוחר בכל פעם את התהליך הראשון בתור ,מגדיר
timer interruptשיופעל אחרי time quantumאחד ,ומפעיל את
התהליך.
אלגוריתם מס' - 5תזמון סרט נע –
Round-Robin Scheduling
עיקרון פעולת האלגוריתם -המשך
יכולים לקרות שני מקרים:
• התהליך עשוי להזדקק לפרץ CPUהקטן מtime -
.quantumבמקרה כזה התהליך עצמו ישחרר את ה-
,CPUוהמתזמן ימשיך לתהליך הבא בתור.
• אם פרץ ה CPU-לו זקוק התהליך גדול מtime -
quantumאחד ,ה timer-יגרום לContext .interrupt-
switchיופעל ,התהליך יועבר לסוף התור ,והמתזמן
ייבחר את התהליך הנמצא בראש התור.
– תזמון סרט נע- 5 'אלגוריתם מס
Round-Robin Scheduling
: דוגמא
0 כל התהליכים מגיעים בזמן,Q=4
p1
0
p2
4
Process
Burst time
p1
p2
p3
24
3
5
p3
7
p1
11
15
p3
p1
16
p1
20
p1
24
p1
28
p1
32
34
אלגוריתם מס' - 5תזמון סרט נע –
Round-Robin Scheduling
דוגמא -המשך :
חישוב זמן ההמתנה הממוצע :
זמן ההמתנה של – P1הוא . 8 זמן ההמתנה של – P2הוא 4 זמן ההמתנה של - P3הוא 11זמן ההמתנה הממוצע יהיה
(8+4+11)/3=7.66
אלגוריתם מס' - 5תזמון סרט נע –
Round-Robin Scheduling
• יתרונות האלגוריתם :
.1שנפתרים מהר מתהליכים קצרים.
.2אין הרעבה .
.3זמן תגובה מהיר .
חסרונות האלגוריתם :
.1הבעיה היא בעיקר בתהליכים שגדולים במעט מהtime -
,quantumואז עצירת התהליך לקרת סיומו מיותרת.
.2זמן המתנה ממוצע גבוה (כי לא רגיש למאפיינים של התהליכים)
.3מניח שכל התהליכים חשובים באותה מידה
.4בצועים מושפעים מגודל ה: quantum -
– context switchחייב להיות קטן ביחס לquantum -
– quantumארוך פוגע בresponse time-
אלגוריתם מס' - 5תזמון סרט נע –
Round-Robin Scheduling
הביצועים של האלגוריתם תלויים בצורה משמעותית בגודל ה:time quantum-
– אם ה time quantum-מאוד גדול (מספר אינסופי) ,נקבל אלגוריתם שמתנהג כמו
אלגוריתם .FCFSכלומר ,זמן תגובה ארוך.
– אם ה time quantum-הוא מאוד קטן ,מתקבלת תפוקה נמוכה ,משום שמערכת ההפעלה
עסוקה ב ,context switching-מצב שבו ה CPU-נמצא במצב סרק.
לכן ,נרצה שה time quantum-יהיה גדול תוך כדי התחשבות בזמן הcontext -
.switchאם זמן ה context switch-הוא בערך 10אחוז מזמן ה,time quantum-
אזי עשר אחוז מהזמן ה CPU-יבזבז על .context switch
•
אחד מחוקי האצבע לבחירת גודל ה time quantum-דורש בחירת quantumגדול
מספיק ,כך שלפחות 80אחוז מפרצי ה CPU-הדרושים יהיו קטנים ממנו (כלומר כ80-
אחוז מהתהליכים יכלו לרוץ מבלי שייאלצו להפסיק את פעולתם באמצע בגלל שה-
quantumשלהם הסתיימה).
100msecנחשב ל quantum-סביר (ב)Unix -
אלגוריתם מס' -6תזמון מרובה תורים
עם רמות Multilevel Queue -
• קבוצה נוספת של אלגוריתמים לתזמון נוצרה עבור
מצבים בהם ניתן לחלק בקלות את התהליכים
לקבוצות .לדוגמא ,חלוקה מוכרת נעשתה בין
foreground processלבין background
.processלשתי הקבוצות הנ"ל יש זמני תגובה
שונים ,דרישות שונות וייתכן ויזדקקו למתזמנים
שונים .בנוסף foreground process ,עשויים
לקבל עדיפות על .background process
אלגוריתם מס' -6תזמון מרובה תורים
עם רמות Multilevel Queue -
עיקרון פעולת האלגוריתם
אלגוריתם multilevel queue-schedulingמחלק את תור ה-
readyלמספר תורים נפרדים .התהליכים מוקצים באופן קבוע
לאחד התורים ,בד"כ על פי תכונות התהליך (לדוגמא גודל זיכרון,
עדיפות או סוג התהליך) .לכל תור יש אלגוריתם תזמון משלו.
בנוסף קיים מתזמן בין התורים עצמם .ברוב המקרים מתזמן זה
ממומש ע"י אלגוריתם preemptiveשל עדיפויות קבועות .תור בעל
עדיפות נמוכה לא יתחיל לרוץ לפני שכל התורים שבעדיפות גבוהה
משלו יהיו ריקים .אפשרות נוספת היא לחלק "פרוסות" זמן ( time
)sliceבין התורים .כל תור מקבל זמן CPUמוקצב אותו הוא מחלק
(עפ"י אלגוריתם התזמון בו עובד) בין כל התהליכים בתור.
אלגוריתם מס' -6תזמון מרובה תורים
עם רמות Multilevel Queue -
• דוגמת תורים במערכת מרובת תורים
אלגוריתם מס' -6תזמון מרובה תורים
עם רמות Multilevel Queue -
• יתרון :
ניצול ה.CPU-
חיסרון :
שתיתכן הרעבה ,משום שאם התורים בעלי
העדיפות הגבוהה יותר לא מתרוקנים ,לא נגיע
לתורים בעלי העדיפות הנמוכה
אלגוריתם מס' -7תזמון מרובה תורים עם
מעבר ע"פ מאפייני פרץ Multilevel -
Feedback Queue
• באלגוריתם multilevel queueתהליכים מוקצים
באופן קבוע לאחד התורים .התהליכים לא עוברים
בין התורים .הדבר מתאים למקרים כמו תורים
נפרדים ל foreground process-וbackground -
,processשכן התהליכים לא משנים את סוג
הריצה שלהם (ברקע או לא).
אלגוריתם מס' -7תזמון מרובה תורים עם
מעבר ע"פ מאפייני פרץ Multilevel -
Feedback Queue
• עיקרון פעולת האלגוריתם
אלגוריתם Multilevel feedback queueמאפשר
לתהליכים לעבור בין התורים.
מפרידים את תהליכים עפ"י מאפייני פרץ ה CPU-שלהם.
אם תהליך דורש זמן רב של ,CPUהוא יעבור לתור בעל
עדיפות נמוכה יותר.
שיטה זו משאירה תהליכים מונחי I/Oותהליכים
אינטראקטיביים בתורים בעלי עדיפות גבוהה .באופן
דומה ,תהליך שממתין יותר מידי זמן בתור בעל עדיפות
נמוכה יעבור לתור בעל עדיפות גבוהה.
שיטה זו של agingמונעת הרעבה.
אלגוריתם מס' -7תזמון מרובה תורים עם
מעבר ע"פ מאפייני פרץ Multilevel -
Feedback Queue
אלגוריתם זה מוגדר עפ"י הפרמטרים הבאים:
• מספר התורים.
• אלגוריתם התזמון עבור כל תור.
• השיטה על פיה מעלים תהליך לתור בעל עדיפות
גבוהה /מורידים תהליך לתור בעל עדיפות נמוכה.
• השיטה על פיה קובעים לאיזה תור ייכנס תהליך
ברגע שהוא צריך שירות.
אלגוריתם מס' -7תזמון מרובה תורים עם
מעבר ע"פ מאפייני פרץ Multilevel -
Feedback Queue
• מבנה עקרוני של התורים באלגוריתם זה :
– high priority-1 quantum
–
level 2 got 2 quanta
– level 3 got 3 quanta
– etc.
ככל שהתור גבוה יותר אז הוא בעדיפות גבוהה יותר => כלומר מקבל זמן cpuגדול
יותר