OS PyramidTechnion 234123 · Operating Systemsbasics → exam
the pyramid
Stage 5 / 10 · Core Mechanics

CPU Schedulinghigh-yield

CPU scheduling is fundamental to operating systems, determining how processes share the CPU. You must understand various algorithms like FIFO, Round Robin, and SRT, along with priority mechanisms such as 'nice'. This topic frequently appears on exams because it tests your ability to analyze system performance metrics like turnaround and waiting times, and to visualize execution flow using Gantt charts.

Where to learn it

lectureLecture 4–5
71 slides
Start with slides 2, 3, 4, 5, 6
tutorialTutorial 5 · scheduler
52 slides
tutorialTutorial 6 · context switch
55 slides

How to study it

  • Master Gantt chart construction for all scheduling algorithms, especially SRT and Round Robin, paying close attention to preemption and quantum sizes.
  • Understand the 'nice' priority system and how it influences process scheduling decisions in Linux-like environments.
  • Practice calculating turnaround time, waiting time, and response time for different scenarios and scheduling policies.

What the exam asks

Expect questions involving simulating scheduling algorithms for a given set of processes, drawing Gantt charts, and calculating performance metrics like average turnaround and waiting times.

The components, basic → advanced

These are the atomic skills this stage is built from. Learn them in this order — later ones assume the earlier ones.

L1 · foundational
CPU burst and I/O burst definition
needs first: process states
L2 · building
Voluntary vs preemptive context switch
needs first: process states
L2 · building
nice value and dynamic priority
needs first: context switch types
L2 · building
Latency vs throughput process classification
needs first: context switch types
L3 · applied
SCHED_FIFO / SCHED_RR real-time policies
needs first: context switch types
L3 · applied
Preemption trigger identification
needs first: context switch types
L3 · applied
Round-robin turnaround/waiting metrics
needs first: cpu burst definition
L3 · applied
Non-preemptible kernel implications
needs first: context switch types, preemption triggers
L4 · advanced
SRT / preemptive Gantt construction
needs first: cpu burst definition, preemption triggers

Exam subsections in this stage (89 parts across 15 questions)

OS-Winter-2020-2021-examAQ2core13 parts here

