FACTOID # 105: The United States tops the world in plastic surgery procedures. Next comes Mexico.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Banker's algorithm

The Banker's algorithm is a resource allocation and deadlock avoidance algorithm developed by Edsger Dijkstra that tests for safety by simulating the allocation of pre-determined maximum possible amounts of all resources, and then makes a "safe-state" check to test for possible deadlock conditions for all other pending activities, before deciding whether allocation should be allowed to continue. In strategic planning, a resource-allocation decision is a plan for using available resources, especially in the near term, to achieve goals for the future. ... A deadlock is a situation wherein two or more competing actions are waiting for the other to finish, and thus neither ever does. ... In mathematics, computing, linguistics and related disciplines, an algorithm is a procedure (a finite set of well-defined instructions) for accomplishing some task which, given an initial state, will terminate in a defined end-state. ... Edsger Dijkstra (courtesy Brian Randell) Prof Dr Edsger Wybe Dijkstra (Rotterdam, May 11, 1930 – Nuenen, August 6, 2002; IPA: ) was a Dutch computer scientist. ... A resource, also referred to as system resource, is any physical or virtual system component of a computer system with limited availability. ...


The algorithm was developed in the design process for the THE operating system and originally described (in Dutch) in EWD108[1]. The name is by analogy with the way that bankers account for liquidity constraints. Look up the in Wiktionary, the free dictionary. ... An operating system (OS) is a computer program that manages the hardware and software resources of a computer. ... Market liquidity is a business or economics term that refers to the ability to quickly buy or sell a particular item without causing a significant movement in the price. ...

Contents

Algorithm

The Banker's algorithm is run by the operating system whenever a process requests resources.[2] The algorithm prevents deadlock by denying or postponing the request if it determines that accepting the request could put the system in an unsafe state (one where deadlock could occur). In computing, a process is a running instance of a program, including all variables and other states. ...


Resources

For the Banker's algorithm to work, it needs to know three things:

  • How much of each resource each process could possibly request
  • How much of each resource each process is currently holding
  • How much of each resource the system has available

