wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Deadlock and Starvation

profile
Niraj Parulekar
Aug 13, 2024
0 Likes
0 Discussions
93 Reads

1] Deadlock :
                       Deadlock is a situation where a set of processes becomes stuck, each waiting for a resource that the other  processes in the set are holding. This results in a cycle of dependencies where no process can proceed, leading to a complete halt in the system. Deadlock typically occurs under four conditions, known as        Coffman’s conditions:

1. Mutual Exclusion: At least one resource must be held in a non-shareable mode, meaning that only one                                               process can use the resource at a time.

2. Hold and Wait: A process holding at least one resource is waiting to acquire additional resources that are                                         currently being held by other processes.

3. No Preemption: A resource can be released only voluntarily by the process holding it after that process has                                      completed its task.

4. Circular Wait: There must be a circular chain of processes, where each process holds at least one resource                                 that the next process in the chain needs.

--Deadlock prevention, avoidance, detection, and recovery are the primary strategies used to handle deadlocks.

  Prevention involves breaking one of Coffman’s conditions, whereas avoidance uses algorithms like the Banker’s    Algorithm to ensure that the system remains in a safe state. Detection algorithms can identify deadlock when it      occurs, and recovery techniques involve terminating or rolling back processes to break the deadlock.

2] Starvation :
                    Starvation, on the other hand, occurs when a process is perpetually denied the resources it needs to proceed. Unlike deadlock, where processes are waiting on each other in a cycle, starvation involves one or more processes being overlooked in favor of others. This often happens in scheduling algorithms that prioritize certain processes, causing lower-priority processes to wait indefinitely.

For example, in a priority-based scheduling system, a low-priority process might never get CPU time if higher-priority processes continuously arrive. Starvation is particularly problematic in systems where fairness and equitable resource allocation are critical.

To mitigate starvation, algorithms such as aging are used, where the priority of a process increases the longer it waits, eventually ensuring that it will receive the necessary resources.


Comments ()


Sign in

Read Next

Open Source Project By Google

Blog banner

Simple Ways of Avoiding Basic Mistakes in Smart Phone Security

Blog banner

Different memory allocation strategies

Blog banner

What is Network Security?

Blog banner

CONCURRENCY

Blog banner

Cherish the Craft — Essential Tips to Maintain Your Patola Collection

Blog banner

Session Hijacking Techniques

Blog banner

What is 'Multi-core and Multi-threading' ?

Blog banner

My favourite food

Blog banner

Denial-of-Service and Distributed Denial-of-Service Attack Techniques

Blog banner

Phishing

Blog banner

S-Tool : Steganography

Blog banner

What Function Does SEO Serve in Digital Marketing?

Blog banner

Go Daddy

Blog banner

What is service level Agreement?

Blog banner

Components of GIS

Blog banner

Process in OS

Blog banner

Firewall / IDS Evasion Techniques

Blog banner

The evolution of OS

Blog banner

JIRA SOFTWARE

Blog banner

memory cache

Blog banner

Data Science in Mental Health Prediction

Blog banner

Define Instagram.

Blog banner

Mutual exclusion

Blog banner

File management

Blog banner

Design Considerations for Disk Cache Management

Blog banner

HTML vs HTML5

Blog banner

Technical SEO : Total Guide

Blog banner

Operating system

Blog banner

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

Blog banner

Data Acquisition in Cyber Forensics

Blog banner

Procedure For Corporate High-Tech Investigations

Blog banner

IoT Evolution

Blog banner

The Essential Guide to Dynamic Arrays vs. Linked Lists: Which to Use and When ?

Blog banner

Virus

Blog banner

MODERN OPERATING SYSTEM

Blog banner

Deadlock and starvation

Blog banner

Reconnaissance

Blog banner

LEMON PICKLE (NIMBU KA ACHAR)

Blog banner

Mumbai Metro 3

Blog banner

Service transistion under difficult conditions

Blog banner

Importance Of Blockchain

Blog banner