0% found this document useful (0 votes)
109 views33 pages

Process Management in Operating Systems

This chapter discusses processes in operating systems. It covers key concepts such as: - A process is a program in execution that includes a program counter, stack, and data section. - Processes go through various states as they execute such as new, running, ready, waiting, and terminated. - Each process is represented by a process control block that contains information like state, scheduling info, and I/O status. - There are different scheduling queues like ready queues and I/O queues that processes move between, and long-term and short-term schedulers that select which processes to execute.

Uploaded by

Ujjawal Mallik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
109 views33 pages

Process Management in Operating Systems

This chapter discusses processes in operating systems. It covers key concepts such as: - A process is a program in execution that includes a program counter, stack, and data section. - Processes go through various states as they execute such as new, running, ready, waiting, and terminated. - Each process is represented by a process control block that contains information like state, scheduling info, and I/O status. - There are different scheduling queues like ready queues and I/O queues that processes move between, and long-term and short-term schedulers that select which processes to execute.

Uploaded by

Ujjawal Mallik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Chapter 4: Processes

Process Concept
Process Scheduling
Operations on Processes
Cooperating Processes
Interprocess Communication
Communication in Client-Server Systems

Operating System Concepts 4.1 Silberschatz, Galvin and Gagne 2002


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

Operating System Concepts 4.2 Silberschatz, Galvin and Gagne 2002


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.

Operating System Concepts 4.3 Silberschatz, Galvin and Gagne 2002


Process Life Cycle
State Transition Diagram

Operating System Concepts 4.4 Silberschatz, Galvin and Gagne 2002


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

Operating System Concepts 4.5 Silberschatz, Galvin and Gagne 2002


Process Control Block (PCB)

Operating System Concepts 4.6 Silberschatz, Galvin and Gagne 2002


CPU Switch From Process to Process

Operating System Concepts 4.7 Silberschatz, Galvin and Gagne 2002


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.
Process migration between the various queues.

Operating System Concepts 4.8 Silberschatz, Galvin and Gagne 2002


Ready Queue And Various I/O Device Queues

Operating System Concepts 4.9 Silberschatz, Galvin and Gagne 2002


Representation of Process Scheduling

Operating System Concepts 4.10 Silberschatz, Galvin and Gagne 2002


Schedulers

Long-term scheduler (or job scheduler) selects which


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

Operating System Concepts 4.11 Silberschatz, Galvin and Gagne 2002


Addition of Medium Term Scheduling

Operating System Concepts 4.12 Silberschatz, Galvin and Gagne 2002


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.
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.

Operating System Concepts 4.13 Silberschatz, Galvin and Gagne 2002


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.

Operating System Concepts 4.14 Silberschatz, Galvin and Gagne 2002


Threads
It is flow of execution through process code with thread
id, program counter, register set and a stack.
Thread is light weight process.
Improves application performance through parallelism.
suitable foundation for parallel execution of applications
on shared memory multiprocessors.

Operating System Concepts 4.15 Silberschatz, Galvin and Gagne 2002


Thread Vs Process
S. Process Thread
N.
1 Process is heavy weight or resource Thread is light weight taking lesser resources
intensive. than a process.
2 Process switching needs interaction Thread switching does not need to interact with
with operating system. operating system.
3 In multiple processing environments All threads can share same set of open files,
each process executes the same code child processes.
but has its own memory and file
resources.
4 If one process is blocked then no other While one thread is blocked and waiting, second
process can execute until the first thread in the same task can run.
process is unblocked.
5 Multiple processes without using Multiple threaded processes use fewer
threads use more resources. resources.
6 In multiple processes each process One thread can read, write or change another
operates independently of the others. thread's data.

Operating System Concepts 4.16 Silberschatz, Galvin and Gagne 2002


Advantages-Threads
Thread minimize context switching time.
Use of threads provides concurrency within
a process.
Efficient communication.
Economy- It is more economical to create
and context switch threads.
Utilization of multiprocessor architectures to
a greater scale and efficiency.

