wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

CONCURRENCY: MUTUAL EXCLUSION AND SYNCHRONIZATION-het karia

profile
HET KARIA
Jul 04, 2024
0 Likes
0 Discussions
107 Reads

CONCURRENCY: MUTUAL EXCLUSION AND SYNCHRONIZATION

Concurrency is the execution of multiple instruction sequences at the same time. It happens in the operating system when there are several process threads running in parallel. The running process threads always communicate with each other through shared memory or message passing. Concurrency results in the sharing of resources resulting in problems like deadlocks and resource starvation. 

It helps in techniques like coordinating the execution of processes, memory allocation, and execution scheduling for maximizing throughput. 

During concurrent execution of processes, processes need to enter the critical section (or the section of the program shared across processes) at times for execution. It might happen that because of the execution of multiple processes at once, the values stored in the critical section become inconsistent. In other words, the values depend on the sequence of execution of instructions – also known as a race condition. The primary task of process synchronization is to get rid of race conditions while executing the critical section.

This is primarily achieved through mutual exclusion.

 Mutual Exclusion is a property of process synchronization that states that “no two processes can exist in the critical section at any given point of time”. The term was first coined by Dijkstra. Any process synchronization technique being used must satisfy the property of mutual exclusion, without which it would not be possible to get rid of a race condition.

Mutual exclusion is only applicable when the following conditions are met :

1. When using shared resources, it is important to ensure mutual exclusion between various processes. There cannot be two processes running simultaneously in either of their critical sections.

2. It is not advisable to make assumptions about the relative speeds of the unstable processes.

3. For access to the critical section, a process that is outside of it must not obstruct another process.

4. Its critical section must be accessible by multiple processes in a finite amount of time; multiple processes should never be kept waiting in an infinite loop.

Requirements for Mutual Exclusion Any facility or capability that is to provide support for mutual exclusion should meet the following requirements:

1. Mutual exclusion must be enforced: Only one process at a time is allowed into its critical section, among all processes that have critical sections for the same resource or shared object.

2. A process that halts in its noncritical section must do so without interfering with other processes.

 3. It must not be possible for a process requiring access to a critical section to be delayed indefinitely: no deadlock or starvation.

4. When no process is in a critical section, any process that requests entry to its critical section must be permitted to enter without delay.

5. No assumptions are made about relative process speeds or number of processors.

6. A process remains inside its critical section for a finite time only

Approaches To Implementing Mutual Exclusion

  1. Software method: Leave the responsibility to the processes themselves. These methods are usually highly error-prone and carry high overheads.
  2.  Hardware method: Special-purpose machine instructions are used for accessing shared resources. This method is faster but cannot provide a complete solution. Hardware solutions cannot give guarantee the absence of deadlock and starvation.

    3. Programming language method: Provide support through the operating system or through the programming language.


Comments ()


Sign in

Read Next

note taker app

Blog banner

Cyber Bullying - Neeta Vonkamuti

Blog banner

How to Avoid being a Victim of Cybercrime

Blog banner

How to use GIT & GITHUB

Blog banner

Sleep Matters: The Science Behind Toddler Naps

Blog banner

Challenges and risks in service operations

Blog banner

AutoML: The Future of Automated Data Science

Blog banner

Cyber Forensics on IOT Devices

Blog banner

What is E-commerce

Blog banner

The Importance of Data Quality Management in Data Science

Blog banner

Deming’s Process

Blog banner

GIS Applications: How Different Industries are Leveraging Geospatial Data

Blog banner

Decoding the Weave — How to Identify Original Patola Art on a Fabric

Blog banner

THE ROLE OF CYBER FORENSICS IN CRIMINOLOGY

Blog banner

Simple AI Symptom Diagnosis Using LISP – Rule-Based Expert System

Blog banner

Career v/s Job : Choose your passion

Blog banner

Self defence

Blog banner

Service Operations Principles

Blog banner

Severe landslides continue to cause concern in Joshimath, Uttarakhand

Blog banner

Modern Operating Systems

Blog banner

Importance of self defence for girls

Blog banner

WAKE UP ITS FOOD o'CLOCK...!!!!!

Blog banner

Health and fitness

Blog banner

Health and fitness

Blog banner

Types of E-Commerce

Blog banner

10 Survival Tips that might save your life

Blog banner

Operating system and overviews

Blog banner

Top 3 Places To Stay In Vienna

Blog banner

Broken Authentication Attacks

Blog banner

"The Benefits of Using GIS in Agriculture"

Blog banner

Affiliate Marketing V/S Influencer Marketing

Blog banner

Respondo Launches Revolutionary Video Discussion App

Blog banner

Phishing

Blog banner

A-B-C of Networking: Part-2 (Components)

Blog banner

How to setup a professional looking business account on Instagram?

Blog banner

Why Consistency in Eating Habits Matters and How Meal Maharaj Makes It Easy

Blog banner

Deadlock in operating system

Blog banner

Introduction to Data Science: Life Cycle & Applications

Blog banner

Process, process creation and process termination

Blog banner

Flipkart

Blog banner

THE DESIRE OF MANY

Blog banner

About myself

Blog banner