0% found this document useful (0 votes)
21 views

ch3 OS Processes

The document summarizes key concepts about processes from Chapter 3 of the textbook. It discusses that a process is a program in execution that includes a program counter, stack, data section, text, and heap. It describes process states like running, ready, waiting, and terminated. A process control block stores process information and context when it is not running. Context switching involves saving and loading process contexts when switching between processes. Processes are scheduled via queues like ready queues and I/O device queues. Schedulers select processes to run on the CPU or bring into memory. Operations on processes include creation where a parent can create child processes.

Uploaded by

younas125
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

ch3 OS Processes

The document summarizes key concepts about processes from Chapter 3 of the textbook. It discusses that a process is a program in execution that includes a program counter, stack, data section, text, and heap. It describes process states like running, ready, waiting, and terminated. A process control block stores process information and context when it is not running. Context switching involves saving and loading process contexts when switching between processes. Processes are scheduled via queues like ready queues and I/O device queues. Schedulers select processes to run on the CPU or bring into memory. Operations on processes include creation where a parent can create child processes.

Uploaded by

younas125
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

Chapter 3: Processes

Operating System Concepts – 8th Edition,! Silberschatz, Galvin and Gagne ©2009!
Chapter 3: Processes

■ Process Concept"
■ Process Scheduling"
■ Operations on Processes"
■ Interprocess Communication"

Operating System Concepts – 8th Edition! 3.2! Silberschatz, Galvin and Gagne ©2009!
Objectives

■ To introduce the notion of a process -- a program in


execution, which forms the basis of all computation"

■ To describe the various features of processes, including


scheduling, creation and termination, and
communication"

Operating System Concepts – 8th Edition! 3.3! Silberschatz, Galvin and Gagne ©2009!
Process Concept

■ An operating system executes a variety of programs,


what to call all the CPU activities?"
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"

Operating System Concepts – 8th Edition! 3.4! Silberschatz, Galvin and Gagne ©2009!
Process Concept

■ A process includes:"
● program counter "
● Stack (ex. return address)"
● data section "
● Text (code)"
● Heap (memory that is dynamically allocated during
process run time) "

Operating System Concepts – 8th Edition! 3.5! Silberschatz, Galvin and Gagne ©2009!
Process in Memory

Operating System Concepts – 8th Edition! 3.6! Silberschatz, Galvin and Gagne ©2009!
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 (such as I/O)"
● ready: The process is waiting to be assigned
to a processor"
● terminated: The process has finished
execution"

Operating System Concepts – 8th Edition! 3.7! Silberschatz, Galvin and Gagne ©2009!
Diagram of Process State

Operating System Concepts – 8th Edition! 3.8! Silberschatz, Galvin and Gagne ©2009!
Process Control Block (PCB)

■ Each process is represented in the OS by PCB. It is data


structure called the process control block (PCB) that
holds all this stuff"
● The PCB is identified by an integer process ID (PID)"
● It is a “snapshot” of the execution and protection
environment"
Only one PCB active at a time"

■ OS keeps all of a process’s hardware execution state in
the PCB when the process isn’t running"
● PC, SP, registers, etc."
● when a process is unscheduled, the state is
transferred out of the hardware into the PCB"

Operating System Concepts – 8th Edition! 3.9! Silberschatz, Galvin and Gagne ©2009!
Process Control Block (PCB)
Information associated with each process"
■ Process state: new, ready, running, waiting, halted."
■ Program counter: the address of the next instruction
to be executed for this process."
■ CPU registers: accumulators, Index registers, SP,
must be saved when an interrupt occurs to allow the
process to be continued correctly afterward."
■ CPU scheduling information: ex. process priority."
■ Memory-management information: ex. the value of
the base and limit registers."
■ Accounting information: ex. process number."
■ I/O status information: ex. List of I/O devices
allocated to the process , list of open files."
Silberschatz, Galvin and Gagne ©2009!
Operating System Concepts – 8th Edition! 3.10!

"
Process Control Block (PCB)

Operating System Concepts – 8th Edition! 3.11! Silberschatz, Galvin and Gagne ©2009!
CPU Switch From Process to Process

■ 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"
"
■ The act of switching the CPU from one process
to another is called a context switch.

■ Context-switch time is overhead; the system does no


useful work while switching"
"
■ Time dependent on hardware support"

