Top Banner
Chapter 3 Processor Management Operating Systems
66

Chp3 Slide

Mar 07, 2015

Download

Documents

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: Chp3 Slide

Chapter 3

Processor Management

Operating Systems

Page 2: Chp3 Slide

How Does Processor Manager Allocate CPU(s) to Jobs?

• Process Manager performs job scheduling, process scheduling and interrupt management.

• In single-user systems, processor is busy only when user is executing a job—at all other times it is idle. – Processor management is simple.

• In multiprogramming environment, processor must be allocated to each job in a fair and efficient manner.– Requires scheduling policy and a scheduling algorithm.

Page 3: Chp3 Slide

• Active multiprogramming is a time-sharing system which allows each program to use a preset slice of each CPU time. When the time expires, the job is interrupted and another job is allowed to begin.

• Passive multiprogramming allows each program to be serviced in turn, one after another by an interrupt. It ties up CPU time while all other jobs have to wait.

Page 4: Chp3 Slide

• Job Scheduling vs. Process Scheduling

• Processor Manager has 2 sub-managers:

• Job Scheduler– in charge of job scheduling.

• Process Scheduler– in charge of process scheduling.

Page 5: Chp3 Slide

Job Scheduler

•High-level scheduler.•Selects jobs from a queue of incoming jobs.•Places them in process queue (batch or interactive), based on each job’s characteristics.•Goal is to put jobs in a sequence that uses all system’s resources as fully as possible.•Strives for balanced mix of jobs with large I/O interaction and jobs with lots of computation. •Tries to keep most system components busy most of time.

Page 6: Chp3 Slide

Process Scheduler• Low-level scheduler – assigns the CPU to

execute processes of those jobs placed on ready queue by Job Scheduler.

• After a job has been placed on the READY queue by Job Scheduler, Process Scheduler that takes over.– Determines which jobs will get CPU, when, and

for how long.– Decides when processing should be interrupted.– Determines queues job should be moved to

during execution.– Recognizes when a job has concluded and

should be terminated.

Page 7: Chp3 Slide

Schedulers

Disk Ready Queue CPU

I/OI/O waiting

Queue

End

Swap out

Swap outSw

ap in

Sw

ap in

Swapped out processes

Job Scheduler

Process Scheduler

Page 8: Chp3 Slide

CPU Cycles and I/O Cycles

• To schedule CPU, Process Scheduler uses common trait among most computer programs: they alternate between CPU cycles and I/O cycles.

Page 9: Chp3 Slide

• CPU-bound process – spends more time doing computations; few very long CPU bursts.

• I/O-bound process – spends more time doing I/O than computations, many short CPU bursts.

Page 10: Chp3 Slide

I/O ModuleI/O ModuleI/O ModuleI/O ModuleI/O ModuleI/O Module

Computation

I/O ModuleI/O ModuleI/O ModuleI/O ModuleI/O Module

Computation

ComputationComputation

ComputationComputation

ComputationComputation

I/O Module

ComputationComputation

ComputationComputation

ComputationComputation

I/O Module

I/O-bound process CPU-bound process

Page 11: Chp3 Slide

READ A,B I/O cycle C = A+B D = (A*B)–C CPU cycle E = A–B F = D/E WRITE A,B,C,D,E,F I/O cycle STOP terminate execution END

Page 12: Chp3 Slide

• Middle-Level Scheduler

• In a highly interactive environment there’s a third layer– called middle-level scheduler.

• Removes active jobs from memory to reduce degree of multiprogramming and allows jobs to be completed faster

Page 13: Chp3 Slide

Middle-Level Scheduler

Disk Ready Queue CPU

I/OI/O waiting

Queue

End

Swap out

Swap outSw

ap in

Sw

ap in

Swapped out processes

Job Scheduler

Process Scheduler

Page 14: Chp3 Slide

The Process• A process is basically a program in

execution.

1. the executable program2. current activity which include the value

of the program counter & registers3. such as subroutine parameters, return

address, and temporary variables)4. data section containing global variables.

• Two or more processes may be associated with the same program.

Page 15: Chp3 Slide

Process State

Hold/New

Ready Running

Waiting

Finish

Page 16: Chp3 Slide

Process State

• Hold/New: The process is being created.• Running: Instructions are being executed.• Waiting: The process is waiting for some

event to occur. (wait for I/O)• Ready: The process is waiting to be

