OS PyramidTechnion 234123 · Operating Systemsbasics → exam
Stage 5: CPU Scheduling
2018B_Spring_AQuestion 1core25 pts

נגדיר: • אלגוריתם זימון תהליכים בגרעין לינוקס 2.4≥ כפי שנלמד בהרצאה – אלגוריתם 2.4. • אלגוריתם זימון תהליכים בגרעין לינוקס 2.6 כפי שנלמד בתרגולים – אלגוריתם 2.6. בשאלה זו תתבקשו לבצע השוואה בין אלגוריתם 2.4 לבין אלגוריתם 2.6, עבור מדיניות הזימון SCHED_OTHER בלבד.

Full original question text (raw OCR)

שאלה 1 - זימון תהליכים (25 נק') נגדיר: • אלגוריתם זימון תהליכים בגרעין לינוקס 2.4≥ כפי שנלמד בהרצאה – אלגוריתם 2.4. • אלגוריתם זימון תהליכים בגרעין לינוקס 2.6 כפי שנלמד בתרגולים – אלגוריתם 2.6. בשאלה זו תתבקשו לבצע השוואה בין אלגוריתם 2.4 לבין אלגוריתם 2.6, עבור מדיניות הזימון SCHED_OTHER בלבד.

  1. 1· short_answer· 5 ptsCPU Scheduling

    (5 נק') מה סיבוכיות החיפוש של התהליך הבא לזימון? אלגוריתם 2.4 אלגוריתם 2.6 הסבר:

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  2. 2· short_answer· 5 ptsCPU Scheduling

    (5 נק') לאיזה סוג משתייך כל אחד מהאלגוריתמים מבין אלגוריתמי זימון התהליכים שנלמדו בהרצאה (כגון: FCFS, EASY, Round Robin, Gang, Multi-Level Priority Queue, SJF, ועוד)? אלגוריתם 2.4 אלגוריתם 2.6 הסבר:

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  3. 3· short_answer· 5 ptsCPU Scheduling

    (5 נק') האם יש הבדל בקביעת העדיפות הסטטית של תהליך באלגוריתם 2.4 לעומת אלגוריתם 2.6? אם יש שוני כזה, הסבירו מהו. הקיפו את הנכון: כן / לא הסבר:

    nice value and dynamic priority
  4. 4· short_answer· 5 ptsCPU Scheduling

    (5 נק') איזה מהאלגוריתמים (או אולי שניהם) לוקחים בחשבון את המחיר של העברת תהליך בין ליבות מעבד שונות (כלומר זימון של תהליך לליבה 1 ולאחר מכן לליבה 2)? הקיפו את הנכון: אלגוריתם 2.4 / אלגוריתם 2.6 / שניהם הסבר:

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  5. 5· short_answer· 5 ptsCPU Scheduling

    (5 נק') נקרא לנוסחת התרגום של העדיפות הסטטית למספר פסיקות שעון: SP2T (Static Priority 2 Ticks). בקוד של אלגוריתם 2.4 הנוסחה מחושבת באמצעות המאקרו NICE_TO_TICKS, ואילו באלגוריתם 2.6 באמצעות המאקרו TASK_TIMESLICE כאשר תהליך מתחיל epoch חדש, מחושב עבורו quantum - הזמן המותר לריצה ב-epoch הנוכחי ביחידות של פסיקות שעון. מה הנוסחה לחישוב זה עבור שני האלגוריתמים? בתשובתכם אין צורך לכתוב קוד, אלא רק את הקשר בין SP2T לבין ה-quantum המחושב. אלגוריתם 2.4 אלגוריתם 2.6 הסבר:

    nice value and dynamic priorityLocal vs global interrupt disableVirtual-to-physical address translation

The exam question — original PDF

pages 2, 3

Exactly as it appears on the exam paper.

loading page 2
loading page 3

Built from these components

Ordered basic → advanced. Master the earlier ones first.

L2Voluntary vs preemptive context switchL2nice value and dynamic priorityL2Latency vs throughput process classificationL3SCHED_FIFO / SCHED_RR real-time policiesL3Non-preemptible kernel implicationsL3Local vs global interrupt disableL3Virtual-to-physical address translation

Review the material

Read these before you answer — each verified slide teaches a component this question tests, and nothing from an unrelated topic is included. Tutorial slides show the actual slide image.

Lecture 13slide 23Reminder: x86 paging

Reminder: x86 paging Need to translate from: virtual addresses to: physical addresses Translation is cached on-chip TLB (Translation Lookaside Buffer) Page table is read & modified by HW (Access/dirty bit) Each process has its own virtual address space Page table pointed to by CR3 register During context switch the OS updates the value of CR3. Page table is a hierarchical structure OS – virtualization 23

Lecture slide — text above is the material (no raster available).
Tutorial 5slide 2TL;DRזַמָּן התהליכים ((scheduler הוא הרכיב במערכת ההפעלה שאחראי על בחירת התהליך הבא שירוץ על המעבד

TL;DRזַמָּן התהליכים ((scheduler הוא הרכיב במערכת ההפעלה שאחראי על בחירת התהליך הבא שירוץ על המעבד.אנחנו נלמד, בתור דוגמה, את אלגוריתם הזימון של לינוקס.אבל לפני שנלמד דוגמה "אמיתית" ומורכבת, נרצה להבין את הגישות הבסיסיות בזימון תהליכים כדי לפתח אינטואיציה.מערכות הפעלה - תרגול 52זימון תהליכים בלינוקסCFS = completely fair schedulerאלגוריתם זימון של תהליכים רגיליםSCHED_FIFO, SCHED_RRאלגוריתם זימון של תהליכי זמן אמת

Tutorial 5slide 9דוגמת FCFSaverageResponseTime = (10 + 20 + 30) / 3 = 20כעת נסיר את הנחה 1 ("כל התהליכים רצים למשך אותו זמן")

דוגמת FCFSaverageResponseTime = (10 + 20 + 30) / 3 = 20כעת נסיר את הנחה 1 ("כל התהליכים רצים למשך אותו זמן"). לכל תהליך זמן ריצה משלו.תוכלו לחשוב על דוגמה שבה FCFS אינו יעיל?מערכות הפעלה - תרגול 59כל התהליכים רצים למשך אותו זמן.כל התהליכים מגיעים באותו זמן (t=0).אם תהליך התחיל לרוץ, אז הוא ירוץ עד לסיומו ללא הפסקות.התהליכים משתמשים רק במעבד ולא מבצעים I/O.זמן הריצה של כל התהליכים ידוע מראש.

Tutorial 5slide 15אלגוריתם SRTFSRTF = shortest remaining time firstנקרא גם: STCF = shortest time to completion firstאופן פעולה: כמו SJF...

אלגוריתם SRTFSRTF = shortest remaining time firstנקרא גם: STCF = shortest time to completion firstאופן פעולה: כמו SJF, אבל עם הפקעות.בכל פעם שתהליך חדש מגיע למערכת, SRTF מחשב למי מבין התהליכים (כולל התהליך החדש) נותר הכי פחות זמן לרוץ, ובוחר את התהליך הזה לריצה.תחת ההנחות החדשות, ניתן להוכיח כי SRTF אופטימלי במדד זמן התגובה הממוצע.בתוספת הנחה כי זמן החלפת הקשר הוא אפסי.מערכות הפעלה - תרגול 515כל התהליכים רצים למשך אותו זמן.כל התהליכים מגיעים באותו זמן (t=0).אם תהליך התחיל לרוץ, אז הוא ירוץ עד לסיומו ללא הפסקות.התהליכים משתמשים רק במעבד ולא מבצעים I/O.זמן הריצה של כל התהליכים ידוע מראש.

Tutorial 5slide 23נהוג לסווג תהליכים לשני סוגיםתהליך אינטראקטיבי I/O Boundמעוניין בזמן המתנה נמוך

נהוג לסווג תהליכים לשני סוגיםתהליך אינטראקטיבי I/O Boundמעוניין בזמן המתנה נמוך.latency sensitive.דוגמה: נגן סרטים שמחליף 60 פריימים בשנייה.בדרך-כלל מוותר על המעבד מרצונו אחרי פרק זמן קצר בגלל המתנה לפעולות I/O.תהליך חישוביCPU Boundמעוניין בזמן תגובה נמוך.throughput sensitive.דוגמה: סקריפט python שמנתח נתונים ע"י חישובים אלגבריים.בדרך-כלל לא מוותר על המעבד מרצונו אלא מופקע.מערכות הפעלה - תרגול 523

Tutorial 5slide 50עדיפויותCFS מאפשר למשתמש להגדיר עדיפויות לתהליכים וכך לחלק את זמן המעבד בצורה שונה בין התהליכים

עדיפויותCFS מאפשר למשתמש להגדיר עדיפויות לתהליכים וכך לחלק את זמן המעבד בצורה שונה בין התהליכים.העדיפות של התהליך מיוצגת ע"י הערך -20 ≤ nice ≤ +19 .ברירת המחדל היא nice=0 .תהליך "נחמד" יותר יהיה בעדיפות נמוכה יותר.לכל עדיפות יש משקל:מערכות הפעלה - תרגול 550

Tutorial 5slide 51קצת נוסחאותנניח שיש במערכת n תהליכים עם עדיפויות: P1, P2, …, Pnומשקלים: W1, W2, …, Wn

קצת נוסחאותנניח שיש במערכת n תהליכים עם עדיפויות: P1, P2, …, Pnומשקלים: W1, W2, …, Wn .נניח כי W0 הוא המשקל המתאים לעדיפות nice=0.אז זמן הריצה הווירטואלי של התהליך ה-i מתקדם לפי:VRi += (W0 / Wi) ∙ ∆Tכאשר ∆T הוא זמן הריצה לפי שעון אמיתי.זמן הריצה הווירטואלי זהה לזמן הריצה האמיתי עבור ברירת המחדל nice=0.ניתן להוכיח כי הקוונטום של התהליך ה-i הוא:Qi = (Wi / ΣWi) ∙ sched_latencyמערכות הפעלה - תרגול 551

Tutorial 6slide 10מהי החלפת הקשר?מערכות הפעלה - תרגול 610

מהי החלפת הקשר?מערכות הפעלה - תרגול 610

Tutorial 6slide 11מהי החלפת הקשר?לכל תהליך יש "הקשר ביצוע" (execution context) המכיל את כל המידע הדרוש לביצוע התהליך

מהי החלפת הקשר?לכל תהליך יש "הקשר ביצוע" (execution context) המכיל את כל המידע הדרוש לביצוע התהליך.מחסניות, רגיסטרים, תכולת זיכרון, קבצים פתוחים, ..."החלפת הקשר" = עצירת הביצוע של התהליך הנוכחי ושמירת ההקשר שלו.טעינת ההקשר של התהליך הבא לביצוע.הקשר התהליך הנוכחי מתחלף – מכאן שם הפעולה "החלפת הקשר".מערכות הפעלה - תרגול 611

Tutorial 6slide 13שני סוגים של החלפת הקשרהחלפת הקשר כפויה(== הפקעה)הגרעין מפקיע (כלומר, לוקח בכוח) את המעבד מהתהליך, למשל בעקבות:פסיקת ...

שני סוגים של החלפת הקשרהחלפת הקשר כפויה(== הפקעה)הגרעין מפקיע (כלומר, לוקח בכוח) את המעבד מהתהליך, למשל בעקבות:פסיקת שעון (מטופלת בשגרה scheduler_tick) אשר מגלה כי הזמן שהוקצב לתהליך הנוכחי אזל.אירוע אסינכרוני אשר מעיר תהליך בעל עדיפות טובה יותר מהתהליך הרץ כרגע.לדוגמה: פסיקת דיסק או שחרור מנעול שתהליך המתין לו.החלפת הקשר יזומההתהליך מוותר מרצונו על המעבד, למשל באמצעות:קריאת מערכת חוסמת (כמו wait(), read(), …) אשר מוציאה את התהליך להמתנה.קריאת מערכת exit() אשר מסיימת את התהליך.קריאת מערכת sched_yield() – קריאת מערכת ייעודית לוויתור על המעבד.מערכות הפעלה - תרגול 613

Tutorial 6slide 35הפונקציה __switch_to_asm (3) popq %r15 popq %r14 popq %r13 popq %r12 popq %rbx popq %rbp jmp __switch_to מערכות הפעלה...

הפונקציה __switch_to_asm (3) popq %r15 popq %r14 popq %r13 popq %r12 popq %rbx popq %rbp jmp __switch_to מערכות הפעלה - תרגול 635שחזור הרגיסטרים ממחסנית הגרעין של next.אלו הרגיסטרים ש-next שמר כאשר הוא קרא להחלפת הקשר בעבר.קפיצה (jmp) במקום קריאה (call) לפונקציה. למה?כתובת החזרה מהפונקציה __switch_to() כבר שמורה על המחסנית של next.

Tutorial 8slide 32מימוש מנעול קוראים-כותבים (1)int readers_inside, writers_inside;cond_t read_allowed;cond_t write_allowed;mutex_t glob...

מימוש מנעול קוראים-כותבים (1)int readers_inside, writers_inside;cond_t read_allowed;cond_t write_allowed;mutex_t global_lock; void readers_writers_init() { readers_inside = 0; writers_inside = 0; cond_init(&read_allowed, NULL); cond_init(&write_allowed, NULL); mutex_init(&global_lock, NULL);}32מערכות הפעלה - תרגול 8מה ערכו המקסימלי של writers_inside?

Tutorial 10slide 19טבלת הדפים (page table)לכל תהליך יש טבלת דפים משלו – מבנה נתונים אשר ממפה בין דפים למסגרות

טבלת הדפים (page table)לכל תהליך יש טבלת דפים משלו – מבנה נתונים אשר ממפה בין דפים למסגרות.ניתן לממש טבלת דפים באמצעות מבני נתונים שונים: מערך פשוט, עצים, טבלאות גיבוב (hash tables), ...עבור כל דף במרחב הזיכרון הווירטואלי של התהליך, יש כניסה בטבלת הדפים אשר מציינת:האם הדף נמצא בזיכרון ובאיזו מסגרת?האם הדף נמצא בדיסק ובאיזה מיקום?האם הדף מעולם לא הוקצה? (כלומר איננו בזיכרון ואיננו בדיסק)טבלת הדפים אחראית לתפקידים נוספים כמו הגנת גישה.למשל: טבלת הדפים מסמנת דפים לקריאה בלבד ומונעת גישות כתיבה.19מערכות הפעלה - תרגול 10

Tutorial 10slide 39סיכום: תהליך התרגום במעבדי אינטל39the CPU searches the TLBhitmissthe CPU walks the page tablecompletedpage faultphysi...

סיכום: תהליך התרגום במעבדי אינטל39the CPU searches the TLBhitmissthe CPU walks the page tablecompletedpage faultphysical addressvirtual addressthe OS serves the page faultמערכות הפעלה - תרגול 10

Ask Gemini
2018B_Spring_A · Q1 — question + its material already loaded
Pick a shortcut above or ask anything about this question.
The exam text, the skills it tests, and the exact slides are already in context.