Processor Management in Operating Systems

					           Chapter Four : Processor
• Introduction
• Job Scheduling Versus Process
  Scheduling                         Job Scheduling
• Process Scheduler
• Process Identification
• Process Status
• Process State                    Process Scheduling
• Accounting
• Process Scheduling Policies
• Process Scheduling Algorithms
• Cache Memory                    Interrupt Management
• Interrupts
          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                                                2
Operating Systems
                    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                                                   3
Operating Systems
                    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                                                  4
Operating Systems
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                                5
Operating Systems
                    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

Understanding                                                   6
Operating Systems
                    Process Scheduler
• 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.

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

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

Understanding                                                 10
Operating Systems
                    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                                                 11
Operating Systems
                  Job and Process Status

       Hold                Admitted                                Finished

                                       Interrupt         Exit

                           Ready                   Running

                                   Scheduler dispatch
                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
  can continue.
 RUNNING to FINISHED : Process Scheduler or Job Scheduler.

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

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

Understanding                                             18
Operating Systems
         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                                                   19
Operating Systems
         Process Scheduling Algorithms

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

Understanding                            20
Operating Systems
        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                                                   21
Operating Systems
                       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?

Understanding                                     22
Operating Systems
                    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                                              23
Operating Systems
                    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                                                24
Operating Systems
        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‖.

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

Understanding                                                26
Operating Systems
                    Round Robin

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

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

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

Understanding                                               29
Operating Systems
                    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
     – Put batch jobs ―background queue‖ & interactive jobs in a
       ―foreground queue‖; treat foreground queue more favorably than
       background queue.

Understanding                                                             30
Operating Systems
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                                               31
Operating Systems
                   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

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

Understanding                                                    33
Operating Systems
                    Interrupt Handler

• 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.
Understanding                                               34
Operating Systems
                      Key Terms

•   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
                                  scheduling policy
Understanding                                              35
Operating Systems
                    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
  process status
                              •   turnaround time
Understanding                                               36
Operating Systems

Description: Processor Management in Operating Systems document sample