assigned to a process. (waiting for CPU)

• Finish : The process has finished execution.

Page 17: Chp3 Slide

Process State

New/Hold

Ready Running

Waiting

Finish

Admitted

Interrupt

Schedulerdispatch

Exit

I/O or event wait

I/O Completion

Page 18: Chp3 Slide

Transition among Process States

•HOLD to READY Job Scheduler using a predefined policy.

•READY to RUNNING Process Scheduler using some predefined algorithm

•RUNNING back to READY Process Scheduler according to some predefined time limit or other criterion.(quantum has expired)

Page 19: Chp3 Slide

•RUNNING to WAITING Process Scheduler and is initiated by an instruction in the job.

•WAITING to READY Process Scheduler and is initiated by signal from I/O device manager that I/O request has been satisfied and job can continue.

•RUNNING to FINISHED Process Scheduler or Job Scheduler.

Page 20: Chp3 Slide

Process Control Block (PCB)

• Each process in the O/S is represented by a PCB repository for information that vary from process to other process

Page 21: Chp3 Slide

Process Control Block (PCB)

Process State

Program Counter

CPU Registers

CPU Scheduling Information

Memory Management Information

Accounting Information

I/O Status Information

New/Hold/Running/Wait/Ready/Finish

Address for next instruction

AC, IR and Stack pointer

Process Priority

Base and Limit Register

CPU Time Used

I/O devices allocated

Page 22: Chp3 Slide

Process Control Block (PCB)Process P0 Process P1

Save State into PCB0

Reload State from PCB1

Save State into PCB1

Reload State from PCB0

Interrupts or I/O executingidle

executingidle

idleexecuting

Page 23: Chp3 Slide

• PCBs and Queuing• PCB of job created when Job Scheduler accepts

it– Updated as job goes from beginning to

termination.•  Queues use PCBs to track jobs.

– PCBs, not jobs, are linked to form queues.– E.g., PCBs for every ready job are linked on

READY queue; all PCBs for jobs just entering system are linked on HOLD queue.

– Queues must be managed by process scheduling policies and algorithms.

Page 24: Chp3 Slide

Ready Queue

PCB1 PCB2 PCBnHeadTail

Queue Header P1 P2 Pn

Page 25: Chp3 Slide

Process Scheduling Policies

• Before operating system can schedule all jobs in a multiprogramming environment, it must resolve three limitations of system: – finite number of resources (such as

disk drives, printers, and tape drives)– some resources can’t be shared once

they’re allocated (such as printers)– some resources require operator

intervention (such as tape drives).

Page 26: Chp3 Slide

A Good Scheduling Policy

• Maximize throughput by running as many jobs as possible in a given amount of time.

• Maximize CPU efficiency by keeping CPU busy 100 % of time.

• Ensure fairness for all jobs by giving everyone an equal amount of CPU and I/O time.

• Minimize response time by quickly turning around interactive requests.

• Minimize turnaround time by moving entire jobs in/out of system quickly.

• Minimize waiting time by moving jobs out of READY queue as quickly as possible

Page 27: Chp3 Slide

Waiting Time (w) = Finish Time – Arrival Time – CPU Cycle

Turnaround Time (t) = Finish Time – Arrival Time

Page 28: Chp3 Slide

• Preemptive scheduling policy interrupts processing of a job and transfers the CPU to another job. (the Arrival process will interrupt the current process)

• Non-preemptive scheduling policy functions without external interrupts.– Once a job captures processor and begins

execution, it remains in RUNNING state uninterrupted until it issues an I/O request (natural wait) or until it is finished (exception for infinite loops).

– (current process cannot be preempted until completes its CPU cycle).

– (current process cannot be preempted until completes its CPU cycle).

Page 29: Chp3 Slide

Process Scheduling Algorithms • First Come First Served (FCFS) –non

preemptive

• Shortest Job Next (SJN)- non preemptive

• Shortest Remaining Time First (SRT) preemptive

• Round Robin- preemptive

• Priority Scheduling- preemptive• Priority Scheduling- non-preemptive

Page 30: Chp3 Slide

• First Come First Served (FCFS)• Non-preemptive.• Handles jobs according to their arrival

time -- the earlier they arrive, the sooner they’re served.

• Simple algorithm to implement -- uses a FIFO queue.

• Good for batch systems; not so good for interactive ones.

• Turnaround time is unpredictable.

