Top Banner
Scheduling: FIFO and SJF CS 571: Operating Systems (Spring 2020) Lecture 4 Yue Cheng Some material taken/derived from: Wisconsin CS-537 materials created by Remzi Arpaci-Dusseau. Licensed for use under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
40

Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

May 22, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Scheduling: FIFO and SJF

CS 571: Operating Systems (Spring 2020)Lecture 4

Yue Cheng

Some material taken/derived from: • Wisconsin CS-537 materials created by Remzi Arpaci-Dusseau.Licensed for use under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Page 2: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Outline

• Basic concept• Scheduling criteria• Scheduling algorithms• First In, First Out (FIFO)• Shortest Job First (SFJ)• Shortest Time-to-Completion First (STCF)• Round Robin (RR)• Priority• Multi-Level Feedback Queue (MLFQ)

2Y. Cheng GMU CS571 Spring 2020

Page 3: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

• During its lifetime, a process goes through a sequence of CPU and I/O bursts

• The CPU scheduler (a.k.a. short-term scheduler) will select one of the processes in the ready queue for execution

• The CPU scheduler algorithm may have tremendous effects on the system performance• Interactive systems: Responsiveness• Real-time systems: Not missing the deadlines

Basic Concepts

3Y. Cheng GMU CS571 Spring 2020

Page 4: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Alternating Sequence of CPU and I/O Bursts

4Y. Cheng GMU CS571 Spring 2020

Page 5: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

When to Schedule? • Under the simple process state transition model,

CPU scheduler can be potentially invoked at five different points: 1. When a process switches from the new state to the

ready state2. When a process switches from the running state to the

waiting (or blocked) state3. When a process switches from the running state to the

ready state4. When a process switches from the waiting state to the

ready state5. When a process terminates

5Y. Cheng GMU CS571 Spring 2020

Page 6: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Process State Transitions

Running

Blocked

Scheduled

Descheduled

Event waitEvent occurs

Ready

6Y. Cheng GMU CS571 Spring 2020

Page 7: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Process State Transitions

Running

Blocked

I/O: initiateI/O: done

ReadyScheduled

Descheduled

7Y. Cheng GMU CS571 Spring 2020

Page 8: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Dispatcher

• Dispatcher module gives control of the CPU to the process selected by the short-term scheduler; this involves:• switching context

• switching to user mode

• jumping to the proper (previously saved) location in the user program to restart that program

• Scheduler à Policy: When and how to schedule

• Dispatcher à Mechanism: Actuator following the commands of the scheduler

8Y. Cheng GMU CS571 Spring 2020

Page 9: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Scheduling Metrics• To compare the performance of scheduling

algorithms• CPU utilization – percentage of time CPU is busy

executing jobs• Throughput – # of processes that complete their

execution per time unit• Turnaround time – amount of time to execute a

particular process• Waiting time – amount of time a process has been

waiting in the ready queue or waiting for some event• Response time – amount of time it takes from when a

request was submitted until the first response is produced, not the complete output

9Y. Cheng GMU CS571 Spring 2020

Page 10: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Optimization Goals

• To maximize:oMaximize the CPU utilization

oMaximize the throughput

• To minimize:oMinimize the (average) turnaround time

oMinimize the (average) waiting time

oMinimize the (average) response time

10Y. Cheng GMU CS571 Spring 2020

Page 11: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Waiting Time

• Waiting time definitionTwaiting = Tstart – Tarrival

• Average waiting time = Sum(Twaiting)/ #processes

• For now, we assume•Average waiting time is the performance measure•Only one CPU burst (e.g., in milliseconds or ms) per process•Only CPU, No I/O•All processes arrive at the same time •Once started, each process runs to completion

11Y. Cheng GMU CS571 Spring 2020

Page 12: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

First In, First Out (FIFO)

12Y. Cheng GMU CS571 Spring 2020

Page 13: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Process Burst TimeP1 24P2 3P3 3

• Suppose that the processes arrive in order: P1 , P2 , P3 The Gantt Chart for the schedule:

• Waiting time for P1 = 0; P2 = 24; P3 = 27• Average waiting time: 17

P1 P2 P3

24 27 300

First-In-First-Out (FIFO)

13Y. Cheng GMU CS571 Spring 2020

Page 14: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Process Burst TimeP1 24P2 3P3 3

• Suppose that the processes arrive in order: P1 , P2 , P3 The Gantt Chart for the schedule:

• Waiting time for P1 = 0; P2 = 24; P3 = 27• Average waiting time: 17

P1 P2 P3

24 27 300

First-In-First-Out (FIFO)

14Y. Cheng GMU CS571 Spring 2020

Page 15: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Process Burst TimeP1 24P2 3P3 3

• Suppose that the processes arrive in order: P1 , P2 , P3 The Gantt Chart for the schedule:

• Waiting time for P1 = 0; P2 = 24; P3 = 27• Average waiting time: 17

P1 P2 P3

24 27 300

First-In-First-Out (FIFO)

15Y. Cheng GMU CS571 Spring 2020

Page 16: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

First-In-First-Out (FIFO)

Process Burst TimeP1 24P2 3P3 3

