Title: Chapter Four : Processor Management
1Chapter 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
2How 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 jobat 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.
3Some 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.
4Important 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.
5Job Scheduling vs. Process Scheduling
- Processor Manager has 2 sub-managers
- Job Scheduler
- in charge of job scheduling.
- Process Scheduler
- in charge of process scheduling.
6Job Scheduler
- High-level scheduler.
- Selects jobs from a queue of incoming jobs.
- Places them in process queue (batch or
interactive), based on each jobs
characteristics. - Goal is to put jobs in a sequence that uses all
systems 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.
7Process 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.
8CPU 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.
9Poisson 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
10Processor Manager Middle-Level Scheduler
- In a highly interactive environment theres a
third layer - called middle-level scheduler.
- Removes active jobs from memory to reduce degree
of multiprogramming and allows jobs to be
completed faster.
11Job 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
12Job and Process Status
Admitted
Finished
Interrupt
Exit
Scheduler dispatch
I/O or event completion
I/O or event wait
Handled by Process Scheduler Handled by Job
Scheduler
13Transition 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.
14Process 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.)
15PCBs 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.
16Process 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 cant be shared once theyre
allocated (such as printers) - some resources require operator intervention
(such as tape drives).
17A 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.
18Interrupts
- 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.
19Preemptive 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).
20Process Scheduling Algorithms
- First Come First Served (FCFS)
- Shortest Job Next (SJN)
- Priority Scheduling
- Shortest Remaining Time (SRT)
- Round Robin
- Multiple Level Queues
21First Come First Served (FCFS)
- Non-preemptive.
- Handles jobs according to their arrival time --
the earlier they arrive, the sooner theyre
served. - Simple algorithm to implement -- uses a FIFO
queue. - Good for batch systems not so good for
interactive ones. - Turnaround time is unpredictable.
22FCFS 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?
- Whats the average turnaround time?
23Shortest 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. - Doesnt work in interactive systems because users
dont estimate in advance CPU time required to
run their jobs.
24Priority Scheduling
- Non-preemptive.
- Gives preferential treatment to important jobs.
- Programs with highest priority are processed
first. - Arent 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.
25Shortest 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. - Cant 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.
26Context 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 As execution is
continued). - Contents of Job Bs 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 As PCB are loaded into
appropriate registers.
27Round Robin
- Preemptive.
- Used extensively in interactive systems because
its easy to implement. - Isnt based on job characteristics but on a
predetermined slice of time thats given to each
job. - Ensures CPU is equally shared among all active
processes and isnt monopolized by any one job. - Time slice is called a time quantum
- size crucial to system performance (100 ms to 1-2
secs)
28If Jobs CPU Cycle lt Time Quantum
- If jobs 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.
29Time 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.
30Multiple 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.
31Policies 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).
32Cache Memory
- Cache memory -- quickly accessible memory thats
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.
33Types 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).
34Interrupt 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.
35Key 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
36Key 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