שאלת מבחן במערכות הפעלה - האוניברסיטה הפתוחה 2016 - תזמון
א. (5 נק') תארו את שיטת תזמון תהליכים באמצעות multilevel queue.
ב. (5 נק') ענו האם ה
ב. (5 נק') ענו האם ה
- admission scheduler
- memory scheduler
- CPU scheduler
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 912016סמסטר א
★★★★★
תזמוןתזמון CPUתהליכיםהרעבהRound RobinFCFSהחלפת הקשר
שיטת התורים מרובי הרמות מחלקת תהליכים לקבוצות שונות עם כללי תזמון שונים. עבור המתזמנים השונים, חשבו על תפקידם ביחס לטווחי הזמן השונים (ארוך, בינוני, קצר) והאם תפקיד זה נחוץ כדי לספק חוויה אינטראקטיבית למשתמש.
א. תזמון תורים מרובי רמות (Multilevel Queue Scheduling) הוא אלגוריתם תזמון המפריד את תור התהליכים המוכנים (ready queue) למספר תורים נפרדים. כל תהליך המגיע למערכת מוכנס באופן קבוע לאחד התורים, בדרך כלל על סמך מאפיין כלשהו שלו, כגון עדיפות, דרישות זיכרון, או סוג התהליך (למשל, תהליך אינטראקטיבי לעומת תהליך אצווה).
לכל תור יש אלגוריתם תזמון משלו. לדוגמה, תור המיועד לתהליכים אינטראקטיביים (foreground) יכול להשתמש באלגוריתם Round Robin כדי להבטיח זמן תגובה מהיר, בעוד שתור המיועד לתהליכי אצווה (background) יכול להשתמש באלגוריתם FCFS.
בנוסף, קיים תזמון בין התורים עצמם. גישה נפוצה היא תזמון בעל עדיפות קבועה עם דחיקה (fixed-priority preemptive scheduling). לדוגמה, תהליכים מתור הרקע ירוצו רק כאשר תור הפורקע ריק. אם תהליך חדש מגיע לתור הפורקע בזמן שתהליך מהרקע רץ, התהליך מהרקע יידחק (preempted).
החיסרון העיקרי בשיטה זו הוא הסיכון להרעבה (starvation) של תהליכים בתורים בעדיפות נמוכה. ניתן לטפל בכך על ידי הקצאת פרוסות זמן (time slices) לכל תור. לדוגמה, 80% מזמן המעבד יוקצה לתור הפורקע ו-20% לתור הרקע.
ב. ניתוח קיום ונחיצות המתזמנים במערכת אינטראקטיבית:
1. Admission Scheduler (מתזמן לטווח ארוך): מתזמן זה בדרך כלל אינו קיים במערכות אינטראקטיביות מודרניות (כמו Windows, macOS, Linux). תפקידו הוא לבחור אילו תהליכים מתוך מאגר עבודות (job pool) ייטענו לזיכרון ויוכנסו לתור המוכנים. במערכות אינטראקטיביות, משתמשים מצפים שתהליך יתחיל לרוץ מיד עם הפעלתו. לכן, כל תהליך חדש שנוצר מוכנס ישירות לתור המוכנים, ללא שלב סינון של מתזמן לטווח ארוך. השליטה על דרגת ריבוי התכנות (degree of multiprogramming) מושגת באמצעים אחרים, כמו ניהול זיכרון וירטואלי.
2. Memory Scheduler (מתזמן לטווח בינוני): מתזמן זה קיים ונחוץ במערכות אינטראקטיביות רבות. תפקידו הוא להוציא זמנית תהליכים מהזיכרון הראשי אל הדיסק (swapping out) ולהחזירם מאוחר יותר (swapping in). פעולה זו נחוצה כאשר יש לחץ על הזיכרון (memory pressure) או כדי לשפר את תמהיל התהליכים בזיכרון. במערכת אינטראקטיבית, כאשר משתמש מריץ תוכניות רבות במקביל, המתזמן לטווח בינוני יכול "להרדים" תהליכים שאינם פעילים כרגע (למשל, מחכים לקלט) כדי לפנות זיכרון לתהליכים פעילים אחרים, ובכך לשמור על ביצועי המערכת.
3. CPU Scheduler (מתזמן לטווח קצר): מתזמן זה קיים והוא רכיב חיוני והכרחי בכל מערכת הפעלה מודרנית, ובפרט במערכת אינטראקטיבית. תפקידו הוא לבחור את התהליך הבא שיקבל את המעבד מבין התהליכים הנמצאים בתור המוכנים. הבחירה מתרחשת בתדירות גבוהה מאוד (סדר גודל של מילי-שניות). במערכת אינטראקטיבית, המטרה העיקרית היא לספק זמן תגובה מהיר למשתמש. ה-CPU scheduler מממש זאת על ידי החלפות הקשר תכופות בין תהליכים (למשל, באמצעות אלגוריתם Round Robin), מה שיוצר אשליה של הרצה מקבילית ומבטיח שהמערכת תישאר רספונסיבית לפעולות המשתמש.
לכל תור יש אלגוריתם תזמון משלו. לדוגמה, תור המיועד לתהליכים אינטראקטיביים (foreground) יכול להשתמש באלגוריתם Round Robin כדי להבטיח זמן תגובה מהיר, בעוד שתור המיועד לתהליכי אצווה (background) יכול להשתמש באלגוריתם FCFS.
בנוסף, קיים תזמון בין התורים עצמם. גישה נפוצה היא תזמון בעל עדיפות קבועה עם דחיקה (fixed-priority preemptive scheduling). לדוגמה, תהליכים מתור הרקע ירוצו רק כאשר תור הפורקע ריק. אם תהליך חדש מגיע לתור הפורקע בזמן שתהליך מהרקע רץ, התהליך מהרקע יידחק (preempted).
החיסרון העיקרי בשיטה זו הוא הסיכון להרעבה (starvation) של תהליכים בתורים בעדיפות נמוכה. ניתן לטפל בכך על ידי הקצאת פרוסות זמן (time slices) לכל תור. לדוגמה, 80% מזמן המעבד יוקצה לתור הפורקע ו-20% לתור הרקע.
ב. ניתוח קיום ונחיצות המתזמנים במערכת אינטראקטיבית:
1. Admission Scheduler (מתזמן לטווח ארוך): מתזמן זה בדרך כלל אינו קיים במערכות אינטראקטיביות מודרניות (כמו Windows, macOS, Linux). תפקידו הוא לבחור אילו תהליכים מתוך מאגר עבודות (job pool) ייטענו לזיכרון ויוכנסו לתור המוכנים. במערכות אינטראקטיביות, משתמשים מצפים שתהליך יתחיל לרוץ מיד עם הפעלתו. לכן, כל תהליך חדש שנוצר מוכנס ישירות לתור המוכנים, ללא שלב סינון של מתזמן לטווח ארוך. השליטה על דרגת ריבוי התכנות (degree of multiprogramming) מושגת באמצעים אחרים, כמו ניהול זיכרון וירטואלי.
2. Memory Scheduler (מתזמן לטווח בינוני): מתזמן זה קיים ונחוץ במערכות אינטראקטיביות רבות. תפקידו הוא להוציא זמנית תהליכים מהזיכרון הראשי אל הדיסק (swapping out) ולהחזירם מאוחר יותר (swapping in). פעולה זו נחוצה כאשר יש לחץ על הזיכרון (memory pressure) או כדי לשפר את תמהיל התהליכים בזיכרון. במערכת אינטראקטיבית, כאשר משתמש מריץ תוכניות רבות במקביל, המתזמן לטווח בינוני יכול "להרדים" תהליכים שאינם פעילים כרגע (למשל, מחכים לקלט) כדי לפנות זיכרון לתהליכים פעילים אחרים, ובכך לשמור על ביצועי המערכת.
3. CPU Scheduler (מתזמן לטווח קצר): מתזמן זה קיים והוא רכיב חיוני והכרחי בכל מערכת הפעלה מודרנית, ובפרט במערכת אינטראקטיבית. תפקידו הוא לבחור את התהליך הבא שיקבל את המעבד מבין התהליכים הנמצאים בתור המוכנים. הבחירה מתרחשת בתדירות גבוהה מאוד (סדר גודל של מילי-שניות). במערכת אינטראקטיבית, המטרה העיקרית היא לספק זמן תגובה מהיר למשתמש. ה-CPU scheduler מממש זאת על ידי החלפות הקשר תכופות בין תהליכים (למשל, באמצעות אלגוריתם Round Robin), מה שיוצר אשליה של הרצה מקבילית ומבטיח שהמערכת תישאר רספונסיבית לפעולות המשתמש.