Transcript
Page 1: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

Chapter Four : Processor Management

• Introduction• Job Scheduling Versus Process

Scheduling • Process Scheduler• Process Identification • Process Status• Process State • Accounting • Process Scheduling Policies • Process Scheduling Algorithms • Cache Memory• Interrupts

Job Scheduling

Process Scheduling

Interrupt Management

Page 2: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

2

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: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

3

Some Important Terms

• Program – inactive unit, such as a file stored on a disk.

– To an operating system, a program or job is a unit of work that has been submitted by user.

– “Job” is usually associated with batch systems.

• Process (task) – active entity, which requires a set of resources, including a processor and special registers to perform its function.

– A single instance of an executable program.

Page 4: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

4

Important Terms - 2

• Thread of control (thread) – a portion of a process that can run independently.

• Processor ( CPU, central processing unit) –part of machine that performs calculations and executes programs.

• Multiprogramming requires that the processor be “allocated” to each job or to each process for a period of time and “deallocated” at an appropriate moment.

Page 5: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

5

Job Scheduling vs. Process Scheduling

• Processor Manager has 2 sub-managers:

1. Job Scheduler

• in charge of job scheduling.

2. Process Scheduler

• in charge of process scheduling.

Page 6: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

6

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 7: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

7

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 8: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

8

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.

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 9: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

9

Poisson Distribution Curve

• I/O-bound jobs (such as printing a series of documents) have many brief CPU cycles and long I/O cycles.

• CPU-bound jobs (such as finding the first 300 prime numbers) have long CPU cycles and shorter I/O cycles.

• Total effect of all CPU cycles, from both I/O-bound and CPU-bound jobs, approximates a Poisson distribution curve.

– Figure 4.1

Page 10: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

10

Processor Manager : 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 11: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

11

Job and Process Status

• Job status -- one of the 5 states that a job takes as it moves through the system.

– HOLD

– READY

– WAITING

– RUNNING

– FINISHED

Page 12: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

12

Job and Process Status

Hold

Ready Running

Waiting

I/O or event completion

Scheduler dispatch

I/O or event wait

Admitted

Interrupt Exit

Finished

Handled by Process Scheduler

Handled by Job Scheduler

Page 13: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

13

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. 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 14: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

14

Process Control Block (PCB)

• Process Control Block (PCB) -- data structure that contains basic info about the job

– Process identification

– Process status (HOLD, READY, RUNNING, WAITING)

– Process state (process status word, register contents, main memory info, resources, process priority)

– Accounting (CPU time, total amount of time, I/O operations, number input records read, etc.)

Page 15: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

15

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 16: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

16

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 17: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

17

Scheduling Criteria

• CPU utilization – keep the CPU as busy as possible

• 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

• Response time – amount of time it takes from when a request was submitted until the first response is produced, not output (for time-sharing environment)

Page 18: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

18

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 19: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

19

Interrupts

• There are instances when a job claims CPU for a very long time before issuing an I/O request.

– builds up READY queue & empties I/O queues.

– Creates an unacceptable imbalance in the system.

• Process Scheduler uses a timing mechanism to periodically interrupts running processes when a predetermined slice of time has expired.

– suspends all activity on the currently running job and reschedules it into the READY queue.

Page 20: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

20

Preemptive & Non-preemptive Scheduling Policies

• Preemptive scheduling policy interrupts processing of a job and transfers the CPU to another job.

• 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).

Page 21: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

21

Process Scheduling Algorithms

• First Come First Served (FCFS)

• Shortest Job Next (SJN)

• Priority Scheduling

• Shortest Remaining Time (SRT)

• Round Robin

• Multiple Level Queues

Page 22: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

22

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 23: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

23

FCFS Example

Process CPU Burst (Turnaround Time)

A 15 milliseconds

B 2 milliseconds

C 1 millisecond

• If they arrive in order of A, B, and C.

What does the time line look like?

What’s the average turnaround time?

Page 24: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

24

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 25: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

25

Priority Scheduling

• Non-preemptive.

• Gives preferential treatment to important jobs.

– Programs with highest priority are processed first.

– Aren’t interrupted until CPU cycles are completed or a natural wait occurs.

• If 2+ jobs with equal priority are in READY queue, processor is allocated to one that arrived first (first come first served within priority).

• Many different methods of assigning priorities by system administrator or by Processor Manager.

Page 26: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

26

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 27: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

27

Context Switching Is Required by All Preemptive Algorithms

• When Job A is preempted

– All 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).

• 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.

Page 28: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

28

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 29: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

29

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 30: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

30

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 31: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

31

Multiple Level Queues

• Not a separate scheduling algorithm.

• Works in conjunction with several other schemes where jobs can be grouped according to a common characteristic.

• Examples:– Priority-based system with different queues for each priority level.

– Put all CPU-bound jobs in 1 queue and all I/O-bound jobs in another. Alternately select jobs from each queue to keep system balanced.

– Put batch jobs “background queue” & interactive jobs in a “foreground queue”; treat foreground queue more favorably than background queue.

Page 32: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

32

Policies To Service Multi-level Queues

• No movement between queues.

• Move jobs from queue to queue.

• Move jobs from queue to queue and increasing time quantums for “lower” queues.

• Give special treatment to jobs that have been in system for a long time (aging).

Page 33: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

33

Cache Memory

• Cache memory -- quickly accessible memory that’s designed to alleviate speed differences between a very fast CPU and slower main memory.

• Stores copy of frequently used data in an easily accessible memory area instead of main memory.

Cache Memory

Main Memory

HitCache

Controller

Miss

CPU

Page 34: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

34

Types of Interrupts

• Page interrupts to accommodate job requests.

• Time quantum expiration.

• I/O interrupts when issue READ or WRITE command.

• Internal interrupts (synchronous interrupts) result from arithmetic operation or job instruction currently being processed.

• Illegal arithmetic operations (e.g., divide by 0).

• Illegal job instructions (e.g., attempts to access protected storage locations).

Page 35: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

35

Interrupt Handler

• Describe & store type of interrupt (passed to user as error message).

• Save state of interrupted process (value of program counter, mode specification, and contents of all registers).

• Process the interrupt

– Send error message & state of interrupted process to user.

– Halt program execution

– Release any resources allocated to job are released

– Job exits the system.

• Processor resumes normal operation.

Page 36: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

36

Key Terms

• aging

• cache memory

• context switching

• CPU-bound

• first come first served

• high-level scheduler

• I/O-bound

• indefinite postponement

• internal interrupts

• interrupt

• interrupt handler

• Job Scheduler

• job status

• low-level scheduler

• middle-level scheduler

• multiple level queues

• multiprogramming

• non-preemptive scheduling policy

Page 37: Chapter Four : Processor Management Introduction Job Scheduling Versus Process Scheduling Process Scheduler Process Identification Process Status Process

Understanding Operating Systems

37

Key Terms - 2

• preemptive scheduling policy

• priority scheduling

• process

• Process Control Block

• Process Scheduler

• process scheduling algorithm

• process scheduling policy process status

• processor

• queue

• response time

• round robin

• shortest job next (SJN)

• shortest remaining time

• synchronous interrupts

• time quantum

• time slice

• turnaround time


Recommended