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

Cooperating Processes

Uploaded by

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

Cooperating Processes

Uploaded by

omar alomary
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 30

CIT11: Principles of Operating System

Principles of Operating
System
Course Code CIT11

Faculty of Computing and Information Technology


Computer Science Department
Spring, 2017/2018
These slides are based on lecture notes of the book’s author
& Portland University slides
& A. Frank - P. Weisberg slides
Wedad Al-Sorori 14 September 2017 Introduction 1/51
CIT11: Principles of Operating System
Cooperating Processes

• This lecture will cover the following topics:

• Interprocess Communication

• Communication in Client-Server Systems

Wedad Al-Sorori 14 September 2017 Introduction 2/51


CIT11: Principles of Operating System

Objectives

• After completing this lecture, students will be able to:

• Describe the processes communication.

• Explore interprocess communication using shared


memory and message passing.
• Recognize why process cooperate.

• Infer process cooperation problems.

• Demonstrate communication in client-server systems.

Wedad Al-Sorori 14 September 2017 Introduction 3/51


CIT11: Principles of Operating System

Interprocess 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:
• Information sharing
• Computation speedup
• Modularity
• Convenience
• Cooperating processes need interprocess communication
(IPC)
• Two models of IPC
• Shared memory
Wedad Al-Sorori 14 September 2017 Introduction 4/51
CIT11: Principles of Operating System
Communications Models
(a) Message passing. (b) shared memory.

Wedad Al-Sorori 14 September 2017 Introduction 5/51


CIT11: Principles of Operating System
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

Wedad Al-Sorori 14 September 2017 Introduction 6/51


CIT11: Principles of Operating System

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

Wedad Al-Sorori 14 September 2017 Introduction 7/51


CIT11: Principles of Operating System

Interprocess Communication – Shared Memory


• An area of memory shared among the processes that wish to
communicate
• The communication is under the control of the users processes
not the operating system.
• Major issues is to provide mechanism that will allow the user
processes to synchronize their actions when they access shared
memory.
• Synchronization is discussed in great details in Chapter 5.

Wedad Al-Sorori 14 September 2017 Introduction 8/51


CIT11: Principles of Operating System

Interprocess Communication – Message Passing


(1/3)
• 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)
• Receive(message)

• The message size is either fixed or variable


Wedad Al-Sorori 14 September 2017 Introduction 9/51
CIT11: Principles of Operating System

Message Passing (2/3)


• If processes P and Q wish to communicate, they need to:
• Establish a communication link between them
• Exchange messages via send/receive
• Implementation issues:
• 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?

Wedad Al-Sorori 14 September 2017 Introduction 10/51


CIT11: Principles of Operating System

Message Passing (3/3)


• Implementation of communication link
• Physical:
• Shared memory
• Hardware bus
• Network
• Logical:
• Direct or indirect
• Synchronous or asynchronous
• Automatic or explicit buffering

Wedad Al-Sorori 14 September 2017 Introduction 11/51


CIT11: Principles of Operating System

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

Wedad Al-Sorori 14 September 2017 Introduction 12/51


CIT11: Principles of Operating System

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

Wedad Al-Sorori 14 September 2017 Introduction 13/51


CIT11: Principles of Operating System

Indirect Communication
• Operations
• Create a new mailbox (port)
• 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

Wedad Al-Sorori 14 September 2017 Introduction 14/51


CIT11: Principles of Operating System

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.

Wedad Al-Sorori 14 September 2017 Introduction 15/51


CIT11: Principles of Operating System

Synchronization
• Message passing may be either blocking or non-blocking
• Blocking is considered synchronous
• Blocking send -- the sender is blocked until the message is
received
• Blocking receive -- the receiver is blocked until a message is
available
• Non-blocking is considered asynchronous
• Non-blocking send -- the sender sends the message and continue
• Non-blocking receive -- the receiver receives:
 A valid message, or
 Null message
 Different combinations possible
 If both send and receive are blocking, we have a rendezvous
Wedad Al-Sorori 14 September 2017 Introduction 16/51
CIT11: Principles of Operating System

Buffering
• Queue of messages attached to the link.

• implemented in one of three ways


1. Zero capacity – no messages are queued on a link.
• 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

Wedad Al-Sorori 14 September 2017 Introduction 17/51