Operating System Concepts – 8th Edition! 3.12! Silberschatz, Galvin and Gagne ©2009!
CPU Switch From Process to Process

Operating System Concepts – 8th Edition! 3.13! Silberschatz, Galvin and Gagne ©2009!
Process Scheduling Queues

■ The process scheduler selects an available


process( from a set of several available
processes) for program execution on the CPU.!
■ 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 (each device has its own device
queue)"
■ Processes migrate among the various queues"

Operating System Concepts – 8th Edition! 3.14! Silberschatz, Galvin and Gagne ©2009!
Ready Queue And Various I/O Device Queues

Operating System Concepts – 8th Edition! 3.15! Silberschatz, Galvin and Gagne ©2009!
Representation of Process Scheduling
(queuing diagram)

Operating System Concepts – 8th Edition! 3.16! Silberschatz, Galvin and Gagne ©2009!
Schedulers

■ Long-term scheduler (or job scheduler) –


selects which processes should be brought into
the ready queue and load them into memory."
■ Short-term scheduler (or CPU scheduler) –
selects which process should be executed next
and allocates CPU"

Operating System Concepts – 8th Edition! 3.17! Silberschatz, Galvin and Gagne ©2009!
Addition of Medium Term Scheduling

Operating System Concepts – 8th Edition! 3.18! Silberschatz, Galvin and Gagne ©2009!
Schedulers (Cont)

■ Short-term scheduler is invoked very frequently


(milliseconds) ⇒ (must be fast)"
■ Long-term scheduler is invoked very infrequently
(seconds, minutes) ⇒ (may be slow)"
■ The long-term scheduler controls the degree of
multiprogramming (the number of processes in
memory).!

Operating System Concepts – 8th Edition! 3.19! Silberschatz, Galvin and Gagne ©2009!
Schedulers (Cont)

■ 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"
■ The long term scheduler should select a good
process mix of I/O bound and CPU-bound
processes."

Operating System Concepts – 8th Edition! 3.20! Silberschatz, Galvin and Gagne ©2009!
Operations on the processes
1-Process Creation
■ a process may create several new processes, via a
create-process system call. "
■ Parent process create children processes, which, in
turn create other processes, forming a tree of processes"
■ Most O.S. identify process and managed via a unique
process identifier (pid) (an integer number)."
"

Operating System Concepts – 8th Edition! 3.21! Silberschatz, Galvin and Gagne ©2009!
Operations on the processes
1-Process Creation
■ A process will need resources (CPU time, memory, fileI/
O devices) to accomplish its task. "
■ When a process creates a subprocess, that subprocess
may be:"
Ø able to obtain its resources directly from O.S."
Ø Resource sharing"
u Parent and children share all resources"
u Children share subset of parent’s resources"
u Parent and child share no resources"
■ Execution"
● Parent and children execute concurrently"
● Parent waits until some or all children terminate"
Operating System Concepts – 8th Edition! 3.22! Silberschatz, Galvin and Gagne ©2009!

"
Process Creation (Cont)

■ Address space"
● Child duplicate of parent (it has the same program
and data as the parent)."
● Child has a new program loaded into it"
■ UNIX examples"
● fork system call creates new process (copy of the
address space of the original process)."
● exec system call used after a fork to replace the
process’ memory space with a new program"
● Wait() the parent waits for the child process to
complete."
● Exit().!
Operating System Concepts – 8th Edition! 3.23! Silberschatz, Galvin and Gagne ©2009!
Process Creation

Operating System Concepts – 8th Edition! 3.24! Silberschatz, Galvin and Gagne ©2009!
A tree of processes on a typical Solaris

Operating System Concepts – 8th Edition! 3.25! Silberschatz, Galvin and Gagne ©2009!
2- Process Termination

■ A Process terminates when it finishes executing its last


statement and asks the operating system to delete it by
using the (exit) system call."
● Return a value from child to parent (via wait)"
● Process’ resources are deallocated by operating
system"

Operating System Concepts – 8th Edition! 3.26! Silberschatz, Galvin and Gagne ©2009!
2- Process Termination

■ Parent may terminate execution of children processes


(abort)"
● Child has exceeded allocated resources"
● Task assigned to child is no longer required"
● If parent is exiting"
!Some operating system do not allow child to
continue if its parent terminates"
– All children terminated - cascading termination!

