Lecture 4 & 5
Lecture 4 & 5
Operating System
Lecture 4 & 5
Process Management
Saurabh Mishra, PhD
Assistant Professor
Dept of CSE
Content
• Process
• Process Concept
• Process Scheduling
• Operation on Processes
• Inter Process Communication
• Producer Consumer Problem
• Bounded Buffer
• Semaphore
Process
• A Process can be thought as a program in execution
• A thread is a unit of execution with in a process. A process can
have one or many threads.
Process
Thread 1
Thread 2
Thread 3
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
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 process.
• terminated: The process has finished execution.
Diagram of Process State
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
Process Control Block (PCB)
CPU Switch From Process to Process
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.
Ready Queue And Various I/O Device Queues
Representation of Process Scheduling
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.
Addition of Medium Term Scheduling
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.
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.
Process Creation
• Parent process creates 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 parent’s resources.
• Parent and child share no resources.
• Execution
• Parent and children execute concurrently.
• Parent waits until children terminate.
Process Creation (Cont.)
• Address space
• Child duplicate of parent.
• Child has a program loaded into it.
• UNIX examples
• fork system call creates new process
• execve system call used after a fork to replace the process’ memory
space with a new program.
A Tree of Processes On A Typical
UNIX System
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.
Inter Process Communication
• Process can be categorized into
• 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
Inter Process Communication
• There are two primary models of interprocess communication:
• Shared memory and
• Message passing.
• In the shared-memory model, a memory region shared by cooperating
processes gets established. Processes can then exchange information
by reading and writing all the data to the shared region.
• Shared-memory region resides within the address space of any
process creating the shared memory segment. Other processes that
wish to communicate using this shared-memory segment must
connect it to their address space.
• In the message-passing form, communication occurs through
messages exchanged among the cooperating processes.
Inter Process Communication
Producer Consumer Problem
(Shared Memory)
• Producer-Consumer problem is a classical synchronization
problem in the operating system.
• With the presence of more than one process and limited
resources in the system the synchronization problem arises.
• If one resource is shared between more than one process at the
same time then it can lead to data inconsistency.
• In the producer-consumer problem, the producer produces an
item and the consumer consumes the item produced by the
producer.
Producer Consumer Problem
(Shared Memory)
• In operating System Producer is a process which is able to
produce data/item.
• Consumer is a Process that is able to consume the data/item
produced by the Producer.
• Both Producer and Consumer share a common memory buffer.
This buffer is a space of a certain size in the memory of the system
which is used for storage. The producer produces the data into the
buffer and the consumer consumes the data from the buffer.
Producer Consumer Problem
(Shared Memory)
Producer Consumer Problem
(Shared Memory)
• Producer Process should not produce any data when the shared
buffer is full.
• Consumer Process should not consume any data when the
shared buffer is empty.
• The access to the shared buffer should be mutually exclusive i.e at
a time only one process should be able to access the shared
buffer and make changes to it.
• For consistent data synchronization between Producer and
Consumer, the above problem should be resolved.
Bounded-Buffer – Shared-Memory Solution
• Unbounded buffer
• Places no practical limit on the size of the buffer. The consumer
may have to wait for new items, but the producer can always
produce new items
• Bounded buffer
• Assumes a fixed buffer size. In this case, the consumer must
wait if the buffer is empty, and the producer must wait if the
buffer is full.
Bounded-Buffer – Shared-Memory Solution
• Shared data
var n;
type item = … ;
var buffer. array [0..n–1] of item;
in, out: 0..n–1;
• Producer process
repeat
…
produce an item in nextp
…
while in+1 mod n = out do no-op;
buffer [in] :=nextp;
in :=in+1 mod n;
until false;
Bounded-Buffer – Shared-Memory Solution
• Consumer process
repeat
while in = out do no-op;
nextc := buffer [out];
out := out+1 mod n;
…
consume the item in nextc
…
until false;
• Empty : The Empty variable is used to track the empty space in the
buffer. The Empty variable is initially initialized to the BUFFER-SIZE as
initially, the whole buffer is empty.