Chapter 3: Processes
3.2 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Process Concept
 An operating system executes a variety of programs:
 Batch system – jobs
 Time-shared systems – user programs or tasks
 Textbook uses the terms job and process almost
interchangeably
 Process – a program in execution; process execution must
progress in sequential fashion
 A process includes:
 program counter
 stack
 data section
3.3 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Process in Memory
 The program code is known text section.
 Program counter represent the current activity.
 Process stack contains temporary data such as
 Function parameters
 Return addresses
 Local variables
 Data section contain global variables.
 Heap which is a memory dynamically allocated
during the process run time
3.4 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Process State
 As a process executes, it changes state
 new: The process is being created
 running: Instructions are being executed
 waiting: The process is waiting for some event to occur
 ready: The process is waiting to be assigned to a processor
 terminated: The process has finished execution
3.5 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Diagram of Process State
3.6 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Process Control Block (PCB)
Information associated with each process
 Process state
 Program counter
 CPU registers
 CPU scheduling information
 Memory-management information
 Accounting information
 I/O status information
3.7 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Process Control Block (PCB)
3.8 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Process Control Block (PCB)
• Process identification information
• Process identifier: numeric identifiers represent
the
unique process identifier
• User identifier: the user who is responsible for
the job).
• Identifier of the parent process that created this
process.
3.9 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Process Control Block (PCB)
• Processor state Information
• Process state – running, waiting, etc
• Program counter
• location of instruction to next execute
• CPU registers
• contents of all process-centric registers
3.10 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Process Control Block (PCB)
• CPU scheduling information
• priorities, scheduling queue pointers
• Memory-management information
• memory allocated to the process
• Accounting information
• CPU used, clock time elapsed since start, time limits
• I/O status information
• I/O devices allocated to process, list of open files
3.11 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Context Switch
 When CPU switches to another process, the system must save the
state of the old process and load the saved state for the new
process
 Context-switch time is overhead; the system does no useful work
while switching
 Time dependent on hardware support
3.12 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
CPU Switch From Process to Process
3.13 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Process Scheduling Queues
 Job queue – set of all processes in the system
 Ready queue – set of all processes residing in main memory,
ready and waiting to execute
 Device queues – set of processes waiting for an I/O device
 Processes migrate among the various queues
3.14 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Representation of Process Scheduling
3.15 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Schedulers
 Long-term scheduler (or job scheduler) – selects which processes
should be brought into the ready queue
 is invoked very infrequently (seconds, minutes)  (may be slow)
 Short-term scheduler (or CPU scheduler) – selects which process
should be executed next and allocates CPU
 Short-term scheduler is invoked very frequently (milliseconds) 
(must be fast)
 Processes can be described as either:
 I/O-bound process – spends more time doing I/O than computations,
many short CPU bursts
 CPU-bound process – spends more time doing computations; few
very long CPU bursts
3.16 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts
Addition of Medium Term Scheduling
• Can be added if degree of multiple programming
needs to decrease
• Remove process from memory, store on disk,
bring back in from disk to continue execution:
swapping

OS-operating systems- ch03

  • 1.
  • 2.
    3.2 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Process Concept  An operating system executes a variety of programs:  Batch system – jobs  Time-shared systems – user programs or tasks  Textbook uses the terms job and process almost interchangeably  Process – a program in execution; process execution must progress in sequential fashion  A process includes:  program counter  stack  data section
  • 3.
    3.3 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Process in Memory  The program code is known text section.  Program counter represent the current activity.  Process stack contains temporary data such as  Function parameters  Return addresses  Local variables  Data section contain global variables.  Heap which is a memory dynamically allocated during the process run time
  • 4.
    3.4 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Process State  As a process executes, it changes state  new: The process is being created  running: Instructions are being executed  waiting: The process is waiting for some event to occur  ready: The process is waiting to be assigned to a processor  terminated: The process has finished execution
  • 5.
    3.5 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Diagram of Process State
  • 6.
    3.6 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Process Control Block (PCB) Information associated with each process  Process state  Program counter  CPU registers  CPU scheduling information  Memory-management information  Accounting information  I/O status information
  • 7.
    3.7 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Process Control Block (PCB)
  • 8.
    3.8 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Process Control Block (PCB) • Process identification information • Process identifier: numeric identifiers represent the unique process identifier • User identifier: the user who is responsible for the job). • Identifier of the parent process that created this process.
  • 9.
    3.9 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Process Control Block (PCB) • Processor state Information • Process state – running, waiting, etc • Program counter • location of instruction to next execute • CPU registers • contents of all process-centric registers
  • 10.
    3.10 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Process Control Block (PCB) • CPU scheduling information • priorities, scheduling queue pointers • Memory-management information • memory allocated to the process • Accounting information • CPU used, clock time elapsed since start, time limits • I/O status information • I/O devices allocated to process, list of open files
  • 11.
    3.11 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Context Switch  When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process  Context-switch time is overhead; the system does no useful work while switching  Time dependent on hardware support
  • 12.
    3.12 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts CPU Switch From Process to Process
  • 13.
    3.13 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Process Scheduling Queues  Job queue – set of all processes in the system  Ready queue – set of all processes residing in main memory, ready and waiting to execute  Device queues – set of processes waiting for an I/O device  Processes migrate among the various queues
  • 14.
    3.14 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Representation of Process Scheduling
  • 15.
    3.15 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Schedulers  Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue  is invoked very infrequently (seconds, minutes)  (may be slow)  Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU  Short-term scheduler is invoked very frequently (milliseconds)  (must be fast)  Processes can be described as either:  I/O-bound process – spends more time doing I/O than computations, many short CPU bursts  CPU-bound process – spends more time doing computations; few very long CPU bursts
  • 16.
    3.16 Silberschatz, Galvinand Gagne ©2005 Operating System Concepts Addition of Medium Term Scheduling • Can be added if degree of multiple programming needs to decrease • Remove process from memory, store on disk, bring back in from disk to continue execution: swapping