זימון תהליכים

  1. 1.a· short_answer· 1 pts

    Running → Ready

    libc syscall wrapper caching pitfallsSCHED_FIFO / SCHED_RR real-time policiesSRT / preemptive Gantt construction
  2. 1.b· short_answer· 1 pts

    Ready → Running

    libc syscall wrapper caching pitfallsSCHED_FIFO / SCHED_RR real-time policiesSRT / preemptive Gantt construction
  3. 1.c· short_answer· 1 pts

    Running → Waiting

    SRT / preemptive Gantt construction
  4. 1.d· short_answer· 1 pts

    Waiting → Ready

    SRT / preemptive Gantt construction
  5. 2.a· short_answer· 2 pts

    מה היתרון בשימוש ב quantum גדול (מספיק יתרון אחד)?

    libc syscall wrapper caching pitfallsSCHED_FIFO / SCHED_RR real-time policiesSRT / preemptive Gantt construction
  6. 2.b· short_answer· 2 pts

    מה היתרון בשימוש ב quantum קטן (מספיק יתרון אחד)?

    libc syscall wrapper caching pitfallsSCHED_FIFO / SCHED_RR real-time policiesSRT / preemptive Gantt construction
  7. 2.c· short_answer· 2 pts

    במידה והמערכת עמוסה (מכילה הרבה תהליכים מוכנים לריצה), מדוע עדיף להוסיף תהליכים חדשים בסוף התור?

    libc syscall wrapper caching pitfalls
  8. 3· short_answer· 3 pts

    עבור זמן תהליכים CFS, איזה בעיה פותרת ה min_granularity ?

    libc syscall wrapper caching pitfallsSCHED_FIFO / SCHED_RR real-time policiesSRT / preemptive Gantt construction
  9. 4· trace· 2 pts

    איזה תהליך ירוץ בכל אחד מהזמנים הנתונים: [Table to fill]

    libc syscall wrapper caching pitfallsSCHED_FIFO / SCHED_RR real-time policiesSRT / preemptive Gantt construction
  10. 5· trace· 2 pts

    איזה תהליך ירוץ בכל אחד מהזמנים הנתונים (נא להמשיך את הטבלה עד 17ms) [Table to fill]

    libc syscall wrapper caching pitfallsSCHED_FIFO / SCHED_RR real-time policiesSRT / preemptive Gantt construction
  11. 6· short_answer· 2 pts

    האם תודפס ההודעה "Hello from CFS"? (הסבר)

    libc syscall wrapper caching pitfallsSCHED_FIFO / SCHED_RR real-time policiesSRT / preemptive Gantt construction
  12. 7· short_answer· 2 pts

    אילו היינו משנים את מדיניות הזימון של תהליך A ל SCHED_RR במקום SCHED_FIFO, האם התשובה לסעיף הקודם היתה משתנה?

    SCHED_FIFO / SCHED_RR real-time policiesSRT / preemptive Gantt construction
  13. 8· short_answer· 4 pts

    לדני יש מחשב בעל 2 מעבדים ורוצה לממש "איזון עומסים" במערכת זימון תהליכים שלו, כך שהתהליך יכול לבחור לאיזה מעבד לעבור דרך קריאת מערכת חדשה. להזכירכם: "איזון עומסים" או load balancing היא פעולה בה מעבירים תהליכים בין מעבד אחד לשני כדי לאזן את העומס על שני המעבדים. לדני עלתה 3 אופציות לממש את העברת תהליכים רגילים, בעלי מדיניות זימון CFS, ממעבד A למעבד B: • להשאיר את התהליך עם אותו vruntime שצבר עד כה. • לתת לתהליך vruntime = min_vruntime הזמן הוירטואלי המינימלי בין הזמנים הוירטואלים של התהליכים הרצים על המעבד B. • לתת לתהליך vruntime = max_vruntime הזמן הווירטואלי המקסימלי בין הזמנים הוירטואלים של התהליכים הרצים על המעבד B. מה לדעתכם האופציה העדיפה ביותר? ולמה?

    libc syscall wrapper caching pitfalls
2018A_Winter_BQ2core10 parts here

