TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

TCSS 422: OPERATING SYSTEMS QUIZ 0 SCORES

 Average – 6.419 Processes, API,  Min – 3 Limited Direct Execution  Max/4th quartile – 8  2nd & 3rd Quartile– 7  1st quartile – 6 Wes J. Lloyd  Mode – 7 School of Engineering and Technology,  Std. Dev. – 1.33 University of Washington - Tacoma

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 October 8, 2018 L4.2 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

FEEDBACK FROM 10/3 FEEDBACK - 2

 Real world example of “a child of a parent of a process”  Can you create more than 1 fork?  … when do processes have children? . i.e. call fork() more than one time in a program

 Check process ID of BASH :  If you create more than one fork(), how do you handle them? . echo $$  Check parent’s process ID:  How would you use fork in a potential application? . echo $PPID  Code examples online under “Schedule” tab:  Exec launches a different process or program . What is the difference between a process and a program? . Exec does not create a new process. It transfers control: Man page: “The exec() family of functions replaces the current process image with a new process image.” TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.3 October 8, 2018 L4.4 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

FEEDBACK - 3 OBJECTIVES

 Most of the calls are still unclear  C Tutorial  Quiz 1 – Active Reading  Is it possible to record the lectures?  Chapter 6 – Limited Direct Execution – cont’d

 Chapter 7 – Introduction to  Chapter 8 – Multi-level Feedback Queue

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.5 October 8, 2018 L4.6 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.1 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

CHAPTER 6 REVIEW

 As per Chapter 6, What is DIRECT Execution?

 What is Limited Direct Execution? CH. 6:  What is a ? LIMITED DIRECT  What is a system call? EXECUTION  What is an “Trap”?

 What is the difference between a maskable and a non- maskable ?

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 October 8, 2018 L4.8 School of Engineering and Technology, University of Washington - Tacoma L4.7 School of Engineering and Technology, University of Washington - Tacoma

DIRECT EXECUTION - 2 CONTROL TRADEOFF

 With direct execution:  Too little control: . No security How does the OS stop a program from running, and switch . No time sharing to another to support time sharing?

How do programs share disks and perform I/O if they are  Too much control: given direct control? Do they know about each other? . Too much OS overhead With direct execution, how can dynamic memory structures . Poor performance for compute & I/O such as linked lists grow over time? . Complex (system calls), difficult to use

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.9 October 8, 2018 L4.10 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

CONTEXT SWITCHING OVERHEAD LIMITED DIRECT EXECUTION

 OS implements LDE to support time/resource sharing

 Limited direct execution means “only limited” processes can execute DIRECTLY on the CPU in trusted mode

 TRUSTED means the process is trusted, and it can do anything… (e.g. it is a system / kernel level process)

 Enabled by protected (safe) control transfer

 CPU supported context switch

 Provides data isolation

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.11 October 8, 2018 L4.12 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.2 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

TRAPS: SYSTEM CALLS SYSTEM CALLS, EXCEPTIONS,

 Implement restricted “OS” operations  Trap: any transfer to kernel mode  Kernel exposes key functions through an API: . Device I/O (e.g. file I/O)  Three kinds of traps . Task swapping: context switching between processes . System call: (planned) user  kernel . /allocation: malloc() . SYSCALL for I/O, etc. . Creating/destroying processes . Exception: (error) user  kernel . Div by zero, page fault, page protection error

. Interrupt: (event) user  kernel . Non-maskable vs. maskable . Keyboard event, network packet arrival, timer ticks . Memory parity error (ECC), hard drive failure

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.13 October 8, 2018 L4.14 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

MULTITASKING MULTITASKING

 How/when should the OS regain control of the CPU to  How/when should the OS regain control of the CPU to switch between processes? switch between processes?

 Cooperative multitasking (mostly pre 32-bit)  Cooperative multitasking (mostly pre 32-bit) . < Windows 95, Mac OSX . < WindowsA process 95, Macgets OSX stuck in an . . Opportunistic: running programs must give up control . Opportunistic: running programs must give up control  Reboot the machine . User programs must call a special system call . User programs must call a special yield system call . When performing I/O . When performing I/O . Illegal operations . Illegal operations

. (POLLEV) . (POLLEV) What problems could you for see with this approach? What problems could you for see with this approach?

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.15 October 8, 2018 L4.16 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