Some of the resources that are tracked in real systems are memory, semaphores and interface access. To meet Wikipedias quality standards, this article or section may require cleanup. ... A semaphore is a protected variable (or abstract data type) and constitutes the classic method for restricting access to equivalent shared resources (e. ... An interface defines the communication boundary between separate computer components. ...


Example

Assuming that the system distinguishes between four types of resources, (A, B, C and D), the following is an example of how those resources could be distributed. Note that this example shows the system at an instant before a new request for resources arrives. Also, the types and number of resources are abstracted. Real systems would deal with much larger amounts of each resource for one thing.

 Available system resources: A B C D 3 1 1 2 
 Processes (currently allocated resources): A B C D P1 1 2 2 1 P2 1 0 3 3 P3 1 1 1 0 
 Processes (maximum resources): A B C D P1 3 3 2 2 P2 1 2 3 4 P3 1 1 5 0 

Safe and Unsafe States

A state (as in the above example) is considered safe if it is possible for all processes to finish executing (terminate). Since the system cannot know when a process will terminate, or how much resources it will request by then, it assumes that all processes will eventually attempt to acquire their stated maximum resources and terminate soon afterward. This is a reasonable assumption in most cases since the system is not particularly concerned with how long each process runs (at least not from a deadlock avoidance perspective). Also, if a process terminates without acquiring its maximum resources, it only makes it easier on the system.


Given that assumption, the algorithm determines if a state is safe by trying to find a hypothetical set of requests by the processes that would allow each to acquire its maximum resources and then terminate (returning its resources to the system). Any state where no such set exists is an unsafe state.


Example

We can show that the state given in the previous example is a safe state by showing that it is possible for each process to acquire its maximum resources and then terminate.

  1. P1 acquires 2 A, 1 B and 1 D more resources, achieving its maximum
    • The system now still has 1 A, no B, 1 C and 1 D resource available
  2. P1 terminates, returning 3 A, 3 B, 2 C and 2 D resources to the system
    • The system now has 4 A, 3 B, 3 C and 3 D resources available
  3. P2 acquires 2 B and 1 D extra resources, then terminates, returning all its resources
    • The system now has 5 A, 3 B, 6 C and 6 D resources
  4. P3 acquires 4 C resources and terminates
    • The system now has all resources: 6 A, 4 B, 7 C and 6 D
  5. Because all processes were able to terminate, this state is safe

Note that these requests and acquisitions are hypothetical. The algorithm generates them to check the safety of the state, but no resources are actually given and no processes actually terminate. Also note that the order in which these requests are generated – if several can be fulfilled – doesn't matter, because all hypothetical requests let a process terminate, thereby increasing the system's free resources.


For an example of an unsafe state, look at what would happen if process 2 were holding 1 more unit of resource B at the beginning.


Requests

When the system receives a request for resources, it runs the Banker's algorithm to determine if it is safe to grant the request. The algorithm is fairly straight forward once the distinction between safe and unsafe states is understood.

  1. Can the request be granted?
    • If not, the request is impossible and must either be denied or put on a waiting list
  2. Assume that the request is granted
  3. Is the new state safe?
    • If so grant the request
    • If not, either deny the request or put it on a waiting list

Whether the system denies an impossible or unsafe request or makes it wait is an operating system specific decision.


Example

Continuing the previous examples, assume process 3 requests 2 units of resource C.

  1. There is not enough of resource C available to grant the request
  2. The request is denied


On the other hand, assume process 3 requests 1 unit of resource C.

  1. There are enough resources to grant the request
  2. Assume the request is granted
    • The new state of the system would be:
 A B C D Free 3 1 0 2 P1 1 2 2 1 P2 1 0 3 3 P3 1 1 2 0 
  1. Determine if this new state is safe
    1. P1 can acquire 2 A, 1 B and 1 D resources and terminate
    2. Then, P2 can acquire 2 B and 1 D resources and terminate
    3. Finally, P3 can acquire 3 C resources and terminate
    4. Therefore, this new state is safe
  2. Since the new state is safe, grant the request


Finally, assume that process 2 requests 1 unit of resource B.

  1. There are enough resources
  2. Assuming the request is granted, the new state would be:
 A B C D Free 3 0 1 2 P1 1 2 2 1 P2 1 1 3 3 P3 1 1 1 0 
  1. Is this state safe?
    • P1 is unable to acquire enough B resources
    • P2 is unable to acquire enough B resources
    • P3 is unable to acquire enough C resources
    • No process can acquire enough resources to terminate, so this state is not safe
  2. Since the state is unsafe, deny the request

Note that in this example, no process was able to terminate. It is possible that some processes will be able to terminate, but not all of them. That would still be an unsafe state.


Trade-offs

Like most algorithms, the Banker's algorithm involves some trade-offs. Specifically, it needs to know how much of each resource a process could possibly request. In most systems, this information is unavailable, making the Banker's algorithm useless.


References

  1. ^ E. W. Dijkstra "EWD108: Een algorithme ter voorkoming van de dodelijke omarming" (in Dutch; An algorithm for the prevention of the deadly embrace)
  2. ^ Lubomir, F. Bic (2003). Operating System Principles. Prentice Hall.

Further reading

External links


  Results from FactBites:
 
Fabulous Adventures In Coding : Bankers' Rounding (1444 words)
The round function is consistent (banker's round) across VBA for Excel and Word.
May I suggest that the Round function VBA help file be enhanced to include the fact that Banker's round is being used and not an arithmetic round.
I have never met a banker that has ever heard of this method of rounding.
More on Algorithms (2232 words)
Algorithms can be implemented by computer programs, although often in restricted forms; an error in the design of an algorithm for solving a problem can lead to failures in the implementing program.
Algorithms are essential to the way computers process information, because a computer program is essentially an algorithm that tells the computer what specific steps to perform (in what specific order) in order to carry out a specified task, such as calculating employees’ paychecks or printing students’ report cards.
Algorithms are not only implemented as computer programs, but often also by other means, such as in a biological neural network (for example, the human brain implementing arithmetic or an insect relocating food), or in electric circuits or in a mechanical device.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.