Issue No. 07 - July (1993 vol. 4)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.238301
<p>Concurrent C/C++ is a superset of C and C++ that provides parallel programming facilities based on message passing. Upon porting Concurrent C/C++to a shared memorymultiprocessor, the authors believed it would be appropriate to supplement ConcurrentC/C++ with explicit facilities for synchronizing accesses to shared data structures. Thecapsule, which is a shared memory access mechanism designed especially for ConcurrentC/C++ to match the C++data abstraction facility called the class, is discussed. Capsulesare like monitors but they have significant advantages. Capsules satisfy T. Bloom's (1979) criteria for expressiveness of synchronization conditions, support inheritance, allow operations to execute in parallel, and permit them to time out. The design of capsules is reviewed. The author evaluates existing shared memory mechanisms, describes capsules, gives examples of capsules, compares capsules with monitors, and discusses how capsules are implemented by the Concurrent C compiler.</p>
Index Termsshared memory access mechanism; Concurrent C/C++; parallel programming; messagepassing; shared memory multiprocessor; shared data structures; capsule; dataabstraction; class; inheritance; Concurrent C compiler; inheritance; message passing;parallel languages; parallel programming; shared memory systems; synchronisation
N. Gehani, "Capsules: A Shared Memory Access Mechanism for Concurrent C/C++," in IEEE Transactions on Parallel & Distributed Systems, vol. 4, no. , pp. 795-811, 1993.