47
1 Uniprocessor Scheduling Chapter 9

1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

Embed Size (px)

Citation preview

Page 1: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

1

Uniprocessor Scheduling

Chapter 9

Page 2: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

2

Aim of Scheduling

• Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main memory.

• Decision Methods (Processor)– Response time (Key in GUI systems)– Throughput (Not as important today)– Processor efficiency (Avoiding Thrashing)

Page 3: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

3

Page 4: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

4

Page 5: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

5

Page 6: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

6

Decision Mode

• Nonpreemptive– Once a process is in the running state, it will

continue until it terminates or blocks itself for I/O

– System vs. User process preemptiability

• Preemptive– Currently running process may be interrupted and

moved to the Ready state by the operating system

– Allows for better service since any one process cannot monopolize the processor for very long

Page 7: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

7

Long-Term Scheduling

• Determines which programs are admitted to the system for processing

• Controls the degree of multiprogramming

• More processes, smaller percentage of time each process is executed

Page 8: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

8

Medium-Term Scheduling

• Part of the swapping function.

• Based on the need to manage the degree of multiprogramming.

• Dealing with Load Control.

Page 9: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

9

Short-Term Scheduling

• Known as the dispatcher

• Executes most frequently

• Invoked when an event occurs– Clock interrupts– I/O interrupts– Operating system calls– Signals

Page 10: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

10

Short-Tem Scheduling Criteria

• User-oriented– Turnaround Time – When your program

can finish– Deadlines – When a program has goals.– Response Time

• Elapsed time between the submission of a request until there is output.

– Predictability – consistent response times

Page 11: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

11

User Oriented Scheduling

• Decisecond Response Time – Instant response

• Subsecond Response Time – Near instant response

• Less than 2 seconds – Quick response

Page 12: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

12

User Oriented Scheduling

• 2 to 4 seconds - Slow

• Greater than 4 seconds – Unbearable Slow

• Greater than 15 seconds – Trip to the kitchen slow

Page 13: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

13

Short-Term Scheduling Criteria

• System-oriented– Throughput– Processor Utilization– Balancing Resources– Fairness– Enforcing Priorities

Page 14: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

14

Priority Scheduling

• Scheduler will always choose a process of higher priority over one of lower priority

• Have multiple ready queues to represent each level of priority

• Lower priority processes can starve– Upgrading a processes priority the longer it

doesn’t run.

Page 15: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

15

Page 16: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

16

Different Short-Term Process Schedulers

Page 17: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

17

First-Come-First-Served(FCFS)

• Each process joins the Ready queue• When the current process ceases to execute,

the oldest process in the Ready queue is selected

Page 18: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

18

First-Come-First-Served(FCFS)

• A short process may have to wait a very long time before it can execute.

• Bad for systems that need fast user response times.

• Not as much swapping of processes.

• Favors CPU-bound processes– I/O processes have to wait until CPU-bound

process completes

Page 19: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

19

Round-Robin

• Uses preemption based on a clock• An amount of time is determined that

allows each process to use the processor for that length of time

Page 20: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

20

Round-Robin

• Clock interrupt is generated at periodic intervals

• When an interrupt occurs, the currently running process is placed in the read queue– Next ready job is selected

• Known as time slicing• A lot more swapping than FCFS• Better response times per process, but not

better throughput

Page 21: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

21

Page 22: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

22

Shortest Process Next

• Nonpreemptive policy• Process with shortest expected processing time

is selected next• Short process jumps ahead of longer processes

Page 23: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

23

Shortest Process Next

• Predictability of longer processes is reduced

• If estimated time for process not correct, the operating system may abort it

• Possibility of starvation for longer processes

Page 24: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

24

Shortest Remaining Time

• Preemptive version of shortest process next policy

• Must estimate processing time

Page 25: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

25

Highest Response Ratio Next (HRRN)

• Choose next process with the greatest ratio

time spent waiting + expected service timeexpected service time

Page 26: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

26

Feedback

• Penalize jobs that have been running longer• Don’t know remaining time process needs to

execute

Page 27: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

27

Page 28: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

28

Page 29: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

29

Page 30: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

30

Page 31: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

31

Page 32: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

32

Page 33: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

33

Page 34: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

34

Page 35: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

35

Page 36: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

36

Fair-Share Scheduling

• User’s application runs as a collection of processes (threads)

• User is concerned about the performance of the application

• Need to make scheduling decisions based on process sets

Page 37: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

37

Page 38: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

38

Traditional UNIX Scheduling

• Multilevel feedback using round robin within each of the priority queues

• If a running process does not block or complete within 1 second, it is preempted

• Priorities are recomputed once per second

• Base priority divides all processes into fixed bands of priority levels

Page 39: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

39

Bands

• Decreasing order of priority– Swapper– Block I/O device control– File manipulation– Character I/O device control– User processes

Page 40: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

40

Page 41: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

41

Extra Slides

Page 42: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

42

Page 43: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

43

Page 44: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

44

Page 45: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

45

Page 46: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

46

Page 47: 1 Uniprocessor Scheduling Chapter 9. 2 Aim of Scheduling Main Job: Assign processes to be executed by the processor(s) and processes to be loaded in main

47