Operating System Concepts 4.17 Silberschatz, Galvin and Gagne 2002


Process Creation

Parent process create children processes, which, in turn


create other processes, forming a tree of processes.
Resource sharing
Parent and children share all resources.
Children share subset of parents resources.
Parent and child share no resources.
Execution
Parent and children execute concurrently.
Parent waits until children terminate.

Operating System Concepts 4.18 Silberschatz, Galvin and Gagne 2002


Process Creation (Cont.)

Address space
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 4.19 Silberschatz, Galvin and Gagne 2002


Processes Tree on a UNIX System

Operating System Concepts 4.20 Silberschatz, Galvin and Gagne 2002


Process Termination

Process executes last statement and asks the operating


system to decide it (exit).
Output data from child to parent (via wait).
Process resources are deallocated by operating system.
Parent may terminate execution of children processes
(abort).
Child has exceeded allocated resources.
Task assigned to child is no longer required.
Parent is exiting.
Operating system does not allow child to continue if its
parent terminates.
Cascading termination.

Operating System Concepts 4.21 Silberschatz, Galvin and Gagne 2002


Cooperating Processes

Independent process cannot affect or be affected by the


execution of another process.
Cooperating process can affect or be affected by the
execution of another process
Advantages of process cooperation
Information sharing
Computation speed-up
Modularity
Convenience

Operating System Concepts 4.22 Silberschatz, Galvin and Gagne 2002


Producer-Consumer Problem

Paradigm for cooperating processes, producer process


produces information that is consumed by a consumer
process.
unbounded-buffer places no practical limit on the size of the
buffer.
bounded-buffer assumes that there is a fixed buffer size.

Operating System Concepts 4.23 Silberschatz, Galvin and Gagne 2002


Bounded-Buffer Shared-Memory Solution
Shared data
#define BUFFER_SIZE 10
Typedef struct {
...
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
Solution is correct, but can only use BUFFER_SIZE-1
elements

Operating System Concepts 4.24 Silberschatz, Galvin and Gagne 2002


Bounded-Buffer Producer Process

item nextProduced;

while (1) {
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}

Operating System Concepts 4.25 Silberschatz, Galvin and Gagne 2002


Bounded-Buffer Consumer Process

item nextConsumed;

while (1) {
while (in == out)
; /* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}

Operating System Concepts 4.26 Silberschatz, Galvin and Gagne 2002


Interprocess Communication (IPC)

Mechanism for processes to communicate and to


synchronize their actions.
Message system processes communicate with each
other without resorting to shared variables.
IPC facility provides two operations:
send(message) message size fixed or variable
receive(message)
If 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 4.27 Silberschatz, Galvin and Gagne 2002


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
Properties of communication link
Links are established automatically.
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.

Operating System Concepts 4.28 Silberschatz, Galvin and Gagne 2002


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.
Link may be unidirectional or bi-directional.

Operating System Concepts 4.29 Silberschatz, Galvin and Gagne 2002


Indirect Communication

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 4.30 Silberschatz, Galvin and Gagne 2002


Indirect Communication

Mailbox sharing
P1, P2, and P3 share mailbox A.
P1, sends; P2 and P3 receive.
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. Sender is
notified who the receiver was.

Operating System Concepts 4.31 Silberschatz, Galvin and Gagne 2002


Synchronization

Message passing may be either blocking or non-blocking.


Blocking is considered synchronous
Non-blocking is considered asynchronous
send and receive primitives may be either blocking or
non-blocking.

Operating System Concepts 4.32 Silberschatz, Galvin and Gagne 2002


Buffering

Queue of messages attached to the link; implemented in


one of three ways.
1. Zero capacity 0 messages
Sender must wait for receiver (rendezvous).
2. Bounded capacity finite length of n messages
Sender must wait if link full.
3. Unbounded capacity infinite length
Sender never waits.

Operating System Concepts 4.33 Silberschatz, Galvin and Gagne 2002

You might also like