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גדול יותר
© Copyright 2024