Chapter Four : Processor
• Job Scheduling Versus Process
Scheduling Job Scheduling
• Process Scheduler
• Process Identification
• Process Status
• Process State Process Scheduling
• Process Scheduling Policies
• Process Scheduling Algorithms
• Cache Memory 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.
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.
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.
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.
• 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
• Low-level scheduler – assigns the CPU to execute
processes of those jobs placed on ready queue by Job
• 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.
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
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
– Figure 4.1
Processor Manager : Middle-Level
• 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.
Job and Process Status
• Job status -- one of the 5 states that a job takes as it moves
through the system.
Job and Process Status
Hold Admitted Finished
I/O or event
completion I/O or event
Handled by Process Scheduler
Handled by Job Scheduler 12
Transition Among Process States
HOLD to READY : Job Scheduler using a predefined policy.
READY to RUNNING : Process Scheduler using some predefined
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
RUNNING to FINISHED : Process Scheduler or Job Scheduler.
Process Control Block (PCB)
• Process Control Block (PCB) -- data structure that
contains basic info about the job
– Process identification
– Process status (HOLD, READY, RUNNING,
– 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.)
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.
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
A Good Scheduling Policy
Maximize throughput by Minimize response time by
running as many jobs as quickly turning around
possible in a given amount interactive requests.
of time. Minimize turnaround time
Maximize CPU efficiency by moving entire jobs
by keeping CPU busy 100 in/out of system quickly.
% of time. Minimize waiting time by
Ensure fairness for all moving jobs out of
jobs by giving everyone READY queue as quickly
an equal amount of CPU as possible.
and I/O time.
• 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.
Preemptive & Non-preemptive
• Preemptive scheduling policy interrupts processing of a
job and transfers the CPU to another job.
• Non-preemptive scheduling policy functions without
– 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).
Process Scheduling Algorithms
• First Come First Served (FCFS)
• Shortest Job Next (SJN)
• Priority Scheduling
• Shortest Remaining Time (SRT)
• Round Robin
• Multiple Level Queues
First Come First Served (FCFS)
• 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.
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?
Shortest Job Next (SJN)
• 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.
• 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.
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
• SRT involves more overhead than SJN.
– OS monitors CPU time for all jobs in READY queue
and performs ―context switching‖.
Context Switching Is Required by All
• 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
• Used extensively in interactive systems because it’s easy to
• 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)
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
• 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.
Time Slices Should Be ...
• Long enough to allow 80 % of CPU cycles to run to
• At least 100 times longer than time required to perform
one context switch.
• Flexible -- depends on the system.
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.
– 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
– Put batch jobs ―background queue‖ & interactive jobs in a
―foreground queue‖; treat foreground queue more favorably than
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).
• 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
Hit Cache Memory
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
• Illegal arithmetic operations (e.g., divide by 0).
• Illegal job instructions (e.g., attempts to access protected
• Describe & store type of interrupt (passed to user as error
• 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.
• aging • interrupt
• cache memory • interrupt handler
• context switching • Job Scheduler
• CPU-bound • job status
• first come first served • low-level scheduler
• high-level scheduler • middle-level scheduler
• I/O-bound • multiple level queues
• indefinite postponement • multiprogramming
• internal interrupts • non-preemptive
Key Terms - 2
• preemptive scheduling • processor
policy • queue
• priority scheduling • response time
• process • round robin
• Process Control Block • shortest job next (SJN)
• Process Scheduler • shortest remaining time
• process scheduling • synchronous interrupts
algorithm • time quantum
• process scheduling policy • time slice
• turnaround time