Chapter Four : Processor Management

Download Report

Transcript Chapter Four : Processor Management

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

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.

Understanding Operating Systems 2

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.

Understanding Operating Systems 3

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. Understanding Operating Systems 4

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.

Understanding Operating Systems 5

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.

Understanding Operating Systems 6

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.

Understanding Operating Systems 7

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. I/O cycle READ A,B C = A+B D = (A*B)–C E = A–B F = D/E WRITE A,B,C,D,E,F STOP END CPU cycle I/O cycle terminate execution 8

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

Understanding Operating Systems 9

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. Understanding Operating Systems 10

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 Understanding Operating Systems 11

Job and Process Status

Hold Admitted Interrupt Exit Ready Running I/O or event completion Scheduler dispatch I/O or event wait Waiting Handled by Process Scheduler Handled by Job Scheduler Finished 12

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.

Understanding Operating Systems 13

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.) Understanding Operating Systems 14

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.

Understanding Operating Systems 15

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

Understanding Operating Systems 16

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.

17

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.

Understanding Operating Systems 18

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

Understanding Operating Systems 19

Process Scheduling Algorithms

• First Come First Served (FCFS) • Shortest Job Next (SJN) • Priority Scheduling • Shortest Remaining Time (SRT) • Round Robin • Multiple Level Queues Understanding Operating Systems 20

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.

Understanding Operating Systems 21

FCFS Example

Process A B C CPU Burst (Turnaround Time) 15 milliseconds 2 milliseconds 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?

Understanding Operating Systems 22

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.

Understanding Operating Systems 23

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.

Understanding Operating Systems 24

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

Understanding Operating Systems 25

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.

Understanding Operating Systems 26

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) Understanding Operating Systems 27

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.

Understanding Operating Systems 28

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.

Understanding Operating Systems 29

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.

Understanding Operating Systems 30

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

).

Understanding Operating Systems 31

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.

CPU Main Memory Cache Controller Hit Cache Memory Miss 32

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

Understanding Operating Systems 33

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.

Understanding Operating Systems 34

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 Understanding Operating Systems 35

Key Terms - 2

• preemptive scheduling policy • priority scheduling • process • Process Control Block • Process Scheduler • process scheduling algorithm • process scheduling policy process status Understanding Operating Systems • processor • queue • response time • round robin • shortest job next (SJN) • shortest remaining time • synchronous interrupts • time quantum • time slice • turnaround time 36