Chapter 3: Processes: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition
Chapter 3: Processes: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
3.1 Process Concept
An operating system executes a variety of programs:
Batch file (.bat, .cmd, .btm ) system – jobs
Time-shared systems – user programs or tasks
Textbook uses the terms job and process almost interchangeably
Operating System Concepts – 9th Edition 3.2 Silberschatz, Galvin and Gagne ©2013
Process Concept (Cont.)
Program is passive entity stored on disk (executable file),
process is active
Program becomes process when executable file loaded into
memory
Execution of program started via GUI mouse clicks, command
line entry of its name, etc
One program can be several processes
Consider multiple users executing the same program
Operating System Concepts – 9th Edition 3.3 Silberschatz, Galvin and Gagne ©2013
Process in Memory
Operating System Concepts – 9th Edition 3.4 Silberschatz, Galvin and Gagne ©2013
3.1.2 Process State
Operating System Concepts – 9th Edition 3.5 Silberschatz, Galvin and Gagne ©2013
Diagram of Process State
Operating System Concepts – 9th Edition 3.6 Silberschatz, Galvin and Gagne ©2013
3.1.3 Process Control Block (PCB)
Each process is represented in the OS by a process control block (PCB)
Information associated with each process(also called task control block)
PCB contains many pieces of information associated with a specific
process, including these:
1. Process state – running, waiting, etc.
2. Program counter – location of instruction to next execute
3. CPU registers – contents of all process-centric registers
4. CPU scheduling information- priorities, scheduling queue pointers
5. Memory-management information – memory allocated to the process
6. Accounting information – CPU used, clock time elapsed since start, time
limits
7. I/O status information – I/O devices allocated to process, list of open files
Operating System Concepts – 9th Edition 3.7 Silberschatz, Galvin and Gagne ©2013
3.1.3 Process Control Block (PCB)
Operating System Concepts – 9th Edition 3.8 Silberschatz, Galvin and Gagne ©2013
CPU Switch From Process to Process
Operating System Concepts – 9th Edition 3.9 Silberschatz, Galvin and Gagne ©2013
3.2 Process Scheduling
Operating System Concepts – 9th Edition 3.10 Silberschatz, Galvin and Gagne ©2013
Representation of Process Scheduling
System
call fork() is
used to create
processes.
Operating System Concepts – 9th Edition 3.11 Silberschatz, Galvin and Gagne ©2013
Representation of Process Scheduling
In Figure 3.6. Each rectangular box represents a queue.
Two types of queues are present: the ready queue and a set of device queues.
The circles represent the resources that serve the queues, and the arrows
indicate the flow of processes in the system.
A new process is initially put in the ready queue. It waits there until it is
selected for execution, or dispatched. Once the process is allocated the CPU
and is executing, one of several events could occur:
• The process could issue an I/O request and then be placed in an I/O queue.
• The process could create a new child process and wait for the child’s
termination.
• The process could be removed forcibly from the CPU, as a result of an
interrupt, and be put back in the ready queue.
In the first two cases, the process eventually switches from the waiting state to
the ready state and is then put back in the ready queue.
Operating System Concepts – 9th Edition 3.12 Silberschatz, Galvin and Gagne ©2013
3.2.2 Schedulers
I. Short-term scheduler (or CPU scheduler) – selects which process should be
executed next and allocates CPU
Sometimes the only scheduler in a system
Short-term scheduler is invoked frequently (milliseconds) (must be fast)
II. Long-term scheduler (or job scheduler) – selects which processes should be
brought into the ready queue
Long-term scheduler is invoked infrequently (seconds, minutes) (may be slow)
The long-term scheduler controls the degree of multiprogramming
Operating System Concepts – 9th Edition 3.13 Silberschatz, Galvin and Gagne ©2013
Addition of Medium Term Scheduling
Medium-term scheduler 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
Operating System Concepts – 9th Edition 3.14 Silberschatz, Galvin and Gagne ©2013
3.2.3 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 via a context switch
Context of a process represented in the PCB
Context-switch time is overhead; the system does no useful
work while switching
The more complex the OS and the PCB the longer the
context switch
Context Switch Time dependent on hardware support
Some hardware provides multiple sets of registers per
CPU multiple contexts loaded at once
Operating System Concepts – 9th Edition 3.15 Silberschatz, Galvin and Gagne ©2013
Operations on Processes
Operating System Concepts – 9th Edition 3.16 Silberschatz, Galvin and Gagne ©2013
3.3.1 Process Creation
Operating System Concepts – 9th Edition 3.17 Silberschatz, Galvin and Gagne ©2013
A Tree of Processes in Linux
i ni t
pi d = 1
l ogi n kt hr e add s s hd
pi d = 8415 pi d = 2 pi d = 3028
e mac s t cs ch
ps
pi d = 9204 pi d = 4005
pi d = 9298
Operating System Concepts – 9th Edition 3.18 Silberschatz, Galvin and Gagne ©2013
Process Creation (Cont.)
There are also two address-space possibilities for the new
process:
Child duplicate of parent
Child has a program loaded into it
UNIX examples
fork() system call creates new process
exec() system call used after a fork() to replace the process’
memory space with a new program
Operating System Concepts – 9th Edition 3.19 Silberschatz, Galvin and Gagne ©2013
3.3.2 Process Termination
Process executes last statement and then asks the operating system to
delete it using the exit() system call.
Returns status data from child to parent (via wait())
Process’resources are deallocated by operating system
Parent may terminate the execution of children processes using the
abort() system call for some reasons. They are :
Child has exceeded allocated resources
Task assigned to child is no longer required
The parent is exiting and the operating systems does not allow a
child to continue if its parent terminates
Operating System Concepts – 9th Edition 3.20 Silberschatz, Galvin and Gagne ©2013
3.4 Inter process Communication
Processes within a system may be independent or cooperating
Cooperating process can affect or be affected by other
processes, including sharing data
Reasons for cooperating processes:
Operating System Concepts – 9th Edition 3.21 Silberschatz, Galvin and Gagne ©2013
3.4 Inter process Communication
Cooperating processes require an interprocess communication (IPC)
mechanism that will allow them to exchange data and information.
1. Shared memory :
A region of memory that is shared by cooperating processes is
established.
Processes can then exchange information by reading and writing data
to the shared region.
2. Message passing :
Communication takes place by means of messages exchanged between
the cooperating processes.
Message passing is useful for exchanging smaller amounts of data,
because no conflicts need be avoided.
Operating System Concepts – 9th Edition 3.22 Silberschatz, Galvin and Gagne ©2013
Communications Models
Figure 3.12 Communications models. (a) Message passing. (b) Shared memory
Operating System Concepts – 9th Edition 3.23 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication – Shared Memory
Operating System Concepts – 9th Edition 3.24 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication – Message Passing
Operating System Concepts – 9th Edition 3.25 Silberschatz, Galvin and Gagne ©2013
Message Passing (Cont.)
Operating System Concepts – 9th Edition 3.26 Silberschatz, Galvin and Gagne ©2013
Message Passing (Cont.)
Operating System Concepts – 9th Edition 3.27 Silberschatz, Galvin and Gagne ©2013
3.4.2.3 Buffering
Whether communication is direct or indirect, messages exchanged
by communicating processes reside in a temporary queue.
Basically, such queues can be implemented in three ways:.
1. Zero capacity : The queue has a maximum length of zero; thus, the
link cannot have any messages waiting in it. In this case, the sender
must block until the recipient receives the message.
2. Bounded capacity : The queue has finite length n. If the queue is
not full when a new message is sent, the message is placed in the
queue (either the message is copied or a pointer to the message is
kept), and the sender can continue execution without waiting.
3. Unbounded capacity : The queue’s length is potentially infinite;
thus, any number of messages can wait in it. The sender never
blocks.
Operating System Concepts – 9th Edition 3.28 Silberschatz, Galvin and Gagne ©2013
3.6.3 Pipes
A pipe acts as a conduit allowing two processes to communicate.
Pipes were one of the first IPC mechanisms in early UNIX
systems.
They typically provide one of the simpler ways for processes to
communicate with one another.
we explore two common types of pipes used on both UNIX and
Windows systems:
1. Ordinary pipes – cannot be accessed from outside the process
that created it. Typically, a parent process creates a pipe and uses
it to communicate with a child process that it created.
2. Named pipes – can be accessed without a parent-child
relationship.
Operating System Concepts – 9th Edition 3.29 Silberschatz, Galvin and Gagne ©2013