wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Synchronization

profile
23 B Titiksha Shah
Aug 16, 2024
0 Likes
0 Discussions
116 Reads

Synchronization

The communication of a message between two processes implies some level of synchronization

between the two: The receiver cannot receive a message until it has

been sent by another process. In addition, we need to specify what happens to a

process after it issues a send or receive primitive.

Consider the send primitive first. When a send primitive is executed in a

process, there are two possibilities: Either the sending process is blocked until the

message is received, or it is not. Similarly, when a process issues a receive primitive,

there are two possibilities:

1. If a message has previously been sent, the message is received and execution

continues.

2. If there is no waiting message, then either (a) the process is blocked until

a message arrives, or (b) the process continues to execute, abandoning the

attempt to receive.

Thus, both the sender and receiver can be blocking or nonblocking. Three

combinations are common, although any particular system will usually have only

one or two combinations implemented:

• Blocking send, blocking receive: Both the sender and receiver are blocked until

the message is delivered; this is sometimes referred to as a rendezvous . This

combination allows for tight synchronization between processes.

• Nonblocking send, blocking receive: Although the sender may continue on,

the receiver is blocked until the requested message arrives. This is probably

the most useful combination. It allows a process to send one or more messages

to a variety of destinations as quickly as possible. A process that must receive

a message before it can do useful work needs to be blocked until such a message

arrives. An example is a server process that exists to provide a service or

resource to other processes.

• Nonblocking send, nonblocking receive: Neither party is required to wait.

The nonblocking send is more natural for many concurrent programming

tasks. For example, if it is used to request an output operation, such as printing, it

allows the requesting process to issue the request in the form of a message and then

carry on. One potential danger of the nonblocking send is that an error could lead

to a situation in which a process repeatedly generates messages. Because there is no

blocking to discipline the process, these messages could consume system resources,

including processor time and buffer space, to the detriment of other processes and

the OS. Also, the nonblocking send places the burden on the programmer to determine

that a message has been received


Comments ()


Sign in

Read Next

What is Packet Filtering?

Blog banner

Full Disk Encryption on Digital Forensics

Blog banner

Developments in Modern Operating Systems

Blog banner

The Role of Data Provenance and Lineage in Modern Data Science

Blog banner

Which Smartphone Company Has the Largest Market Share in India?

Blog banner

How to Encrypt and Decrypt Using GNU PGP

Blog banner

Landslide Hazard

Blog banner

Blockchain Security Technique

Blog banner

?What Your Dentist Notices The Moment You Sit In The Chair

Blog banner

Information of meesho company

Blog banner

MEMORY FORENSIC ACQUISITION AND ANALYSISOF MEMORY AND ITS TOOLS COMPARISON

Blog banner

Technical SEO : Total Guide

Blog banner

Modern Operating System - Khush bagaria

Blog banner

Deadlock

Blog banner

?Why Social and Emotional Skills Matter More Than ABCs in Early Years?

Blog banner

Tea, Coffee, Red Wine, and Teeth: A Stain Survival Guide

Blog banner

Deadlock and Starvation

Blog banner

LISP - Library Management System

Blog banner

What's Better : Supervised or Unsupervised Learning

Blog banner

Cyber Crime Investigation In The Era Of Big Data

Blog banner

How Puppet Shows and Role Play Teach Empathy to Preschoolers

Blog banner

I/O Buffering

Blog banner

Blockchain technology: security risk and prevention

Blog banner

"Life as a Part-time Student"

Blog banner

Buffering

Blog banner

Paging

Blog banner

Wiretapping

Blog banner

Major achievement

Blog banner

Mumbai

Blog banner

How to use open SSL for web server - browser communication

Blog banner

IO Buffers

Blog banner

Data Structures

Blog banner

Exploring Virtual Machines and Computer Forensic Validation Tools

Blog banner

OS Evolution Achievements

Blog banner

MailChimp

Blog banner

The Procedural Framework for Corporate High-Tech Investigations

Blog banner

Interesting fact about kangaroo.

Blog banner

Risk factors in service transistion

Blog banner

Importance of modern technology era

Blog banner

Understanding Input Based Keylogger Activation Systems: Risks and Mitigation

Blog banner

ZOHO

Blog banner

A Statistical Analysis of Player Performance and their Value in cricket

Blog banner