QUESTION: MULTITASKING

 What problems exist for regaining the control of the CPU with cooperative multitasking OSes?

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 October 8, 2018 L4.18 School of Engineering and Technology, University of Washington - Tacoma L4.17 School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.3 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

MULTITASKING - 2 MULTITASKING - 2

 Preemptive multitasking (32 & 64 bit OSes)  Preemptive multitasking (32 & 64 bit OSes)  >= Mac OSX, +  >= Mac OSX, Windows 95+

 Timer interrupt  Timer interrupt . Raised at some regular interval (in ms) . RaisedA attimer some interrupt regular interval gives OS (in the ms) ability to run again on a CPU. . Interrupt handling . Interrupt handling 1. Current program is halted 1. Current program is halted 2. Program states are saved 2. Program states are saved 3. OS is run (kernel mode) 3. OS Interrupt handler is run (kernel mode)

 (PollEV) What is a good interval for the timer interrupt?  (PollEV) What is a good interval for the timer interrupt?

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.19 October 8, 2018 L4.20 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

QUESTION: TIME SLICE

 For an OS that uses a system timer to force arbitrary context switches to share the CPU, what is a good value (in seconds) for the timer interrupt?

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 October 8, 2018 L4.22 School of Engineering and Technology, University of Washington - Tacoma L4.21 School of Engineering and Technology, University of Washington - Tacoma

CONTEXT SWITCH CONTEXT SWITCH - 2

 Preemptive multitasking initiates “trap” 1. Save register values of the current process to its kernel into the OS code to determine: stack . General purpose registers  Whether to continue running the current process, . PC: (instruction pointer) or switch to a different one. . kernel stack pointer

 If the decision is made to switch, the OS performs a context switch swapping out the current process for a new one. 2. Restore soon-to-be-executing process from its kernel stack 3. Switch to the kernel stack for the soon-to-be-executing process

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.23 October 8, 2018 L4.24 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.4 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

Context Switch

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 October 8, 2018 School of Engineering and Technology, University of Washington - Tacoma L4.25 School of Engineering and Technology, University of Washington - Tacoma L4.26

INTERRUPTED INTERRUPTS PREEMPTIVE KERNEL

 What happens if during an interrupt (trap to kernel  Use “locks” as markers of regions of non- mode), another interrupt occurs? preemptibility (non-maskable interrupt)

 Linux  counter (preempt_count) . < 2.6 kernel: non-preemptive kernel . begins at zero . >= 2.6 kernel: preemptive kernel . increments for each lock acquired (not safe to preempt) . decrements when locks are released

 Interrupt can be interrupted when preempt_count=0 . It is safe to preempt (maskable interrupt) . the interrupt is more important

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.27 October 8, 2018 L4.28 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

SCHEDULING INTRODUCTION

 For simplicity, consider job scheduling with limitations: . Each job requires the same CPU time . All jobs arrive at the same time . All jobs only use the CPU (no I/O) CHAPTER 7- . The run-time of each job is known a priori SCHEDULING: INTRODUCTION

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 October 8, 2018 L4.30 School of Engineering and Technology, University of Washington - Tacoma L4.29 School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.5 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

SCHEDULING METRICS SCHEDULING METRICS - 2

 Metrics: A standard measure to quantify to what degree a  Scheduling Metric #2: Fairness system possesses some property. Metrics provide repeatable . Jain’s fairness index techniques to quantify and compare systems. . Quantifies if jobs receive a fair share of system resources  Measurements are the numbers derived from the application of metrics  n processes  Scheduling Metric #1: Turnaround time  xi is time share of each process  The time at which the job completes minus the time at which  worst case = 1/n the job arrived in the system  best case = 1

푻풕풖풓풏풂풓풐풖풏풅 = 푻풄풐풎풑풍풆풕풊풐풏 − 푻풂풓풓풊풗풂풍  Consider n=3, worst case = .333, best case=1  With n=3 and x1=.2, x2=.7, x3=.1, fairness=.62  How is turnaround time different than execution time?  With n=3 and x1=.33, x2=.33, x3=.33, fairness=1

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.31 October 8, 2018 L4.32 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

SCHEDULERS FIFO: CONVOY EFFECT

 FIFO: first in, first out  FIFO with different jobs lengths . Very simple, easy to implement  Consider . A =100sec, B =10sec, C =10sec  Consider len len len . 3 x 10sec jobs, arrival: A B C

