Implementation of Banker's Algorithm

Pseudo Code

Safety Algorithm

1. Let Work and Finish be vectors of length 
   m and n, respectively. Initialize:
       Work = Available
       Finish [i] = false for i - 1,3, …, n.

2. Input from the user
    (a) Allocation Matrix
    (b) Allocation Matrix
    (c) Available Resources

3. Calculate Need Matrix:
    for each index (i,j):
        Need[i][j] = Maximum[i][j] - Allocation[i][j]
        

 4. If Finish [i] == true
    for all i, then the system is in a safe state.
    Resource-Request Algorithm for Process Pi
    Request = request vector for process Pi.
    If Request i [j] = k then 
      process Pi wants k instances of resource type Rj.
        

5. If Request [i]=Need [i] go to step 4.
    Otherwise, raise error condition, 
    since process has exceeded its maximum claim.
        

6. If Request [i]=Available, go to step 4.
    Otherwise Pi must wait, 
    since resources are not available.
    Pretend to allocate requested resources to 
    Pi by modifying the state as follows:
       Available = Request [i];
       Allocation [i] = Allocation [i] + Request [i];
       Need [i] = Need [i] – Request [i];
    If safe the resources are allocated to Pi.
    If unsafe Pi must wait, 
    and the old resource-allocation state is restored.
        

Simulation Area

Input Field

Enter the Number of Process n:

Enter the Number of Resources m:

Output Field