ENTERPROCESS
COMMUNICATION AND SYNCHRONIZATION
·
In multi programming environment multiple process co-exit . a
single program may be broken into number
of processes.
·
The process are classified into two categories : independent
processes and cooperating processes.
·
An independent process is a standalone process that does not
share any data with any other process. It cannot affect or be affected by the
other processes executing in the system.
In other words, the modification made to an independent process does not affect
the functioning of other process.
·
A cooperating processes is a process that shares data with
other processes in a system it can affect or be affectedly the other processes
executing in the system
·
Cooperating processes can communicate in a shred memory
environment .
·
The various reasons for using cooperating processes are:
1. Information sharing : when
several users want to access to these
type of reasourses
2. Computational speed up: a
task can be broken into various subtak so that each of them can run in parallel
and this gives faster computation results.
3. To support modularity: when
a system is to be created in module fashion by dividing in into small
functional units, co-operating processes are required. Cooperation processes
establishes communication between the different modulus.
INTERPROCESSES
COMMUNICATION
·
Inter-process communication (IPC) is a facility provided by
an operating system via which cooperating processes can communicate with each
other.
·
IPC facility allows the processes to cooperate and
synchronize their action without sharing the sme addresses space
·
IPC is particularly useful in a distributed environment where
the communication processes may reside on different computers connected with a
network. An example is chat program used in the world wide web
·
There several different methods for establishing interprocess
communication. Some of these methods are:
Ø Message Passing
Ø Shared Memory
Ø Signals
Ø Shared Files ,I.E. Pipes
Ø Dynamic Data Exchange (DDE)
Ø Object Linking And Embedding(OLE)
MESSAGE
PASSING MODEL
·
A message is a collection of information that may be
exchanged between a sending and receiving processes.
·
A message may contain data, execution commands, or even some
code to be transmitted between two or more process.
·
A message format is flexible and negotiable by each sender-
reciver pair.
·
A message Is characterized by its type , length ,sender and
receiver IDS and a data field.
MESSAGE
FORMAT
·
The format of a message depends upon two factors:
1. The objective of the message
facilty.
2. Whether the facility runs on
a single computer or on a distributed system
·
In some operating system short, fixed length messages are
preferred in order to minimize processing and storage overhead.
·
In case , a large amount of data is to be sent , the data is
placed in a file and the message then simply reference that file
· The header has a fixed format within a given operating system and contains the information about the message.
·
The message body is optional and contains the actual content
of the message.
·
The header may contain an identification of the message a
length field , and a type field to discriminate among various types of
messages.
·
There may also be additional control information such as
pointer field so that a linked list of message can be created , a sequence number , to keep track of the
number and order of messages passed between source and destination and a
priority field.
·
Processes generally send and receive message by using send
and receive primitives:
Send(receiver process, message)
Receive (sender process, message)
·
The send and receive calls are normally implemented as
operating system calls.
·
The send call sends a message to a give receiver process. The
receiver call receives a message from a given sender process.
·
The following four system calls are used for message transfer
among processes:
Ø msgget(): it returns (and
possibly creates ) message descriptors to designate a message from queue for in
other system calls.
Ø msgetl(): it has options to
set and return parameters associated with a message descriptor. It also has an
option to remove descriptors.
Ø msgsnd(): it senda a message
using a message queue.
Ø msgrev(): it receives using
a message queue.
Implementing
Issues In Messages
The
various implementation issues that arise in interprocess communication using
messages are:
1. naming of the sender and
receiver processes : naming conventions used in the send and receive calls
provide answer to some key questions:.
·
How does the sender process know the name of the receiver?
·
How does the receiver process know the name of sebder ?
2. Message delivery protocol :
protocol are the set of rules that determines the message data format and
actions of processes while sending and receiving messages
3. Operating system
responsibilities : buffering of message, bloicking and waking of processes etc.
Naming
·
Processes that want to communicate must have a way to refer
tro each other processes can name each other directly or indirectly.
·
If the processes use indirect naming , it is know as indirect
communication.
Comments
Post a Comment