wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

semaphores

profile
Khyati Sanghavi
Aug 14, 2024
0 Likes
0 Discussions
51 Reads

Khyati sanghavi ,53003230018

Semaphores

A semaphore is an integer variable used for signalling among processes. It has three atomic operations:

  1. Initialisation: The semaphore is initialised with a non-negative integer value, which represents the number of available slots or resources.
  2. Decrement (semWait): When a process wants to access a shared resource, it decrements the semaphore value. If the resulting value is non-negative, the process can proceed. If the value becomes negative, the process is blocked and added to a waiting queue.
  3. Increment (semSignal): When a process releases a shared resource, it increments the semaphore value. If there are processes waiting in the queue, one of them is awakened and allowed to proceed.

How Semaphores Work

The value of a semaphore determines how many processes can proceed without blocking. When a process decrements the semaphore and the value becomes negative, it means that there are no more available slots or resources. The process is then blocked, waiting for another process to release a resource and increment the semaphore.

When a process increments the semaphore, it signals that a resource has been released. If there are processes waiting in the queue, one of them is awakened and allowed to proceed. This process can then decrement the semaphore and access the shared resource.

Advantages of Semaphores

  • Supports coordination between multiple processes
  • Provides a flexible and robust way to manage shared resources.
  • It can be used to implement critical sections in a program.
  • It can be used to avoid race conditions.

Disadvantages of Semaphores

  • It Can lead to performance degradation due to overhead associated with wait and signal operations.
  • Can result in deadlock if used incorrectly.
  • It can cause performance issues in a program if not used properly.
  • It can be difficult to debug and maintain.
  • It can be vulnerable to certain types of attacks, such as denial of service attacks.

Comments ()


Sign in

Read Next

Starvation

Blog banner

Apache Kafka

Blog banner

ITIL Version 3 and 4 differenciation?

Blog banner

memory management

Blog banner

How to Prepare Your Child for Their First Day of School?

Blog banner

The 60-Minute Window: What to Do (And What NOT to Do) When You Knock Out a Tooth

Blog banner

Whatsapp Messenger

Blog banner

"Games and the future"

Blog banner

Business Engineering

Blog banner

Domain Name System

Blog banner

Fudgy Tahini Date Chocolate Bars

Blog banner

Proof-of-Stake (PoS)

Blog banner

Operating system evolution

Blog banner

Cross site scripting Attack

Blog banner

Tiranga - Abbas Haveliwala

Blog banner

OS Assignment-3

Blog banner

Elegant fashion style

Blog banner

Population

Blog banner

Cryptanalysis tool

Blog banner

MY FIRST BLOG?

Blog banner

5 Powerful Mindset Shifts To Make 2026 Your Breakthrough Year

Blog banner

Be you

Blog banner

Types of Threads

Blog banner

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

Blog banner

Bharat Maps

Blog banner

Virtual Memory

Blog banner

Security issues

Blog banner

Retiring ISS

Blog banner

From Websites To Super Apps For Digital User Experience

Blog banner

Deadlock in Operating System

Blog banner

The Role of cryptography in cyber security

Blog banner

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

Blog banner

Virtual Memory

Blog banner

What do you mean by online marketing and why do you need to know about it

Blog banner

Jira Software

Blog banner

From Model Mistakes to Metrics

Blog banner

Artificial Intelligence and I

Blog banner

Policies for Service Transition

Blog banner

Hacking of web server and application

Blog banner

Krishna Rao SAP ID--53003230076

Blog banner

Deadlock Prevention

Blog banner

Understanding Univariate, Bivariate, and Multivariate Analysis in Data Science

Blog banner