TCSS 422 A – Fall 2018 10/8/2018 School of Engineering and Technology,
TCSS 422: OPERATING SYSTEMS QUIZ 0 SCORES
Average – 6.419 Processes, Process 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 shell: 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 Linux 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 Scheduling 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 context switch? LIMITED DIRECT What is a system call? EXECUTION What is an operating system “Trap”?
What is the difference between a maskable and a non- maskable interrupt?
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 APIs (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, INTERRUPTS
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 . Memory management/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 infinite loop. . Opportunistic: running programs must give up control . Opportunistic: running programs must give up control Reboot the machine . User programs must call a special yield 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, Windows 95+ >= 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 Interrupt handler 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: program counter (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 Preemption 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: Oracle Solaris 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