ퟏퟎퟎ + ퟏퟏퟎ + ퟏퟐퟎ ퟏퟎ + ퟐퟎ + ퟑퟎ 푨풗풆풓풂품풆 풕풖풓풏풂풓풐풖풏풅 풕풊풎풆 = = ퟏퟏퟎ 풔풆풄 푨풗풆풓풂품풆 풕풖풓풏풂풓풐풖풏풅 풕풊풎풆 = = ퟐퟎ 풔풆풄 ퟑ ퟑ

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.33 October 8, 2018 L4.34 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

SJF: SHORTEST JOB FIRST SJF: WITH RANDOM ARRIVAL

 Given that we know execution times in advance:  If jobs arrive at any time: . Run in order of duration, shortest to longest  A @ t=0sec, B @ t=10sec, C @ t=10sec . Non preemptive scheduler . This is not realistic . Arrival: A B C

ퟏퟎ + ퟐퟎ + ퟏퟐퟎ ퟏퟎퟎ + ퟏퟏퟎ − ퟏퟎ +(ퟏퟐퟎ − ퟏퟎ) 푨풗풆풓풂품풆 풕풖풓풏풂풓풐풖풏풅 풕풊풎풆 = = ퟓퟎ 풔풆풄 푨풗풆풓풂품풆 풕풖풓풏풂풓풐풖풏풅 풕풊풎풆 = = ퟏퟎퟑ. ퟑퟑ 풔풆풄 ퟑ ퟑ

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.35 October 8, 2018 L4.36 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.6 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

STCF – SHORTEST TIME TO COMPLETION FIRST STCF - 2

 Add preemption to the Shortest Job First scheduler  Consider:

. Also called preemptive shortest job first (PSJF) . Alen=100 Aarrival=0

. Blen=10, Barrival=10, Clen=10, Carrival=10  When a new job enters the system: . Of all jobs, Which has the least time left? . PREMPT job execution, and schedule the new shortest job

 More realistic, but how do we know execution time in advance? . Oracle: All knowing one . Only schedule static (fixed size) batch workloads (ퟏퟐퟎ − ퟎ)+ ퟐퟎ − ퟏퟎ +(ퟑퟎ − ퟏퟎ) 푨풗풆풓풂품풆 풕풖풓풏풂풓풐풖풏풅 풕풊풎풆 = = ퟓퟎ 풔풆풄 . Can we predict execution time? ퟑ

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.37 October 8, 2018 L4.38 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

SCHEDULING METRICS - 3

 Scheduling Metric #3: Response Time  Time from when job arrives until it starts execution

푻풓풆풔풑풐풏풔풆 = 푻풇풊풓풔풕풓풖풏 − 푻풂풓풓풊풗풂풍

 STCF, SJF, FIFO . can perform poorly with respect to response time

What scheduling algorithm(s) can help minimize response time?

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.39 October 8, 2018 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma L4.40

RR: ROUND ROBIN RR EXAMPLE

 Run each job awhile, then switch to another distributing the  ABC arrive at time=0, each run for 5 seconds CPU evenly (fairly) OVERHEAD not  Scheduling Quantum considered is called a time slice  Time slice mustRR is befair, but performs poorly on metrics ퟎ + ퟓ + ퟏퟎ 푻풂풗풆풓풂품풆 풓풆풔풑풐풏풔풆 = = ퟓ풔풆풄 a multiple of the such as turnaround time ퟑ timer interrupt period.

ퟎ + ퟏ + ퟐ 푻 = = ퟏ풔풆풄 풂풗풆풓풂품풆 풓풆풔풑풐풏풔풆 ퟑ Scheduling Quantum = 5 seconds

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.41 October 8, 2018 L4.42 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.7 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

ROUND ROBIN: TRADEOFFS SCHEDULING WITH I/O

Short Time Slice Long Time Slice  STCF scheduler . A: CPU=50ms, I/O=40ms, 10ms intervals Fast Response Time Slow Response Time . B: CPU=50ms, I/O=0ms . Consider A as 10ms subjobs (CPU, then I/O)

High overhead from Low overhead from  Without considering I/O: context switching context switching

 Time slice impact: CPU utilization= 100/140=71% .Turnaround time (for earlier example): ts(1,2,3,4,5)=14,14,13,14,10 .Fairness: round robin is always fair, J=1

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.43 October 8, 2018 L4.44 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

