ABSTRACT
Component methods often produce their final parameter values long before the method body is ready to terminate. To minimize client blocking, Early-Reply can be used to forward invocation results to the caller as soon as they are (safely) available. After executing Early-Reply, the method remainder and the client caller can proceed concurrently, modulo synchronization constraints. The prime motivation for Early-Reply, then, is to improve performance factors such as response time and resource utilization.Early-Reply received previous attention as a construct for explicit concurrent programming. It's value for sequential programming, however, has not been widely recognized. The present research supplies a formal treatment of Early-Reply as a basis for concurrent execution of sequential programs. In particular, we reformulate Early-Reply under local proof obligations that encapsulate concurrency as a (temporal) unit of information hiding. The upshot is that software developers can use Early-Reply to exploit the performance benefits of concurrent execution, without compromising the reasoning benefits of sequential programming.
- Gul Agha. ACTORS: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, Mass., 1986. Google ScholarDigital Library
- Pierre America. POOL-T: A parallel object-oriented language. In Akinori Yonezawa and Mario Tokoro, editors, Object Oriented Concurrent Programming, pages 199--220. MIT Press, 1987. Google ScholarDigital Library
- Denis Caromel. Toward a method of object-oriented concurrent programming. Communications of the ACM, 36(9):90--102, 1993. Google ScholarDigital Library
- Dennis de Champeaux, Douglas Lea, and Penelope Faure. Object-Oriented System Development. Addison-Wesley, 1993. Google ScholarDigital Library
- Tom Ender. Object-Oriented Programming with REXX. John Wiley and Sons, Ine, 1997. Google ScholarDigital Library
- Douglas E. Harms and Bruce W. Weide. Copying and swapping: Influences on the design of reusable software components. IEEE Trans. Software Engineering, 17(5):424--435, May 1991. Google ScholarDigital Library
- Doug Lea. Concurrent Programming in Java: Design Principles and Patterns. Addison-Wesley, 1996. Google ScholarDigital Library
- Michael Philippsen. A survey of concurrent object-oriented languages. Concurrency: Practice and Experience, 12(10):917--980, 2000.Google ScholarCross Ref
- Scott M. Pike and Nigamanth Sridhar. Early reply components: Concurrent execution with sequential reasoning. In Proceedings of the 7th International Conference on Software Reuse, volume 2319 of LNCS, pages 46--61. Springer-Verlag, April 2002. Google ScholarDigital Library
- Michael L. Scott. The lynx distributed programming language: Motivation, design, and experience. Computer Languages, 16(3):209--233, 1991. Google ScholarDigital Library
- Michael L. Scott. Programming Language Pragmatics. Morgan Kaufmann, 2000. Google ScholarDigital Library
- Encapsulating concurrency with Early-Reply
Recommendations
Semantics-based concurrency control: beyond commutativity
The concurrency of transactions executing on atomic data types can be enhanced through the use of semantic information about operations defined on these types. Hitherto, commutativity of operations has been exploited to provide enchanced concurrency ...
Extracting more concurrency from distributed transactions
OSDI'14: Proceedings of the 11th USENIX conference on Operating Systems Design and ImplementationDistributed storage systems run transactions across machines to ensure serializability. Traditional protocols for distributed transactions are based on two-phase locking (2PL) or optimistic concurrency control (OCC). 2PL serializes transactions as soon ...
Prettier concurrency: purely functional concurrent revisions
Haskell '11This article presents an extension to the work of Launchbury and Peyton-Jones on the ST monad. Using a novel model for concurrency, called concurrent revisions [3,5], we show how we can use concurrency together with imperative mutable variables, while ...
Comments