Page 31: Chp3 Slide

To draw timeline and to do calculations for process scheduling algorithms

Job Arrival Time CPU Cycle

A 0 8

B 1 5

C 2 3

D 3 1

E 4 7

Page 32: Chp3 Slide

a. First Come First Serve (FCFS) Scheduling

The Timeline / Gantt Chart for the schedule is:

A B0 8 13 16

Job Arrival Time CPU Cycle

A 0 8

B 1 5

C 2 3

D 3 1

E 4 7

C D E17 24

Page 33: Chp3 Slide

a. First Come First Serve (FCFS) Scheduling

The Timeline / Gantt Chart for the schedule is:

A B0 8 13 16

C D E17 24

Waiting Time (w) = Finish Time – Arrival Time – CPU Cyclew(A) = 8 – 0 – 8 = 0

w(B) = 13 – 1 – 5 = 7w(C) = 16 – 2 – 3 = 11

w(D) = 17 – 3 – 1 = 13w(E) = 24 – 4 – 7 = 13

Average Waiting Time = Total Waiting Time / Total number of processes

Average Waiting Time = 44 / 5

Average Waiting Time = 8.8

Page 34: Chp3 Slide

a. First Come First Serve (FCFS) Scheduling

The Timeline / Gantt Chart for the schedule is:

A B0 8 13 16

C D E17 24

Turnaround Time (t) = Finish Time – Arrival Time

w(A) = 8 – 0 = 8

w(B) = 13 – 1 = 12w(C) = 16 – 2 = 14

w(D) = 17 – 3 = 14w(E) = 24 – 4 = 20

Average Turnaround Time = Total Turnaround Time / Total number of processes

Average Turnaround Time = 62 / 5Average Turnaround Time = 13.6

Page 35: Chp3 Slide

Shortest Job Next (SJN)Non-preemptive.Handles jobs based on length of their CPU cycle time. Use lengths to schedule process with shortest time.Optimal – gives minimum average waiting time for a given set of processes. Optimal only when all of jobs are available at same time and the CPU estimates are available and accurate.Doesn’t work in interactive systems because users don’t estimate in advance CPU time required to run their jobs.

Page 36: Chp3 Slide

b. Shortest Job Next (SJN) Scheduling (Non Preemption)

The Timeline / Gantt Chart for the schedule is:

A D0 8 9 12

Job Arrival Time CPU Cycle

A 0 8

B 1 5

C 2 3

D 3 1

E 4 7

C B E17 24

Page 37: Chp3 Slide

Waiting Time (w) = Finish Time – Arrival Time – CPU Cyclew(A) = 8 – 0 – 8 = 0

w(B) = 17 – 1 – 5 = 11w(C) = 12 – 2 – 3 = 7

w(D) = 9 – 3 – 1 = 5 w(E) = 24 – 4 – 7 = 13

Average Waiting Time = Total Waiting Time / Total number of processes

Average Waiting Time = 36 / 5

Average Waiting Time = 7.2

A D0 8 9 12

C B E17 24

Page 38: Chp3 Slide

Turnaround Time (t) = Finish Time – Arrival Time

w(A) = 8 – 0 = 8

w(B) = 17 – 1 = 16w(C) = 12 – 2 = 10

w(D) = 9 – 3 = 6w(E) = 24 – 4 = 20

Average Turnaround Time = Total Turnaround Time / Total number of processes

Average Turnaround Time = 60 / 5Average Turnaround Time = 12

A D0 8 9 12

C B E17 24

Page 39: Chp3 Slide

Shortest Remaining Time (SRT) Preemptive version of the SJN algorithm. Processor allocated to job closest to completion.This job can be preempted if a newer job in READY queue has a “time to completion” that's shorter.Can’t be implemented in interactive system -- requires advance knowledge of CPU time required to finish each job. SRT involves more overhead than SJN. OS monitors CPU time for all jobs in READY queue and performs “context switching”.

Page 40: Chp3 Slide

c. Shortest Remaining Time First (preemptive)

Process Arrival Time CPU Cycle A 0 8 B 1 5 C 2 3 D 3 1 E 4 7

0 1 6 10 17

A B B A2

C3

D4

C E24

7420

000

0

Page 41: Chp3 Slide

Shortest Remaining Time First (preemptive)

0 1 6 10 17

A B B A2

C3

D4

C E24