Operating System Concepts – 8th Edition! 3.27! Silberschatz, Galvin and Gagne ©2009!
Interprocess Communication
■ Independent process cannot affect or be affected by the
execution of another process!
■ Cooperating process can affect or be affected by other
processes, including sharing data"

Operating System Concepts – 8th Edition! 3.28! Silberschatz, Galvin and Gagne ©2009!
Interprocess Communication
■ Reasons for cooperating processes:"
● Information sharing (ex.: shared file)"
● Computation speedup (break up process into sub
tasks to run faster and can be achieved only if the
computer has multiple processing elements – CPUs or
I/O channels)"
● Modularity (dividing system functions into separate
processes or threads)"
● Convenience (individual user may work on many tasks
at the same time could be editing, printing, and
compiling in parallel)"

Operating System Concepts – 8th Edition! 3.29! Silberschatz, Galvin and Gagne ©2009!
Interprocess Communication
■ Mechanism for processes to communicate and to synchronize
their actions"
■ Two models of IPC:"
!1) shared memory!
"cooperating processes exchange information by reading and
writing data to a shared region of memory."
"* allows maximum speed and convenience of communication."
"* faster than message passing (system calls only to establish
the region. All accesses are routine memory accesses, no
assistance from the kernel)."
!"

Operating System Concepts – 8th Edition! 3.30! Silberschatz, Galvin and Gagne ©2009!
Interprocess Communication
■ Mechanism for processes to communicate and to synchronize
their actions"
■ Two models of IPC:"
!2) message passing!
"messages are exchanged between the cooperating processes"
"* useful for exchanging smaller amounts of data."
"* easier to implement than is shared memory for
intercomputer communications."
* implemented using system calls (more time, kernel
intervention)."

Operating System Concepts – 8th Edition! 3.31! Silberschatz, Galvin and Gagne ©2009!
Communications Models

Operating System Concepts – 8th Edition! 3.32! Silberschatz, Galvin and Gagne ©2009!
Shared memory system

■ IPC using shared memory requires communicating


processes to establish region of shared memory."
■ The region resides in the address space of the process
creating the shared memory segment."
■ Shared memory requires that two or more processes
agree to remove the restriction."
■ Exchange information by reading and writing data in the
shared area."
■ The processes are responsible for ensuring that they are
not writing to the same location simultaneously."

Operating System Concepts – 8th Edition! 3.33! Silberschatz, Galvin and Gagne ©2009!
Producer-Consumer Problem
■ A common Paradigm for cooperating processes, producer
process produces information that is consumed by a
consumer process."
■ Ex. The assembler produce object modules, which are
consumed by the loader."
■ Ex. Web server produces(provides) HTML files and
images, which are consumed (read) by the web browser
requesting the resource."
■ One solution to the producer-consumer problem uses
shared memory."
■ To Allow the P and C processes to run concurrently, we
must have a buffer that can be filled by the P and emptied
by the C."
■ This buffer reside in a region of memory that is shared by
the P and C processes."
Operating System Concepts – 8th Edition! 3.34! Silberschatz, Galvin and Gagne ©2009!
Producer-Consumer Problem

■ The P and C must be synchronized, so that the C does


not try to consume an item that has not yet been
produced.!
■ Two types of buffers:!
! unbounded-buffer places no practical limit on the
size of the buffer"
(the C may wait, the P can always produce new
items)"
! bounded-buffer assumes that there is a fixed buffer
size"
( the C must wait if buffer empty, the P must wait if
the buffer is full).
Operating System Concepts – 8th Edition! 3.35! Silberschatz, Galvin and Gagne ©2009!
Interprocess Communication – Message Passing

■ Provides a Mechanism for processes to communicate


and to synchronize their actions."
■ Message system – processes communicate with each
other without resorting to shared variables."
■ IPC message-passing facility provides two operations:"
● send(message) – message size fixed or variable "
● receive(message)"

Operating System Concepts – 8th Edition! 3.36! Silberschatz, Galvin and Gagne ©2009!
Interprocess Communication – Message Passing

■ If processes P and Q wish to communicate, they need to:"


establish a communication link between them"

● exchange messages via send/receive"
■ Implementation of communication link :"
● physical (e.g., shared memory, hardware bus)"
● logical (e.g., logical properties)"

Operating System Concepts – 8th Edition! 3.37! Silberschatz, Galvin and Gagne ©2009!
Implementation Questions

