wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Deadlock in operating system

profile
NAHIDA SHAIKH
Aug 15, 2024
0 Likes
0 Discussions
111 Reads

Deadlock in an operating system occurs when a set of processes become stuck in a situation where none of them can proceed because each process is waiting for a resource that another process holds. This creates a cycle of dependencies that prevents any of the involved processes from continuing.


### Necessary Conditions for Deadlock

For a deadlock to occur, four conditions must be present simultaneously:


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


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


3. **No Preemption**: Resources cannot be forcibly taken from a process. They can only be released voluntarily by the process holding them.


4. **Circular Wait**: There exists a set of processes \(\{P_1, P_2, \dots, P_n\}\) such that \(P_1\) is waiting for a resource held by \(P_2\), \(P_2\) is waiting for a resource held by \(P_3\), and so on, with \(P_n\) waiting for a resource held by \(P_1\).


### Deadlock Handling Methods

There are several strategies for handling deadlocks:


1. **Deadlock Prevention**: Modify the system design to ensure that at least one of the necessary conditions for deadlock cannot hold. This could involve:


- **Eliminating Mutual Exclusion**: Make resources sharable, if possible.

- **Eliminating Hold and Wait**: Require processes to request all required resources at once.

- **Eliminating No Preemption**: Allow the system to forcibly take resources from a process.

- **Eliminating Circular Wait**: Impose an order on resource acquisition.


2. **Deadlock Avoidance**: Dynamically examine the resource allocation state to ensure that a circular wait condition never occurs. The **Banker’s algorithm** is a classic example of a deadlock avoidance algorithm.


3. **Deadlock Detection and Recovery**: Allow deadlocks to occur but have the system detect them and take action to recover. Recovery can involve:


- **Terminating Processes**: Killing one or more processes to break the deadlock.

- **Resource Preemption**: Temporarily taking resources away from some processes and reallocating them.


4. **Ignoring Deadlock**: In some systems, deadlock is considered a rare event, so it's ignored. This approach is used by some operating systems like UNIX, where the system does nothing to prevent or avoid deadlock, relying instead on rebooting the system if a deadlock occurs.


Understanding deadlocks and how to handle them is crucial in the design and operation of reliable and efficient operating systems.


Comments ()


Sign in

Read Next

Operating Systems

Blog banner

Web Site

Blog banner

Deadlock

Blog banner

Process Creation

Blog banner

Travelling blog

Blog banner

10 Signs That Prove YOU are his FIRST priority.

Blog banner

Modern Operating Systems.

Blog banner

The Difference Between Plaque and Tartar Explained Simply

Blog banner

5 People who claimed to have Time Traveled

Blog banner

Security issues

Blog banner

AOL Mail

Blog banner

TAILS OS

Blog banner

Pilgrimage at LOC: A privilege and a paradox

Blog banner

Raid

Blog banner

Embracing the power of Modern Machine UNIX

Blog banner

How to make Pancakes

Blog banner

About myself

Blog banner

Current Trends in GIS and Remote Sensing(Ocean Applications)

Blog banner

Blockchain uses and use cases

Blog banner

Benefits of Yoga

Blog banner

Texting is actually better than talking in person

Blog banner

What are NFT s?

Blog banner

Ghee vs. Coconut Oil vs. Mustard Oil: Which Cooking Fat Wins for Indian Food?

Blog banner

Linux Memory Management

Blog banner

Secure Hypertext transfer protocol

Blog banner

DISK SCHEDULING

Blog banner

Multiprocessor and Multicore Organization

Blog banner

Electronic Evidence in Cyber Forensics

Blog banner

Types of Hackers.

Blog banner

Different memory allocation strategies

Blog banner

The Role of cryptography in cyber security

Blog banner

What is Email? Uses of Emails

Blog banner

What is HTML?

Blog banner

Memory management

Blog banner

Session Vulnerabilities

Blog banner

Safeguarding Your Data: The Importance of Wireless Encryption

Blog banner

A Heartfelt Act of Kindness

Blog banner

1.1 basic elements

Blog banner

Cyber Forensics on IOT Devices

Blog banner

Social Network Analysis: Ek Naya Nazariya Data Science Mein

Blog banner

Evolution of Operating System

Blog banner

INTRODUCTION

Blog banner