Waiting Time (w) = Finish Time – Arrival Time – CPU Cyclew(A) = 17 – 0 – 8 = 9

w(B) = 10 – 1 – 5 = 4w(C) = 6 – 2 – 3 = 1

w(D) = 4 – 3 – 1 = 0w(E) = 24 – 4 – 7 = 13

Average Waiting Time = Total Waiting Time / Total number of processes

Average Waiting Time = 27 / 5

Average Waiting Time = 5.4

Page 42: Chp3 Slide

Shortest Remaining Time First (preemptive)

0 1 6 10 17

A B B A2

C3

D4

C E24

Turnaround Time (t) = Finish Time – Arrival Time

w(A) = 17 – 0 = 17

w(B) = 10 – 1 = 9w(C) = 6 – 2 = 4

w(D) = 4 – 3 = 1w(E) = 24 – 4 = 20

Average Turnaround Time = 51 / 5

Average Turnaround Time = 10.2

Page 43: Chp3 Slide

Shortest Remaining Time (preemptive)

Process Arrival Time CPU Cycle A 0 3 B 1 5 C 2 3 D 3 1 E 5 1

0 1 5 6 8

A E C2

A3

D4

C

2

020

1

0

A

0

0

B13

Page 44: Chp3 Slide

Shortest Remaining Time (preemptive)

Process Arrival Time CPU Cycle A 0 3 B 1 5 C 2 3 D 3 1 E 5 1

0 1 5 6 8

A E C2 3

D4

C B13

Page 45: Chp3 Slide

•Round Robin

•Preemptive.•Used extensively in interactive systems because it’s easy to implement. •Isn’t based on job characteristics but on a predetermined slice of time that’s given to each job.

Ensures CPU is equally shared among all active processes and isn’t monopolized by any one job.

•Time slice is called a time quantum size crucial to system performance (100 ms to 1-2 secs)

Page 46: Chp3 Slide

d. Round Robin (Preemption)

The Timeline / Gantt Chart for the schedule is:Job Arrival Time CPU Cycle

A 0 8

B 1 5

C 2 3

D 3 1

E 4 7

(Time Quantum = 3)

Page 47: Chp3 Slide

A0 3 6 9

B C D10 13

A E16

B18

A E20 23

Process Arrival Time CPU Cycle A 0 8 B 1 5 C 2 3 D 3 1 E 4 7

Ready Queue

5

B C21

D3

A

2

E4

B6

00

2

A13

4

00

E16

E23

1

E24

0

Page 48: Chp3 Slide

Waiting Time (w) = Finish Time – Arrival Time – CPU Cyclew(A) = 20 – 0 – 8 = 12

w(B) = 18 – 1 – 5 = 12w(C) = 9 – 2 – 3 = 4

w(D) = 10 – 3 – 1 = 6w(E) = 24 – 4 – 7 = 13

Average Waiting Time = Total Waiting Time / Total number of processes

Average Waiting Time = 47/ 5

Average Waiting Time = 9.4

A0 3 6 9

B C D10 13

A E16

B18

A E20 23

E24

Page 49: Chp3 Slide

A0 3 6 9

B C D10 13

A E16

B18

A E20 23

E24

Turnaround Time (t) = Finish Time – Arrival Time

w(A) = 20 – 0 = 20

w(B) = 18 – 1 = 17w(C) = 9 – 2 = 7

w(D) = 10 – 3 = 7w(E) = 24 – 4 = 20

Average Turnaround Time = 71 / 5

Average Turnaround Time = 14.2

Page 50: Chp3 Slide

Round Robin (Preemption)

The Timeline / Gantt Chart for the schedule is:Job Arrival Time CPU Cycle

A 0 8

B 0 5

C 2 3

D 3 1

E 4 7

(Time Quantum = 3)

Page 51: Chp3 Slide

A0 3 6 9

B C D10 13

A E16

B18

A E20 23

Process Arrival Time CPU Cycle A 0 8 B 0 5 C 2 3 D 3 1 E 4 7

Ready Queue

5

B C20

D3

A

2

E4

B6

00

2

A13

4

00

E16

E23

1

E24

0

Page 52: Chp3 Slide

•If Job’s CPU Cycle < Time Quantum•If job’s last CPU cycle & job is finished, then all resources allocated to it are released & completed job is returned to user.•If CPU cycle was interrupted by I/O request, then info about the job is saved in its PCB & it is linked at end of the appropriate I/O queue. Later, when I/O request has been satisfied, it is returned to end of READY queue to await allocation of CPU

