wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

semaphores

profile
Khyati Sanghavi
Aug 14, 2024
0 Likes
0 Discussions
50 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

Pilgrimage at LOC: A privilege and a paradox

Blog banner

Fault Tolerance

Blog banner

Wreck

Blog banner

Education?

Blog banner

History of ITIL

Blog banner

Security in Cloud Computing Environment using cryptography - Rushabh Modi

Blog banner

Working with AES cryptographic algorithm using crypto++

Blog banner

I/O buffer and its techniques

Blog banner

Harsh Rathod

Blog banner

Partnership in Learning: How Parent Involvement Shapes a Child’s Early Education

Blog banner

"Audit" In Data Science

Blog banner

MEMORY HIERARCHY

Blog banner

Memory management

Blog banner

Uber

Blog banner

Uniprocessor Scheduling

Blog banner

Paging

Blog banner

What is OS Fingerprinting?

Blog banner

Hash password! Is it really secured?

Blog banner

Metasploit

Blog banner

Virtual Memory

Blog banner

LIMITED EDITION

Blog banner

Intrusion Detection System

Blog banner

Memory input output management

Blog banner

Deadlock in operating system

Blog banner

Top 5 Post-Wedding Skin Care Tips

Blog banner

Yoga in INDIA and ABROAD

Blog banner

PERSONALITY DEVELOPMENT

Blog banner

OS DESIGN CONSIDERATIONS FOR MULTIPROCESSOR

Blog banner

Binary Search Tree (BST) in Data Structure

Blog banner

Modern operating system

Blog banner

Challenges of Digital forensics in cloud computing environment

Blog banner

Python as a tool for Data science task & project

Blog banner

Direct Memory Access

Blog banner

Deadlock

Blog banner

LEMON PICKLE SWEET AND MILD HOT

Blog banner

FILE SHARING

Blog banner

POSITIVE ATTITUDE IN LIFE

Blog banner

MODERN OPERATING SYSTEM

Blog banner

Proof-of-Stake (PoS)

Blog banner

MODERN OPERATING SYSTEM

Blog banner

MAJOR ACHIEVEMENTS OF OS

Blog banner

Ethical Issues in Data Science and Role of Data Science in Smart Cities

Blog banner