SCHEDULING WITH I/O - 2

 When a job initiates an I/O request . A is blocked, waits for I/O to compute, frees CPU . STCF scheduler assigns B to CPU  When I/O completes  raise interrupt . Unblock A, STCF goes back to executing A: (10ms sub-job)

Cpu utilization = 100/100=100%

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.45 October 8, 2018 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma L4.46

MULTI-LEVEL FEEDBACK QUEUE

 Objectives: .Improve turnaround time: Run shorter jobs first CHAPTER 8 – .Minimize response time: MULTI-LEVEL FEEDBACK Important for interactive jobs (UI) QUEUE (MLFQ) SCHEDULER  Achieve without a priori knowledge of job length

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 October 8, 2018 L4.48 School of Engineering and Technology, University of Washington - Tacoma L4.47 School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.8 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

MLFQ - 2 Round-Robin MLFQ: DETERMINING JOB PRIORITY within a Queue

 Multiple job queues  New arriving jobs are placed into highest priority queue

 Adjust job priority based on  If a job uses its entire time slice, priority is reduced (↓) observed behavior . Jobs appears CPU-bound ( “batch” job), not interactive (GUI/UI)

 Interactive Jobs  If a job relinquishes the CPU for I/O priority stays the same . Frequent I/O  keep priority high . Interactive jobs require fast response time (GUI/UI) MLFQ approximates SJF  Batch Jobs . Require long periods of CPU utilization . Keep priority low

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.49 October 8, 2018 L4.50 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

MLFQ: LONG RUNNING JOB MLFQ: BATCH AND INTERACTIVE JOBS

 Three-queue scheduler, time slice=10ms  Aarrival_time =0ms, Arun_time=200ms,

 Brun_time =20ms, Barrival_time =100ms

Priority Priority

Scheduling multiple jobs (ms)

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.51 October 8, 2018 L4.52 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

MLFQ: BATCH AND INTERACTIVE - 2 MLFQ: ISSUES

 Continuous interactive job (B) with long running batch job (A)  Starvation . Low response time is good for B . A continues to make progress

The MLFQ approach keeps interactive job(s) at the highest priority

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.53 October 8, 2018 L4.54 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.9 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

MLFQ: ISSUES - 2 RESPONDING TO BEHAVIOR CHANGE

 Gaming the scheduler . Issue I/O operation at 99% completion of the time slice . Keeps job priority fixed – never lowered

 Job behavioral change . CPU/batch process becomes an interactive process Starvation

 Priority Boost . Reset all jobs to topmost queue after some time interval S

Priority becomes stuck

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.55 October 8, 2018 L4.56 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

RESPONDING TO BEHAVIOR CHANGE - 2 PREVENTING GAMING

 With priority boost  Improved time accounting: . Prevents starvation . Track total job execution time in the queue . Each job receives a fixed time allotment . When allotment is exhausted, job priority is lowered

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.57 October 8, 2018 L4.58 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

MLFQ: TUNING PRACTICAL EXAMPLE

 Consider the tradeoffs:  MLFQ implementation . How many queues? . 60 Queues  . What is a good time slice? w/ slowly increasing time slice (high to low priority) . How often should we “Boost” priority of jobs? . Provides sys admins with set of editable table(s) . What about different time slices to different queues? . Supports adjusting time slices, boost intervals, priority changes, etc.

 Advice . Provide OS with hints about the process . Nice command  Linux

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.59 October 8, 2018 L4.60 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma

Slides by Wes J. Lloyd L4.10 TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,

MLFQ RULE SUMMARY

 The refined set of MLFQ rules:  Rule 1: If Priority(A) > Priority(B), A runs (B doesn’t).  Rule 2: If Priority(A) = Priority(B), A & B run in RR.  Rule 3: When a job enters the system, it is placed at the highest priority.  Rule 4: Once a job uses up its time allotment at a given level (regardless of how many times it has given up the CPU), its priority is reduced(i.e., it moves down on queue).  Rule 5: After some time period S, move all the jobs in the system to the topmost queue.

TCSS422: Operating Systems [Fall 2018] TCSS422: Operating Systems [Fall 2018] October 8, 2018 L4.61 October 8, 2018 School of Engineering and Technology, University of Washington - Tacoma School of Engineering and Technology, University of Washington - Tacoma L6.62

QUESTIONS

Slides by Wes J. Lloyd L4.11