Page 53: Chp3 Slide

Round Robin (Preemption)

The Timeline / Gantt Chart for the schedule is:Job Arrival Time CPU Cycle

A 0 8

B 0 5

C 0 3

D 0 1

E 0 7

(Time Quantum = 3)

Page 54: Chp3 Slide

A0 3 6 9

B C D10 13

E16

A18

B21 23

Process Arrival Time CPU Cycle A 0 8 B 0 5 C 0 3 D 0 1 E 0 7

Ready QueueB C

0

D E3

B6

A13

E16

E24

A

A E

E21

Page 55: Chp3 Slide

•Time Slices Should Be ...•Long enough to allow 80 % of CPU cycles to run to completion.

•At least 100 times longer than time required to perform one context switch. •Flexible - depends on the system.

Page 56: Chp3 Slide

Process Arrival Time Burst Time P1 0 10P2 0 4

Quantum = 6

P1

0 6

P2

10

P1

14

Quantum = 2

P1 P2 P2P1 P1 P1

0 2 4 6 8 10 12 14

P1

100

P1

Quantum = 12

P2

14

Page 57: Chp3 Slide

e. Non-Preemptive Priority Process Arrival Time Burst Time Priority P1 0.0 7 9 P2 2.0 4 10 P3 2.0 1 9 P4 5.0 4 11

Assume a larger no implies a higher priority

0 7 11

P1 P4 P2 P315 16

Page 58: Chp3 Slide

Priority Scheduling Non-preemptive algorithm which is commonly used in batch systems.Gives preferential treatment to important jobs.Allows the program with the highest priority to be processed first and these high priority jobs are not interrupted until their CPU cycles (run times) are completed or a natural wait occurs.If two or more jobs with equal priority, then uses FCFS policy within the same priority group

Page 59: Chp3 Slide

f. Preemptive Priority Process Arrival Time Burst Time Priority P1 0.0 7 9 P2 2.0 4 10 P3 2.0 1 9 P4 5.0 4 11

Assume a larger no implies a higher priority

0 2 5 9 10 15 16

P1 P4P2 P2 P1 P3

5

1

0

0

0

0

Page 60: Chp3 Slide

Context Switching Is Required by All Preemptive Algorithms When Job A is preemptedAll of its processing information must be saved in its PCB for later (when Job A’s execution is continued).Contents of Job B’s PCB are loaded into appropriate registers so it can start running again (context switch). 

Page 61: Chp3 Slide

Later when Job A is once again assigned to processor, another context switch is performed.Info from preempted job is stored in its PCB.Contents of Job A’s PCB are loaded into appropriate registers.  Note:Natural wait is a common term used to identify an I/O request from a program in a multiprogramming environment that would cause a process to wait “naturally” before resuming execution.

Page 62: Chp3 Slide

Round RobinProcess Burst Time

P1 53P2 20P3 68P4 24

Eg. Time Quantum = 20ms and Context Switch =2ms

0 20 64 66 86

P4P3P122

P242 44

Page 63: Chp3 Slide

d. Shortest Remaining Time First (Preemption)

The Timeline / Gantt Chart for the schedule is:Job Arrival Time CPU Cycle

A 0 8

B 1 5

C 2 3

D 3 1

E 4 7

•Draw a timeline for each of the following algorithms. Also calculate the average waiting time and average turnaround time for each of them using the table format below, if the context switching time takes 1 ms.

Page 64: Chp3 Slide

d. Round Robin (Preemption)

The Timeline / Gantt Chart for the schedule is:Job Arrival Time CPU Cycle

A 0 8

B 1 5

C 2 3

D 3 1

E 4 7

(Time Quantum = 3)

Page 65: Chp3 Slide

Progression ExercisesProcess Arrival Time CPU Cycle A 0 75 B 10 40 C 10 25 D 80 20 E 85 45

0 100 120 160

A D B75

C E205

Shortest Job Next (SJN)

Page 66: Chp3 Slide

Shortest Remaining Time First (preemptive)

Process Arrival Time CPU Cycle A 0 75 B 10 40 C 10 25 D 80 20 E 85 45

0 10 75 80 85

A B AC205

D35

E100

65

00

60

15

D

0

145

0

A

0