Banker’s Algorithm in OS: An Ultimate Guide
Jun 01, 2026 4 Min Read 67 Views
(Last Updated)
Imagine multiple people trying to withdraw money from a bank at the same time. If a bank starts issuing too much cash, then there will not be enough cash for everyone’s future needs. If the bank blindly accepts all requests, it may eventually be unable to service its customers and end up losing all its money.
Operating systems face a similar challenge while managing resources such as memory, files, CPU cycles, printers, and I/O devices. Multiple processes continuously request and release resources, and if these requests are not managed carefully, the system can enter a dangerous condition known as a deadlock.
This is where the banker’s algorithm of OS comes into play.
The banker’s algorithm is one of the most well-known deadlock avoidance algorithms in operating systems. The algorithm is designed by Edsger Dijkstra, who thinks of himself as a cautious banker that lends money only when it is safe to do so. Whereas, after a deadlock occurs, it is reactive to determine whether a request for a resource will cause the system to enter an unsafe state in the future.
Although there are a variety of practical approaches used in modern operating systems, the banker’s algorithm is a fundamental concept in computer science.
Let’s discuss the working principle, data structures, safety checks, real world relevance, pros and cons of the banker’s algorithm and detailed examples that explain this concept better in this blog.
Table of contents
- What is Banker's Algorithm in Operating System?
- Understanding Deadlock Before Learning Banker’s Algorithm
- Why Banker’s Algorithm is Important?
- Key Objectives
- Safe Resource Allocation
- Deadlock Avoidance
- Efficient Resource Tracking
- Controlled Execution
- Core Concepts Behind Banker’s Algorithm
- Available Resources
- Maximum Need
- Allocation
- Need
- Safe State
- Unsafe State
- Data Structures Used in Banker’s Algorithm
- Available Vector
- Maximum Matrix
- Allocation Matrix
- Need Matrix
- Working Principle of Banker’s Algorithm
- Step 1: Process Requests Resources
- Step 2: Check Request Validity
- Step 3: Temporary Allocation
- Step 4: Safety Algorithm Runs
- Step 5: Final Decision
- Safety Algorithm in Banker’s Algorithm
- Safety Algorithm Steps
- Wrapping it Up:
- FAQs:
- What is Banker’s Algorithm?
- Why is it called Banker’s Algorithm?
- What is a deadlock?
- What is a safe state?
What is Banker’s Algorithm in Operating System?
The banker’s algorithm in an operating system is a deadlock avoidance algorithm (also known as the Banker algorithm) that is used to allocate resources among multiple processes safely.
The algorithm determines if granting a resource request will maintain a safe state. The request is granted if the state is safe. If not, the request is refused for the time being until sufficient resources are available.
The term “banker” is derived from the banking metaphor:
- The bank will never lend out its entire funds.
- It ensures enough balance exists to satisfy future withdrawals.
- It thoroughly considers each loan application before it is approved.
In the same way, operating system also checks all the process requests before allocating resources.
Understanding Deadlock Before Learning Banker’s Algorithm
To fully understand the banker’s algorithm in OS, it is important to first understand deadlock.
A deadlock occurs when multiple processes wait indefinitely for resources held by each other.
Simple Example of Deadlock
Consider two processes:
- Process P1 is waiting for Resource B, and has Resource A.
- Process P2 is waiting for Resource A.
Neither process can proceed because both are waiting forever.
This situation causes a part of the operating system to freeze.
Deadlocks are dangerous in that they:
- Reduce system performance
- Waste resources
- Freeze applications
- Need manual intervention for severe cases
The banker’s algorithm gets around this issue by making an advance prediction of the unsafe allocations.
Why Banker’s Algorithm is Important?
The banker’s algorithm in OS plays an important educational and theoretical role because it introduces the concept of proactive resource management.
The algorithm does not cause deadlocks but prevents them.
Key Objectives
1. Safe Resource Allocation
If the system is not stable, no resources will be granted.
2. Deadlock Avoidance
The algorithm predicts dangerous states before they happen.
3. Efficient Resource Tracking
It carries out a detailed record of the needs of the process and the resources available.
4. Controlled Execution
Processes execute smoothly without indefinite waiting.
Core Concepts Behind Banker’s Algorithm
Before getting to know the algorithm itself there are a few important concepts that should be understood.
1. Available Resources
These are resources presently available in the system.
Example:
- 3 printers available
- 2 memory blocks free
These are resources that are available to the operating system to meet process requests.
2. Maximum Need
Each process specifies the maximum number of resources it might need when running.
Example:
- Process P1 may need at most 5 memory units.
- Process P2 may need at most 3 printers.
This information is crucial to the operating system to make safety predictions.
3. Allocation
Allocation is the resources that are allocated to a process at the present time.
Example:
- P1 already holds 2 printers.
- P2 currently uses 1 memory block.
4. Need
Need represents the “balance of resources needed” by a process.
Formula:
Need=Maximum−Allocation
If:
- Maximum = 7
- Allocation = 3
Then:
Need = 4
5. Safe State
If all the processes can be executed in some order without causing deadlock, the system is said to be in safe state.
Safe states ensure system stability.
6. Unsafe State
An unsafe state does not necessarily mean deadlock has already occurred.
It simply means the possibility of deadlock exists in the future.
The banker’s algorithm avoids entering unsafe states.
The Banker’s Algorithm was developed by Edsger W. Dijkstra in 1965 as a strategy for deadlock avoidance in operating systems. Its name comes from the analogy of a cautious banker who grants loans only when doing so will still leave enough resources available to satisfy all customers eventually. Before approving a resource request, the algorithm checks whether the system will remain in a safe state. If granting the request could lead to a situation where processes might become permanently blocked, the request is delayed, helping the system avoid deadlocks before they occur.
Data Structures Used in Banker’s Algorithm
The banker’s algorithm in OS relies on multiple matrices and vectors.
These structures help the operating system track resource allocation.
1. Available Vector
Stores currently available instances of each resource.
Example:
| Resource | Available |
| A | 3 |
| B | 2 |
| C | 1 |
2. Maximum Matrix
Shows the maximum demand of every process.
| Process | A | B | C |
| P1 | 7 | 5 | 3 |
| P2 | 3 | 2 | 2 |
3. Allocation Matrix
Shows resources currently allocated.
| Process | A | B | C |
| P1 | 0 | 1 | 0 |
| P2 | 2 | 0 | 0 |
4. Need Matrix
Stores remaining resource requirements.
Formula:
Need[i,j]=Max[i,j]−Allocation[i,j]
Working Principle of Banker’s Algorithm
The banker’s algorithm works by checking system safety before resource allocation.
The process follows several logical steps.
Step 1: Process Requests Resources
A process asks for resources.
Example:
- P1 requests 2 units of Resource A.
Step 2: Check Request Validity
The operating system checks:
- Is the request less than the process need?
- Are enough resources available?
If both conditions are satisfied, the algorithm proceeds.
Step 3: Temporary Allocation
The system temporarily allocates the requested resources.
This is only a simulation.
Step 4: Safety Algorithm Runs
The operating system checks whether all processes can still finish successfully.
If yes:
- Request is approved.
If no:
- Request is denied.
Step 5: Final Decision
The system either:
- Grants resources permanently
- Rolls back temporary allocation
This decision prevents unsafe states.
Safety Algorithm in Banker’s Algorithm
The safety algorithm determines whether the system is currently safe.
Safety Algorithm Steps
Step 1: Initialize
Create two vectors:
- Work = Available resources
- Finish = False for all processes
Step 2: Find Eligible Process
Find a process whose needs are less than available resources.
Condition:
Needi ≤ Work
Step 3: Execute Process Virtually
If a process can execute:
- Add its allocated resources back to Work
- Mark Finish = True
Step 4: Repeat
Continue until:
- All processes finish safely
OR - No eligible process exists
Step 5: Determine Safety
If all processes finish:
- System is safe
Otherwise:
- System is unsafe
Wrapping it Up:
The banker’s algorithm in OS is an important deadlock avoidance technique that helps operating systems allocate resources safely without entering unsafe states. Although modern systems may not use it directly, the algorithm remains highly valuable for understanding resource management, process scheduling, and system stability. For students and professionals, learning banker’s algorithm builds a strong foundation in operating system concepts and improves problem-solving skills in concurrent computing environments.
FAQs:
1. What is Banker’s Algorithm?
Banker’s Algorithm is a deadlock avoidance algorithm used to allocate resources safely among processes.
2. Why is it called Banker’s Algorithm?
It works like a cautious banker that only grants resources when the system remains safe.
3. What is a deadlock?
A deadlock occurs when processes wait indefinitely for resources held by each other.
4. What is a safe state?
A safe state means all processes can complete without causing deadlock.



Did you enjoy this article?