חלק 2 - החלפת הקשר

  1. 6· mcq· 5 pts

    (5 נק') מה הצירוף של פקודות מכונה השקול לפקודה "call 0x12345"? a. after_call: pushl after_call jmp $0x12345 b. jmp $0x12345 pushl after_call c. pushl after_call after_call: jmp $0x12345 d. jmp $0x12345 pushl after_call after_call: e. pushl after_call jmp $0x12345 after_call: f. pushl after_call after_call: jmp $0x12345

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsPipe IPC semantics
  2. נימוק· short_answer

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsPipe IPC semantics
  3. 7· mcq· 5 pts

    (5 נק') מה הקוד החסר בשורות 6--7? תזכורת: פקודת movl a,b מעתיקה את התוכן של a ל-b. a. movl next->thread.esp, %esp movl %esp, prev->thread.esp b. movl %esp, prev->thread.esp movl next->thread.esp, %esp c. movl %esp, next->thread.esp movl prev->thread.esp, %esp d. movl prev->thread.esp, %esp movl %esp, next->thread.esp e. movl %esp, prev->thread.esp movl %esp, next->thread.esp f. movl prev->thread.esp, %esp movl next->thread.esp, %esp

    Pipe IPC semantics
  4. נימוק· short_answer

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsPipe IPC semantics
  5. 8· mcq· 5 pts

    (5 נק') למרבה הצער, הקוד החדש של בני לא עובד (הגרעין קורס מיד בשלב האיתחול). מה הקוד שיש להוסיף בין שורות 10,11 כדי לתקן את הגרעין? a. ret b. iret c. jmp $1f d. jmp next->thread.eip e. call $1f f. call next->thread.eip

    Pipe IPC semantics
  6. נימוק· short_answer

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsPipe IPC semantics
  7. 9· mcq· 5 pts

    (5 נק') למרבה הצער, גם הקוד של משה לא עובד (הגרעין קורס מיד בשלב האיתחול). מה הקוד שיש להוסיף בין שורות 10,11 כדי לתקן את הגרעין? a. ret b. iret c. jmp $1f d. jmp next->thread.eip e. call $1f f. call next->thread.eip

    Pipe IPC semantics
  8. נימוק· short_answer

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsPipe IPC semantics
  9. 10· mcq· 5 pts

    (5 נק') כצפוי, גם הקוד של אבי לא עובד (הגרעין קורס מיד בשלב האתחול). מה הקוד שיש להוסיף בין שורות 10,11 כדי לתקן את הגרעין? a. jmp next->thread.eip popl %eax popl %edx b. popl %eax popl %edx jmp next->thread.eip c. ret popl %eax popl %edx d. popl %eax popl %edx ret e. ret popl %eax popl %edx popl %eax f. pop1 %edx popl %eax ret

    Pipe IPC semantics
  10. נימוק· short_answer

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsPipe IPC semantics
Winter2022-examAQ3core8 parts here

זימון תהליכים

  1. 1· trace· 3 pts

    (3 נק): מגיעים שלושה תהליכים יחד: P1,P2,P3. זמן הריצה של תהליך P1 הוא 3Q. זמן הריצה של תהליך P2 הוא Q. זמן הריצה של תהליך P3 הוא 6Q. התהליכים מסתדרים בתור למעבד (run queue) בסדר הבא: קודם P1 אחר כך P2 ואחר כך P3. רשמו בתרשים מטה באיזה תזמון תהליכים הולכים לרוץ. איזה תהליך ירוץ באיזה יחידת זמן?

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsSRT / preemptive Gantt construction
  2. 2· calculation· 3 pts

    (3 נק): כמה epochs ייקח עד שכל התהליכים יסיימו את ריצתם? מה יהיה אורך של כל epoch ביחידות זמן של Q? מספר epochs: אורך של כל אחד:

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsSRT / preemptive Gantt construction
  3. 3· short_answer· 3 pts

    (3 נק): האם IRR הוא זמן הוגן? אם כן, סמן והסבר מדוע? אם לא, סמן והסבר איזה תהליכים יכולים להיות מורעבים? (כן / לא)

    SRT / preemptive Gantt construction
  4. 4· short_answer· 3 pts

    (3 נק): האם IRR יכול לגרום לאפקט השיירה (convoying effect)? הסבר את תשובתך. (כן / לא)

    SRT / preemptive Gantt construction
  5. 5· short_answer· 3 pts

    (3 נק): איזה סוג תהליכים (IO-bound,CPU-bound,או אף אחד מהם) יעדיפו לעבוד עם זמן IRR? הסבר את תשובתך. (CPU-bound) (I/O-bound) (אף אחד מהם)

    SRT / preemptive Gantt construction
  6. 6· proof· 5 pts

    (5 נק): האם תמיד זמן תגובה ממוצע של RR טוב יותר מ- או שווה ל- IRR הוכח / הפרך: (נכון / לא נכון)

    SRT / preemptive Gantt construction
  7. 7· proof· 5 pts

    (5 נק): האם תמיד זמן תגובה ממוצע של IRR טוב יותר מ- או שווה ל- RR הוכח / הפרך: (נכון / לא נכון)

    SRT / preemptive Gantt construction
  8. 8· proof· 5 pts

    (5 נק): הוכח שאם במערכת יש רק ליבה אחת ואין מחיר להחלפת הקשר כל התהליכים מגיעים יחד ומשתמשים רק ב-CPU (אין ס/ו) זמן ריצה של תהליכים הוא Q∑ i עבור ח כלשהו אז avgResponseTime(IRR)<=2*avgResponseTime(SJF) הוכחה:

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsSRT / preemptive Gantt construction
examB-spring2020Q2corecritical8 parts here

זימון תהליכים

  1. 1· short_answer· 4 pts

    EASY

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  2. 2· short_answer· 4 pts

    LXF - Largest eXpansion Factor

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  3. 3· short_answer· 4 pts

    SJBF - Shortest Job Backfilled First

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  4. 4· short_answer· 4 pts

    LJBF - Longest Job Backfilled First

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  5. 5· short_answer· 5 pts

    (5 נק') כפי שלמדנו, תחת תנאים מסוימים אלגוריתם SJF הינו אופטימלי עבור מדד זמן תגובה ממוצע. מהם שלושת התנאים?

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  6. 6.a· short_answer· 3 pts

    (3 נק') תנאי שלא מתקיים: דוגמא לאי אופטימליות:

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  7. 6.b· short_answer· 3 pts

    (3 נק') תנאי שלא מתקיים: דוגמא לאי אופטימליות:

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  8. 6.c· short_answer· 3 pts

    (3 נק') תנאי שלא מתקיים: דוגמא לאי אופטימליות:

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
2017A_Winter_AQ1core7 parts here

זימון תהליכים

  1. 1.1· calculation· 3 pts

    (3 נק') מדד זמן ההמתנה הממוצע (average wait-time):

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  2. 1.2· calculation· 3 pts

    (3 נק') מדד זמן התגובה הממוצע (average response-time):

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  3. 1.3· calculation· 3 pts

    (3 נק') מדד הניצולת (utilization):

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  4. 2· short_answer· 4 pts

    (4 נק') בהנחה שכל התהליכים למעלה מגיעים בזמן 0. איזו מדיניות זימון יכולה לשפר את הניצולת כפי שחושבה בסעיף הקודם? נמקו (ראו מצורפת טבלת זימון ריקה על מנת להמחיש את הזימון החדש לפי האלגוריתם, עליכם למלא את הטבלה בהתאם)

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

    (4 נק') מנו 2 יתרונות ו-2 חסרונות של מדיניות זימון מסוג batch-scheduling על פני מדיניות Round-robin. נמקו.

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  6. 4· short_answer· 4 pts

    (4 נק') האם BSAF סובל מ-convoy effect? נמקו (עליכם להמחיש בעזרת הטבלה הנתונה).

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  7. 5· proof· 4 pts

    (4 נק') האם אלגוריתם הזימון BSAF הינו אופטימלי מבחינת מדד הניצולת? הוכיחו או הפריכו (עליכם להמחיש בעזרת הטבלה הנתונה)

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
OS-Winter2022-examBQ4core7 parts here

תזמון תהליכים

  1. 1· mcq· 2 pts

    1. (2 נק') במערכת עם ליבה אחת, בה כל התהליכים מגיעים יחד וזמני הריצה שלהם ידועים מראש, איזה אלגוריתם batch scheduling (כלומר בלי הפקעות תהליכים) ימזער ככל הניתן את ה-average wait time? (אין צורך בנימוק) a. SJF (shortest job first) algorithm b. FCFS (first come first serve) algorithm c. EASY (FCFS + backfilling) algorithm d. RR (round robin) algorithm e. תלוי בחומרת המערכת f. אם קיים תהליך שרץ על כל המעבדים במערכת – Round Robin, ואחרת SJF g. תלוי כמה מהתהליכים שייכים למערכת ההפעלה

    libc syscall wrapper caching pitfallsSRT / preemptive Gantt construction
  2. 2· mcq· 5 pts

    2. (5 נק') נגדיר מערכת בעלת 3 ליבות (המסוגלת להריץ תהליכים במקביל, בהתאם לדרישות של התהליכים), בה ישנם אך ורק 4 תהליכים המעוניינים לרוץ: תהליך 1 דורש 2 ליבות וירוץ למשך 2 שניות עד לסיום תהליך 2 דורש 1 ליבות וירוץ למשך 4 שניות עד לסיום תהליך 3 דורש 3 ליבות וירוץ למשך 1 שניות עד לסיום תהליך 4 דורש 2 ליבות וירוץ למשך 2 שניות עד לסיום התהליכים נשלחים למעבד בסדר זה (קודם תהליך 1 מגיע, אחרי זה תהליך 2, אחרי זה תהליך 3, ואחרון מגיע תהליך 4). לאחר הגעת תהליך 4 אך לפני תחילת הרצת תהליך 1 נקצה את כולם למעבדים ונחלק לוח זמנים לכל מעבד (כלומר לכל מעבד נקבע מתי להריץ איזה תהליך). איזה אלגוריתם יגרום לסיום כל התהליכים ראשון? a. כל האלגוריתמים יסיימו את הריצה באותו זמן b. FCFS c. SJF d. EASY e. תשובות b, c נכונות f. תלוי עד כמה יש את "אפקט השיירה" (convoy effect) במערכת לפני תחילת ריצת התהליכים g. תשובות c, d נכונות נימוק:

    libc syscall wrapper caching pitfalls
  3. 3· mcq· 3 pts

    3. (3 נק') במערכת ההפעלה לינוקס אנו משתמשים באלגוריתם זימון תהליכים המורכב ממערכת תזמון round robin או FIFO עבור תהליכי זמן-אמת, ובאלגוריתם CFS (כפי שנלמד בתרגולים) עבור תהליכים "רגילים". נניח שיש תהליך רגיל אחד ותהליך זמן-אמת אחד. מהו החיסרון המשמעותי ביותר בשימוש באלגוריתם CFS גלובלי על כל התהליכים? כלומר, מה החיסרון בכך שנתייחס לתהליכי זמן-אמת בתור תהליכים רגילים, וניתן להם niceness מקסימלי כדי לתת להם עדיפות גבוהה באלגוריתם? a. לאלגוריתם CFS יש סיבוכיות זמן ריצה של בחירת התהליך הבא ((O(log(n ולכן לא נרצה לאלץ את התהליך זמן-האמת לחכות לריצה שלו b. אלגוריתם round robin יותר הוגן מאשר אלגוריתם CFS כיוון שהוא לא מתייחס למשקול (niceness) של תהליך c. אלגוריתם CFS גלובלי לא יתן לתהליך זמן האמת את כל זמן המעבד d. אלגוריתם CFS לא מתחשב בזמן שתהליכים לוקחים לבצע ס/ו e. תהליכים חדשים מתווספים עם זמן ריצה וירטואלי מינימאלי ולכן יכולים לגרום להרעבת תהליך זמן האמת f. אף תשובה לא נכונה נימוק:

    nice value and dynamic prioritylibc syscall wrapper caching pitfalls
  4. 4· mcq· 3 pts

    4. (3 נק') באלגוריתם CFS (כפי שנלמד בתרגול), כאשר מעבירים תהליך P ממעבד A למעבד B (למשל, לצורך איזון עומסים בין מעבדים שונים), איזה זמן ריצה וירטואלי יקבל תהליך P אחרי שמעבירים אותו? a. זמן הריצה הוירטואלי המינימאלי מבין התהליכים של מעבד A b. זמן הריצה הוירטואלי המקסימאלי מבין התהליכים של מעבד A c. אותו זמן ריצה וירטואלי כפי שהיה לו במעבד A לפני שהועבר d. זמן הריצה הוירטואלי המינימאלי מבין התהליכים של מעבד B e. זמן הריצה הוירטואלי המקסימאלי מבין התהליכים של מעבד B נימוק:

    nice value and dynamic prioritylibc syscall wrapper caching pitfallsSRT / preemptive Gantt construction
  5. 5· mcq· 4 pts

    5. (4 נק') אלגוריתם CFS מגדיר לתהליכים חדשים את זמן הריצה הוירטואלי _________, ואילו מגדיר לתהליכים שחוזרים משהייה ארוכה את זמן הריצה הוירטואלי a. חדשים: המינימאלי, חוזרים משהייה: המינימאלי b. חדשים: המקסימאלי, חוזרים משהייה: המקסימאלי c. חדשים: המינימאלי, חוזרים משהייה: המקסימאלי d. חדשים: המקסימאלי, חוזרים משהייה: המינימאלי e. חדשים: המקסימאלי, חוזרים משהייה: שהיה לו לפני היציאה לשהייה f. חדשים: הממוצע, חוזרים משהייה: שהיה לו לפני היציאה לשהייה g. חדשים: הממוצע, חוזרים משהייה: הממוצע h. אף תשובה לא נכונה נימוק:

    nice value and dynamic prioritylibc syscall wrapper caching pitfallsSRT / preemptive Gantt construction
  6. 6· short_answer· 4 pts

    6. (4 נק') במערכת בה תהליכים מגיעים בזמנים שרירותיים, באיזה אלגוריתם תזמון נעדיף להשתמש – SRTF או SJF? מדוע? הערה: נגדיר "אלגוריתם מועדף" בתור אלגוריתם שמשפר את ה-average wait time כפי שהוגדר בסעיף הראשון. נימוק:

    libc syscall wrapper caching pitfallsSRT / preemptive Gantt construction
  7. 7· short_answer· 4 pts

    7.(4 נק') ד"ר פישבך, חוקר אלגוריתמי תזמון במערכות הפעלה, מתבאס מכל אלגוריתמי התזמון המסובכים ומציע אלגוריתם מאוד פשוט: כל מעבד יעבור לתהליך חדש בכל פסיקת שעון (בלי התנגשויות כמובן, כך שלא יקרה מצבו בוזוג מעבדים יריצו את אותו תהליך), וככה חלוקת הזמנים בין התהליכים תהיה הכי הוגנת שהיא יכולה להיות, כי בכל epoch כל התהליכים יקבלו את אותה כמות זמן. הוא מגביל את האלגוריתם למערכות שמבצעות רק תהליכים שלא נכנסים למצב המתנה, ובעלי niceness אחיד קבוע. ד״ר טאוב שהשקיע הרבה זמן בתרגילי הבית במערכות הפעלה נרתע מאלגוריתם זה ומעדיף להשתמש במערכת הקיימת. הוא טוען שישנה בעיה מאוד חמורה באלגוריתם זה. מה הבעיה? נימוק:

    nice value and dynamic prioritylibc syscall wrapper caching pitfallsLocal vs global interrupt disable
2017A_Winter_BQ2core6 parts here

זימון תהליכים

  1. א.· short_answer· 4 pts

    (4 נק') האם SJF יכול לשמש אותנו לצורך בניית מערכת כזו, בהנחה שכל התהליכים הגיעו בזמן 0. אם כן, הוכיחו. אם לא, תנו דוגמה נגדית.

    libc syscall wrapper caching pitfalls
  2. ב.· proof· 5 pts

    (5 נק') הוכיחו או הפריכו אופטימליות של EDD עבור קבוצת תהליכים שמגיעים ביחד ביחס למדד זה, כלומר: הוכיחו שאלגוריתם EDD יביא למינימום של המדד L או תנו דוגמה נגדית.

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  3. ג.· calculation· 5 pts

    (5 נק') עבור N תהליכים מחזוריים במערכת עם מעבד יחיד, שלכל תהליך יש זמן ריצה (למחזור) ;R ומחזור C תנו נוסחה לחישוב הניצולת (utilization) של המערכת תחת זימון EDD. הסבירו את תשובתכם.

    libc syscall wrapper caching pitfalls
  4. ד.· short_answer· 4 pts

    (4 נק') עבור אילו ערכים של ניצולת אין אפשרות למצוא סידור שיספק דרישות של כל התהליכים?

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  5. ה.· trace· 4 pts

    (4 נק') זמן Earliest Deadline First בשימוש נרחב במערכות RT. זה אלגוריתם עם הפקעות. כל פעם שתהליך מסתיים או יוצא להמתנה או נוסף לתור של תהליכים מוכנים לריצה, אלגוריתם זה בוחן את כל התהליכים הזמינים ובוחר את התהליך עם זמן סף הקרוב ביותר. נתונה מערכת עם תהליכים הבאים (שכולם הגיעו למערכת בזמן 0): תהליך R C A 1 8 B 2 6 C 4 11 על פני 20 יחידות זמן ראשונות: מה יהיה הסידור שאלגוריתם EDF יפיק?

    libc syscall wrapper caching pitfalls
  6. ז.· calculation· 3 pts

    (3 נק') מה הניצולת של מערכת זו?

    libc syscall wrapper caching pitfalls
2017B_Spring_BQ1core6 parts here

תזמון אצווה (batch scheduling)

  1. א· short_answer· 4 pts

    (4 נק') הסבר מדוע חשוב שכל התהליכים של עבודה מסויימת (ג׳וב) ירוצו במקביל? מה עשוי לקרות אם הם לא ירוצו במקביל?

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  2. ב· calculation· 5 pts

    (5 נק') בהנחה שעבודות 4,5,6 הגיעו בזמן 3, וכל שאר העבודות הגיעו בזמן 0, מהו זמן ההמתנה (wait) הממוצע? הסבירו

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  3. ג· calculation· 4 pts

    (4 נק') תחת ההנחה של סעיף ב׳, מהו זמן התגובה (response) הממוצע? הסבירו

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  4. ד· calculation· 4 pts

    (4 נק') תחת ההנחה של סעיף ב', מהו זמן ההאטה (slowdown) הממוצע? הסבירו

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  5. ה· calculation· 4 pts

    (4 נק') תחת ההנחה של סעיף ב׳, מהי הניצולת של המערכת? הסבירו

    libc syscall wrapper caching pitfalls
  6. ו· calculation· 4 pts

    (4 נק') בהנחה שכל העבודות הגיעו בזמן ״0״ לפי סדר המיספור שלהן, אם נפעיל אלגוריתם זימון EASY, מה תהיה הניצולת של המערכת? הסבירו

    libc syscall wrapper caching pitfalls
OS-Spring2021-examBQ3core5 parts here

זימון תהליכים (Process Scheduling)

  1. a· trace· 7 pts

    הטבלה הבאה מתארת משימות שנוצרו ע"י 4 תהליכים A,B,C ו-D. עבור כל משימה נתון זמן היווצרותה, מספר יחידות החישוב שהיא דורשת, איזה תהליך יצר אותה ומה המספר הסידורי שלה (A2 נוצרה על ידי תהליך A והמספר הסידורי שלה 2). Task | A1 | B1 | C1 | D1 | A2 | B2 | A3 Computational units | 74 | 146 | 98 | 122 | 72 | 80 | 128 Time of Arrival (sec) | 0 | 0 | 4 | 5 | 8 | 12 | 12 נניח שהמעבד יכול לבצע 24 יחידות חישוב לשנייה. מלאו את הטבלה של הזימון. קבעו את אורך האינטרוול של הזמן והמשימות המתבצעות בו. למשל עבור מערכת בה בזמן 0 עד 3 מתבצעת משימה A1 ומזמן 4 עד 6 מתבצעות A1 ו-B1 הטבלה נראית כך: Time Interval | 0-4 | 4-6 Executing tasks | A1 | A1,B1

    fork/exec address-space semanticslibc syscall wrapper caching pitfallsSRT / preemptive Gantt construction
  2. b· trace· 5 pts

    נתונה מערכת עם שני תהליכים A ו-B עם משקלים 1 ו-4 בהתאמה. A מיצר משימה בזמן 0 ואילו B מיצר משימה בזמן 4. גודל של כל משימה 200 יחידות חישוב ומעבד יכול לבצע 25 יחידות חישוב לשנייה. תנו תיאור של הזימון עד גמר הביצוע של שתי המשימות. (שימו לב שצריך להתחשב במשקלי התהליכים). תשובה:

    libc syscall wrapper caching pitfalls
  3. c· trace· 8 pts

    חשבו את הגדלים של המשימות: A1: A2: A3: B1: B2: C1: מלאו את טבלת התזמון של WFQ: Time Interval Executing tasks

    fork/exec address-space semantics
  4. d.1· trace· 4 pts

    מלאו טבלה זו עבור זימון של WFQ: Time Interval Executing tasks

    fork/exec address-space semantics
  5. d.2· trace· 4 pts

    השיפור של WFQ נקרא WF2Q. כמו WFQ גם WF2Q בוחר במשימה עם זמן הסיום המוקדם ביותר לפי GPS. אבל הבחירה היא רק בין הפקטות ש-GPS כבר התחיל לבצע. ז"א אם בזמן t אנחנו רוצים לבחור משימה לביצוע ומשימה A מסתיימת לפני B לפי GPS, אז נבחר את A רק אם בזמן t גם אלגוריתם GPS התחיל לבצע את המשימה A. חזרו על הסעיף הקודם (סעיף 4.1) ומלאו טבלה זו עבור זימון של WF2Q: Time Interval Executing tasks

    fork/exec address-space semantics
2018A_Winter_AQ2core5 parts here

חלק 2 - החלפת הקשר

  1. 6· mcq· 5 pts

    (5 נק') איזה אירוע מבין הבאים יוביל בהכרח להחלפת הקשר כפויה (כלומר הפקעה)? a. פסיקת חומרה אשר מעירה תהליך עדיף יותר מהתהליך הנוכחי. b. חריגת דף בעקבות גישה לא חוקית של התהליך לזיכרון. c. ניסיון לתפוס מנעול שכבר תפוס ע"י קריאה ל-()pthread_mutex_lock. d. קריאת מערכת ()wait. e. קריאת מערכת ()read. f. קריאת מערכת ()exit.

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsPreemption trigger identificationNon-preemptible kernel implicationsLocal vs global interrupt disablePage fault error code classification
  2. 7· mcq· 5 pts

    (5 נק') מה משמעות המושג "גרעין שאינו ניתן להפקעה"? a. תהליך חישובי לא יפקיע את המעבד מתהליך גרעין. b. תהליך אינטראקטיבי לא יפקיע את המעבד מתהליך גרעין. c. תהליך (חישובי או אינטראקטיבי) לא יפקיע את המעבד מתהליך גרעין. d. מערכת ההפעלה לא תפקיע את המעבד מתהליך חישובי שרץ במצב גרעין. e. מערכת ההפעלה לא תפקיע את המעבד מתהליך אינטראקטיבי שרץ במצב גרעין. f. מערכת ההפעלה לא תפקיע את המעבד מתהליך (חישובי או אינטראקטיבי) שרץ במצב גרעין.

    Voluntary vs preemptive context switchLatency vs throughput process classificationlibc syscall wrapper caching pitfallsNon-preemptible kernel implications
  3. 8· mcq· 5 pts

    (5 נק') איזה תרחיש הוא בלתי אפשרי בגרעין שאינו ניתן להפקעה במערכת מעבד יחיד? הבהרה: A עלול לחתוך את B פירושו ש-A עלול להיכנס באמצע הביצוע של B. a. קריאת מערכת חוסמת עלולה לחתוך קריאת מערכת חוסמת. b. קריאת מערכת לא-חוסמת עלולה לחתוך קריאת מערכת חוסמת. c. קריאת מערכת חוסמת עלולה לחתוך קריאת מערכת לא-חוסמת. d. פסיקת חומרה עלולה לחתוך קריאת מערכת חוסמת. e. פסיקת חומרה עלולה לחתוך קריאת מערכת לא-חוסמת. f. פסיקת חומרה עלולה לחתוך פסיקת חומרה.

    Voluntary vs preemptive context switchlibc syscall wrapper caching pitfallsPreemption trigger identificationNon-preemptible kernel implicationsLocal vs global interrupt disable
  4. 9· mcq· 5 pts

    (5 נק') מדוע נגן המוזיקה סובל מגרעין שאינו ניתן להפקעה? a. כי הוא תהליך חישובי אשר רגיש להשהיות במהלך הריצה (latency sensitive). b. כי הוא תהליך אינטראקטיבי אשר רגיש להשהיות במהלך הריצה (latency sensitive). c. כי הוא תהליך חישובי אשר רגיש לזמן הריצה הכולל (throughput sensitive). d. כי הוא תהליך אינטראקטיבי אשר רגיש לזמן הריצה הכולל (throughput sensitive). e. כי הוא תהליך חישובי אשר רגיש לנצילות המעבד (utilization sensitive). f. כי הוא תהליך אינטראקטיבי אשר רגיש לנצילות המעבד (utilization sensitive).

    Voluntary vs preemptive context switchLatency vs throughput process classificationNon-preemptible kernel implications
  5. 10· mcq· 5 pts

    (5 נק') מי מהחברים של פרדי הציע דרך שתצמצם את הבעיה? נתון כי: • במחשב של פרדי רצים רק שני תהליכים: נגן המוזיקה + קומפילציה של קוד. • שני התהליכים הם בעלי ערך 0 = nice (ערך ברירת המחדל). • תהליך הקומפילציה רץ הרבה על המעבד ויוצא מעט להמתנה. • במחשב של פרדי יש מעבד יחיד. a. אף אחד מבין החברים. b. רק בריאן. c. רק רוג'ר. d. רק ג'ון. e. רק רוג'ר וג'ון. f. כל שלושת החברים.

    nice value and dynamic priority
2018B_Spring_AQ1core5 parts here

זימון תהליכים

  1. 1· short_answer· 5 pts

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

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

    (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 pts

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

    nice value and dynamic priority
  4. 4· short_answer· 5 pts

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

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

    (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