■ How are links established?"


■ Can a link be associated with more than two processes?"
■ How many links can there be between every pair of
communicating processes?"
■ What is the capacity of a link?"
■ Is the size of a message that the link can accommodate
fixed or variable?"
■ Is a link unidirectional or bi-directional?"

Operating System Concepts – 8th Edition! 3.38! Silberschatz, Galvin and Gagne ©2009!
Interprocess Communication – Message
Passing

■ Several methods for logically implementing a link, and
the send()/receive() operations :"
● Direct or indirect communication."
● Synchronous or asynchronous communication."
● Automatic or explicit buffering.

Operating System Concepts – 8th Edition! 3.39! Silberschatz, Galvin and Gagne ©2009!
Direct Communication
■ Processes must name each other explicitly:"
● send (P, message) – send a message to process P"
● receive(Q, message) – receive a message from
process Q"
■ The Properties of the communication link:"
● Links are established automatically between every pair
of processes that want to communicate. The processes
need to know only each other’s identity to
communicate."
● A link is associated with exactly one pair of
communicating processes"
● Between each pair there exists exactly one link"
● The link may be unidirectional, but is usually bi-
directional"
th
Operating System Concepts – 8 Edition! 3.40! Silberschatz, Galvin and Gagne ©2009!
Indirect Communication
■ Messages are directed and received from mailboxes
(also referred to as ports)"
● Each mailbox has a unique id"
● Processes can communicate only if they share a
mailbox"
■ Properties of communication link"
● Link established only if processes share a common
mailbox"
● A link may be associated with many processes"
● Each pair of processes may share several
communication links, with each link corresponding
to one mailbox."
● Link may be unidirectional or bi-directional"
Operating System Concepts – 8th Edition! 3.41! Silberschatz, Galvin and Gagne ©2009!
Indirect Communication

■ A mailbox may be owned either by a process (part of


its address space) or by the OS."
■ When a process that owns a mailbox terminates, the
mailbox disappears."
■ OS allows the process the operations:"
● create a new mailbox"
● send and receive messages through mailbox"
● destroy a mailbox"
■ Primitives are defined as:"
"send(A, message) – send a message to mailbox A"
"receive(A, message) – receive a message from
mailbox A"
Operating System Concepts – 8th Edition! 3.42! Silberschatz, Galvin and Gagne ©2009!
Indirect Communication

■ Mailbox sharing"
● P1, P2, and P3 share mailbox A."
● P1, sends a message to A; P2 and P3 receive from A."
● Who gets the message?"
■ Solutions"
● Allow a link to be associated with at most two
processes"
● Allow only one process at a time to execute a receive
operation"
● Allow the system to select arbitrarily the receiver (P2
or P3 not both) Sender is notified who the receiver
was."
Operating System Concepts – 8th Edition! 3.43! Silberschatz, Galvin and Gagne ©2009!
"
Synchronization

■ Message passing may be either blocking or non-


blocking"
■ Blocking is considered synchronous!
● Blocking send has the sender block until the
message is received by the receiving process
or by the mailbox."
● Blocking receive has the receiver block until a
message is available "

Operating System Concepts – 8th Edition! 3.44! Silberschatz, Galvin and Gagne ©2009!
Synchronization

■ Message passing may be either blocking or non-


blocking"
■ Non-blocking is considered asynchronous!
● Non-blocking send has the sender send the
message and continue operation."
● Non-blocking receive has the receiver receive
either a valid message or null"
■ When Both send() and receive() are blocking, we
have a rendezvous between the sender and the
receiver."

Operating System Concepts – 8th Edition! 3.45! Silberschatz, Galvin and Gagne ©2009!
Buffering

■ Messages exchanged by processes reside in a


temporary queue."
■ Queue of messages attached to the link;
implemented in one of three ways"
1."Zero capacity – max length of 0 messages
( cannot have any messages waiting in it).
Sender must wait(blocked) for receiver
(rendezvous)"
2."Bounded capacity – finite length of n messages
Sender must wait (block) if link is full"
3."Unbounded capacity – infinite length
Sender never waits."

Operating System Concepts – 8th Edition! 3.46! Silberschatz, Galvin and Gagne ©2009!
End of Chapter 3

Operating System Concepts – 8th Edition,! Silberschatz, Galvin and Gagne ©2009!

You might also like