wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Concurrency:Deadlock and Starvation

profile
Nihar Kotadia
Aug 13, 2024
0 Likes
0 Discussions
159 Reads

In Operating Systems, concurrency refers to the ability of multiple processes to execute simultaneously, sharing common resources such as CPU time, memory, and I/O devices. However, this concurrency can lead to two major problems: Deadlock and Starvation.

Deadlock:

A deadlock is a situation where two or more processes are blocked indefinitely, each waiting for the other to release a resource. This occurs when the following four conditions are met:

  1. Mutual Exclusion: Two or more processes require exclusive access to a common resource.
  2. Hold and Wait: A process holds a resource and waits for another resource, which is held by another process.
  3. No Preemption: The operating system cannot preempt a process holding a resource.
  4. Circular Wait: A circular chain of processes exists, where each process waits for a resource held by the next process in the chain.

Starvation:

Starvation is a situation where a process is unable to gain access to a shared resource and is indefinitely postponed. This occurs when a process is waiting for a resource that is being held by another process, and the waiting process is not given a chance to execute.

Causes of Starvation:

  1. Priority Scheduling: A process with a lower priority may be starved of CPU time if a higher-priority process is always running.
  2. Resource Constraints: A process may be starved of a resource if another process is holding onto it for an extended period.
  3. Scheduling Algorithms: Certain scheduling algorithms, such as First-Come-First-Served (FCFS), can lead to starvation.

Prevention of Deadlock and Starvation:

To prevent deadlock and starvation, operating systems use various techniques, including:

  1. Resource Ordering: Ordering resources to prevent circular waits.
  2. Banker's Algorithm: A resource allocation algorithm that prevents deadlock.
  3. Priority Ceiling Protocol: A protocol that prevents starvation by assigning a priority ceiling to each resource.
  4. Scheduling Algorithms: Using scheduling algorithms that prevent starvation, such as Round Robin (RR) and Multilevel Feedback Queue (MFQ).

Comments ()


Sign in

Read Next

Why Friendship at Work is Important

Blog banner

Excel records

Blog banner

Ubiquitous Computing

Blog banner

MOVEMBER

Blog banner

Instagram

Blog banner

Continual service improvement vs maintenance phase in IT

Blog banner

It's all about our Brain.- The Brain Metaphor

Blog banner

Routers

Blog banner

IT service level agreement

Blog banner

Modern OS

Blog banner

MYNTRA

Blog banner

How India made the GIS its Own, and its Use in Infrastructural Developments

Blog banner

VIRTUAL MACHINES

Blog banner

"Mahakali cave"

Blog banner

Twisted world

Blog banner

(Input/Output) in os

Blog banner

Deadlock and Starvation in an Operating System

Blog banner

A-B-C of Networking: Part-1 (Basics)

Blog banner

CRISP-DM Methodology

Blog banner

6 Digital Marketing Trends You Must Watch Out For In 2022

Blog banner

Modern Operating System - Khush Bagaria

Blog banner

Data Visualization

Blog banner

What is thread and multithreading ?

Blog banner

Kernel in Operating System

Blog banner

Principles of Concurrency

Blog banner

Building a Better You: Fitness Tips and Inspiration.

Blog banner

How to write a cover letter

Blog banner

Deadlock Prevention

Blog banner

Why is online marketing is important in current scenario

Blog banner

Computer security techniques

Blog banner

DMZ: Your Secret Weapon for Data Security

Blog banner

How the mobile IP is used in GSM architecture.

Blog banner

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

Blog banner

Modern Operating System

Blog banner

Dove’s Real Beauty Campaign- Case Study

Blog banner

Big Data Architecture

Blog banner

Video games

Blog banner

10 Amazing facts about Tokyo Ghoul

Blog banner

PERSONAL STORIES

Blog banner

Spyware

Blog banner

Socket Programming in Java

Blog banner

Short note on expert system

Blog banner