• Suppose that the processes arrive in order: P1 , P2 , P3 The Gantt Chart for the schedule:

• Waiting time for P1 = 0; P2 = 24; P3 = 27• Average waiting time: 17

P1 P2 P3

24 27 300

16Y. Cheng GMU CS571 Spring 2020

Page 17: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

FIFO (cont.)• Suppose that the processes arrive in order P2 , P3 , P1

• The Gantt chart for the schedule:

• Waiting time for P1 = 6; P2 = 0; P3 = 3• Average waiting time: (6 + 0 + 3)/3 = 3

P1P3P2

63 300

17Y. Cheng GMU CS571 Spring 2020

Page 18: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

FIFO (cont.)• Suppose that the processes arrive in order P2 , P3 , P1

• The Gantt chart for the schedule:

• Waiting time for P1 = 6; P2 = 0; P3 = 3• Average waiting time: (6 + 0 + 3)/3 = 3

P1P3P2

63 300

18Y. Cheng GMU CS571 Spring 2020

Page 19: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

FIFO (cont.)• Suppose that the processes arrive in order P2 , P3 , P1

• The Gantt chart for the schedule:

• Waiting time for P1 = 6; P2 = 0; P3 = 3• Average waiting time: (6 + 0 + 3)/3 = 3

P1P3P2

63 300

19Y. Cheng GMU CS571 Spring 2020

Page 20: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

FIFO (cont.)• Suppose that the processes arrive in order P2 , P3 , P1

• The Gantt chart for the schedule:

• Waiting time for P1 = 6; P2 = 0; P3 = 3• Average waiting time: (6 + 0 + 3)/3 = 3

P1P3P2

63 300

20Y. Cheng GMU CS571 Spring 2020

Page 21: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

FIFO (cont.)• Suppose that the processes arrive in order P2 , P3 , P1

• The Gantt chart for the schedule:

• Waiting time for P1 = 6; P2 = 0; P3 = 3• Average waiting time: (6 + 0 + 3)/3 = 3• Problems:

• Convoy effect (short processes behind long processes)• Non-preemptive: Not suitable for time-sharing systems

P1P3P2

63 300

21Y. Cheng GMU CS571 Spring 2020

Page 22: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Shortest Job First (SJF)

22Y. Cheng GMU CS571 Spring 2020

Page 23: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Shortest Job First (SJF)

• Associate with each process the length of its next CPU burst

• The CPU is assigned to the process with the smallest (next) CPU burst (run_time)

• Two schemes (modes): • Non-preemptive

• Preemptive: Also known as the Shortest Time-to-Completion First (STCF)

23Y. Cheng GMU CS571 Spring 2020

Page 24: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Non-Preemptive SJFProcess Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (non-preemptive)

• Average waiting time = (0 + 6 + 3 + 7)/4 = 4

P1 P3 P2

7 160

P4

8 12

24Y. Cheng GMU CS571 Spring 2020

Page 25: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Non-Preemptive SJFProcess Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (non-preemptive)

• Average waiting time = (0 + 6 + 3 + 7)/4 = 4

P1 P3 P2

7 160

P4

8 12

25Y. Cheng GMU CS571 Spring 2020

Page 26: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Non-Preemptive SJFProcess Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (non-preemptive)

• Average waiting time = (0 + 6 + 3 + 7)/4 = 4

P1 P3 P2

7 160

P4

8 12

26Y. Cheng GMU CS571 Spring 2020

Page 27: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Non-Preemptive SJFProcess Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (non-preemptive)

• Average waiting time = (0 + 6 + 3 + 7)/4 = 4

P1 P3 P2

7 160

P4

8 12

27Y. Cheng GMU CS571 Spring 2020

Page 28: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Non-Preemptive SJFProcess Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (non-preemptive)

• Average waiting time = (0 + 6 + 3 + 7)/4 = 4

P1 P3 P2

7 160

P4

8 12

28Y. Cheng GMU CS571 Spring 2020

Page 29: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time

29Y. Cheng GMU CS571 Spring 2020

Page 30: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time5

30Y. Cheng GMU CS571 Spring 2020

Page 31: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time54

31Y. Cheng GMU CS571 Spring 2020

Page 32: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time541

32Y. Cheng GMU CS571 Spring 2020

Page 33: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time521

33Y. Cheng GMU CS571 Spring 2020

Page 34: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time521

34Y. Cheng GMU CS571 Spring 2020

Page 35: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time5204

35Y. Cheng GMU CS571 Spring 2020

Page 36: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time5204

36Y. Cheng GMU CS571 Spring 2020

Page 37: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time5004

37Y. Cheng GMU CS571 Spring 2020

Page 38: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time5000

38Y. Cheng GMU CS571 Spring 2020

Page 39: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time0000

39Y. Cheng GMU CS571 Spring 2020

Page 40: Scheduling: FIFO and SJF · Shortest Job First (SJF) •Associate with each process the length of its next CPU burst •The CPU is assigned to the process with the smallest (next)

Example for Preemptive SJF (STCF)Process Arrival Time Burst Time

P1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptive)

• Average waiting time = (9 + 1 + 0 + 2)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Left Time0000

40Y. Cheng GMU CS571 Spring 2020