Resource Exchanger: A Behavioral Pattern for Low-Overhead Concurrent Resource Management


By: A. Sane, R. Campbell

Summary: To manage resources shared among multiple processes, let processes act as generators or acceptors of resources. Acceptors register themselves with an Exchanger.

Pattern: Resource Exchanger


Published in: PLoPD2
Pages: 461-473
Category: Client-Server, Concurrent Systems, Distributed Systems

In a concurrent system, servers do more work than clients, so they can become computation and communication bottlenecks. Further, servers on one machine compete for shared facilities, so one busy server can starve another. To manage resources shared among multiple processes, let processes act as generators or acceptors of resources. Acceptors register themselves with an exchanger. When an acceptor requests a resource, it must have a resource to exchange. Each acceptor has a pool of resources based on the credit it has with the system. If acceptors keep resources too long, its pool will eventually be exhausted.

Url: http://choices.cs.uiuc.edu/sane/home.html#dp