Presentation is loading. Please wait.

Presentation is loading. Please wait.

Preemptive Scheduling Vivek Pai / Kai Li Princeton University.

Similar presentations


Presentation on theme: "Preemptive Scheduling Vivek Pai / Kai Li Princeton University."— Presentation transcript:

1 Preemptive Scheduling Vivek Pai / Kai Li Princeton University

2 2 Overview for Today Wrap up regular scheduling Move on to pre-emptive scheduling Discuss scheduling project Reading assignments missing Will be added to web page soon

3 3 Rethinking Your Server Server: Accept connection User: Send request Server: Send (possibly long) response User: Receive response Both: Disconnect

4 4 Drawbacks… Server: Accept connection User: Send request Server: Send (possibly long) response User: Receive response Both: Disconnect No control over time

5 5 What’s the Simplest Option? While (1) accept new connection fork new process let process handle connection Drawback: lots of process creation/deletion

6 6 Can We Reduce Forks? At program launch, fork some number While (1) accept wait for hello wait for goodbye close Note: wait = implicit yield

7 7 But What If We Do More While (1) accept wait for hello perform possibly unbounded calculation wait for goodbye close Problem: when do we yield?

8 8 Signals and Interrupts Both are asynchronous Used to notify system of event occurrence Signal – delivered by OS to process Interrupt – delivered by hardware to OS Some overlap/interaction? Definitely Examples? Code tries executing divide-by-zero User disconnects (hangs up)

9 9 I/O and Timer Interrupts Why Timer interrupt to do CPU management Asynchronous I/O to overlap with computation Interrupt Between instructions Within an instruction Enable and disable CPU Memory Interrupt

10 10 Using Interrupts For Scheduling Timer interrupt Generated by hardware Assume changing requires privilege Delivered to the OS Main idea Before moving process to running, set timer If process yields/blocks, clear timer Timer expires? Go to scheduler

11 11 Scheduling Considerations Timer granularity Finer timers = more responsive Coarse timers = more efficient Accounting Cheap Accurate Fair – consider I/O versus CPU applications

12 12 Preemptive Scheduling Running Blocked Ready I/O completion interrupt (move to ready queue) Create Terminate (call scheduler) Yield, Timer Interrupt (call scheduler) Block for resource (call scheduler) Scheduler dispatch

13 13 No Control Over Yielding Reasons for yielding Timer goes off Higher-priority interrupt occurs Higher-priority process becomes ready Some unintentional block (e.g. page fault)

14 14 “Atomic” Pieces of Code Example: bank transaction Read account balance Add/subtract money Write account balance Problem: what happens when two transactions are being posted to the same account?

15 15 Next Time Atomic pieces known as critical sections Very common in concurrent/parallel programming Must share memory Possible via forked processes Default via threads Cover some scheduling policies


Download ppt "Preemptive Scheduling Vivek Pai / Kai Li Princeton University."

Similar presentations


Ads by Google