CIT11: Principles of Operating System

Communications in Client-Server Systems

• Sockets

• Remote Procedure Calls

• Pipes

• Remote Method Invocation (Java)

Wedad Al-Sorori 14 September 2017 Introduction 18/51


CIT11: Principles of Operating System

Sockets
• A socket is defined as an endpoint for communication

• Concatenation of IP address and port – a number included at start of message packet to


differentiate network services on a host

• The socket 161.25.19.8:1625 refers to port 1625 on host 161.25.19.8

• Communication consists between a pair of sockets

• All ports below 1024 are well known, used for standard services

• Special IP address 127.0.0.1 (loopback) to refer to system on which process is running

Wedad Al-Sorori 14 September 2017 Introduction 19/51


CIT11: Principles of Operating System

Socket Communication

Wedad Al-Sorori 14 September 2017 Introduction 20/51


CIT11: Principles of Operating System

Sockets in Java
• Three types of sockets
• Connection-oriented
(TCP)
• Connectionless (UDP)
• MulticastSocket class–
data can be sent to
multiple recipients

• Consider this “Date”


server:

Wedad Al-Sorori 14 September 2017 Introduction 21/51


CIT11: Principles of Operating System

Remote Procedure Calls (1/2)


• Remote procedure call (RPC) abstracts procedure calls between
processes on networked systems
• Again uses ports for service differentiation
• Stubs – client-side proxy for the actual procedure on the server
• The client-side stub locates the server and marshalls the
parameters
• The server-side stub receives this message, unpacks the
marshalled parameters, and performs the procedure on the
server
• On Windows, stub code compile from specification written in
Microsoft Interface Definition Language (MIDL)

Wedad Al-Sorori 14 September 2017 Introduction 22/51


CIT11: Principles of Operating System

Remote Procedure Calls (1/2)


• Data representation handled via External Data
Representation (XDL) format to account for different
architectures
• Big-endian and little-endian
• Remote communication has more failure scenarios than local
• Messages can be delivered exactly once rather than at
most once
• OS typically provides a rendezvous (or matchmaker) service
to connect client and server

Wedad Al-Sorori 14 September 2017 Introduction 23/51


CIT11: Principles of Operating System

Execution of RPC

Wedad Al-Sorori 14 September 2017 Introduction 24/51


CIT11: Principles of Operating System

Pipes
• Acts as a conduit allowing two processes to communicate
• Issues:
• Is communication unidirectional or bidirectional?
• In the case of two-way communication, is it half or full-duplex?
• Must there exist a relationship (i.e., parent-child) between the
communicating processes?
• Can the pipes be used over a network?
• 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.
• Named pipes – can be accessed without a parent-child
relationship.

Wedad Al-Sorori 14 September 2017 Introduction 25/51


CIT11: Principles of Operating System

Ordinary Pipes
• Ordinary Pipes allow communication in standard producer-consumer
style
• Producer writes to one end (the write-end of the pipe)
• Consumer reads from the other end (the read-end of the pipe)
• Ordinary pipes are therefore unidirectional
• Require parent-child relationship between communicating processes

• Windows calls these anonymous pipes


• See Unix and Windows code samples
Wedad Al-Sorori
in textbook
14 September 2017 Introduction 26/51
CIT11: Principles of Operating System

Named Pipes
• Named Pipes are more powerful than ordinary pipes
• Communication is bidirectional
• No parent-child relationship is necessary between the
communicating processes
• Several processes can use the named pipe for
communication
• Provided on both UNIX and Windows systems

Wedad Al-Sorori 14 September 2017 Introduction 27/51


CIT11: Principles of Operating System

Summary

• Processes can cooperate with other processes to


accomplish their tasks so they need to communicate with
each other.
• Interprocess communication can be done using shared
memory or message passing.
• Communication in client server model can be
implemented using sockets, pipes or remote procedure
call.

Wedad Al-Sorori 14 September 2017 Introduction 28/51


CIT11: Principles of Operating System

Assignment
• Answer and submit questions in assignment8 that was attached
with this lecture on CLMS.

Wedad Al-Sorori 14 September 2017 Introduction 29/51


CIT11: Principles of Operating System

Thanks

Wedad Al-Sorori 14 September 2017 Introduction 30/51

You might also like