Presentation is loading. Please wait.

Presentation is loading. Please wait.

Tutorial 4 Scheduling. Why do we need scheduling? To manage processes according to requirements of a system, like: –User responsiveness or –Throughput.

Similar presentations


Presentation on theme: "Tutorial 4 Scheduling. Why do we need scheduling? To manage processes according to requirements of a system, like: –User responsiveness or –Throughput."— Presentation transcript:

1 Tutorial 4 Scheduling

2 Why do we need scheduling? To manage processes according to requirements of a system, like: –User responsiveness or –Throughput Performance of a scheduler is determined mainly by: –Context switch time –Scheduling policy

3 1, 2, 3, 4, 5, 6, Context Switch! Switching from one process running on the CPU to another process Saves all the registers of outgoing process (to memory), then loads all the registers of incoming process (from memory) Can be time-costly; mostly hardware- dependent

4 Scheduling The mechanism that determines when the CPU will be allocated to processes, and in what order Two classes of scheduling strategies: –Nonpreemptive (aka Batch) –Preemptive

5 Non-preemptive policies Allow any process to run to completion once it has been allocated to the CPU. Current process does not get interrupted. Some examples: –First Come First Serve (FCFS) –Shortest Job Next (SJN) –Priority scheduling –Deadline scheduling

6 Preemptive policies Allow another process to interrupt current process if: –It has a higher priority –The time quantum has elapsed Some examples: –Round Robin –Multiple-level Queues

7 Scheduling examples Given three threads, their execution times and I/O needs, apply scheduling policies Threads are placed on ready queue in order: T1, T2 then T3 * Specific to Round Robin: –Time Quantum of 3ms –Context switch time considered negligible in this example

8 First Come First Serve ThreadCPU1 st I/O2 nd I/O T110 msn/a T215 msat 2ms for 5msn/a T312 msat 4ms for 2msat 8ms for 2ms 1232 23 CPU: I/O: 3 3 3 0510152025303540

9 Shortest Job First (Nonpreemptive) ThreadCPU1 st I/O2 nd I/O T110 msn/a T215 msat 2ms for 5msn/a T312 msat 4ms for 2msat 8ms for 2ms 132 23 CPU: I/O: 3 3 3 0510152025303540 2

10 Shortest Job First (Preemptive) ThreadCPU1 st I/O2 nd I/O T110 msn/a T215 msat 2ms for 5msn/a T312 msat 4ms for 2msat 8ms for 2ms 132 23 CPU: I/O: 3 3 3 0510152025303540 22

11 Priority (Preemptive) ThreadPrioCPU1 st I/O2 nd I/O T1210 msn/a T2315 msat 2ms for 5msn/a T3112 msat 4ms for 2msat 8ms for 2ms 1 23 CPU: I/O: 3 3 0510152025303540 213123

12 Round Robin ThreadCPU1 st I/O2 nd I/O T110 msn/a T215 msat 2ms for 5msn/a T312 msat 4ms for 2msat 8ms for 2ms 1 23 CPU: I/O: 2 3 0510152025303540 213213232 31323

13 Recapping Scheduling in Java Java 1.2.1 and prior (“green”) threads: Threads are managed by Java VM One thread runs at a time Thread is only taken off the CPU when: –it yields –it blocks (on a resource) –it exits –a higher priority thread becomes runnable (not always)

14 New-Style Scheduling in Java Post-1.2.1 versions of Java: Threads are managed by the host OS Allows multiple threads to run “concurrently” Thread is taken off the CPU as in previous versions, but also –when its time quantum expires (if supported by OS)


Download ppt "Tutorial 4 Scheduling. Why do we need scheduling? To manage processes according to requirements of a system, like: –User responsiveness or –Throughput."

Similar presentations


Ads by Google