Concurrent Computing - Coordinating Access To Resources

Coordinating Access To Resources

One of the major issues in concurrent computing is preventing concurrent processes from interfering with each other. For example, consider the following algorithm for making withdrawals from a checking account represented by the shared resource balance:

1 bool withdraw( int withdrawal ) 2 { 3 if ( balance >= withdrawal ) 4 { 5 balance -= withdrawal; 6 return true; 7 } 8 return false; 9 }

Suppose balance=500, and two concurrent threads make the calls withdraw(300) and withdraw(350). If line 3 in both operations executes before line 5 both operations will find that balance > withdrawal evaluates to true, and execution will proceed to subtracting the withdrawal amount. However, since both processes perform their withdrawals, the total amount withdrawn will end up being more than the original balance. These sorts of problems with shared resources require the use of concurrency control, or non-blocking algorithms.

Because concurrent systems rely on the use of shared resources (including communication media), concurrent computing in general requires the use of some form of arbiter somewhere in the implementation to mediate access to these resources.

Unfortunately, while many solutions exist to the problem of a conflict over one resource, many of those "solutions" have their own concurrency problems such as deadlock when more than one resource is involved.

Read more about this topic:  Concurrent Computing

Famous quotes containing the words access and/or resources:

    The Hacker Ethic: Access to computers—and anything which might teach you something about the way the world works—should be unlimited and total.
    Always yield to the Hands-On Imperative!
    All information should be free.
    Mistrust authority—promote decentralization.
    Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position.
    You can create art and beauty on a computer.
    Computers can change your life for the better.
    Steven Levy, U.S. writer. Hackers, ch. 2, “The Hacker Ethic,” pp. 27-33, Anchor Press, Doubleday (1984)

    Hearing, seeing and understanding each other, humanity from one end of the earth to the other now lives simultaneously, omnipresent like a god thanks to its own creative ability. And, thanks to its victory over space and time, it would now be splendidly united for all time, if it were not confused again and again by that fatal delusion which causes humankind to keep on destroying this grandiose unity and to destroy itself with the same resources which gave it power over the elements.
    Stefan Zweig (18811942)