Abstract |
Copyless messaging is a communication paradigm in which only pointers to messages are exchanged between sender and receiver processes. Because of its intrinsically low overhead, copyless messaging is suitable for the efficient implementation of communication-intensive software systems where processes have access to a shared address space. Unfortunately, the very nature of the paradigm fosters the proliferation of programming errors due to the explicit use of pointers and to the sharing of data. In this paper we study a type discipline for copyless messaging that, together with some minimal support from the runtime system, is able to guarantee the absence of communication errors, memory faults, and memory leaks in the presence of exceptions. To formalize the semantics of processes we draw inspiration from software transactional memories: in our case a transaction is a process that is meant to accomplish some exchange of messages and that should either be executed completely, or should have no observable effect if aborted by an exception. |
@article{JaksicPadovani14,
volume = {84},
issn = {0167-6423},
author = {Svetlana Jak\v{s}ic and Luca Padovani},
url = {http://www.di.unito.it/~padovani/Papers/CopylessExceptionsLong.pdf},
abstract = { Copyless messaging is a communication paradigm in which only
pointers to messages are exchanged between sender and receiver
processes. Because of its intrinsically low overhead, copyless
messaging is suitable for the efficient implementation of
communication-intensive software systems where processes have
access to a shared address space. Unfortunately, the very nature
of the paradigm fosters the proliferation of programming errors
due to the explicit use of pointers and to the sharing of data. In
this paper we study a type discipline for copyless messaging that,
together with some minimal support from the runtime system, is
able to guarantee the absence of communication errors, memory
faults, and memory leaks in the presence of exceptions. To
formalize the semantics of processes we draw inspiration from
software transactional memories: in our case a transaction is a
process that is meant to accomplish some exchange of messages and
that should either be executed completely, or should have no
observable effect if aborted by an exception. },
title = {{Exception Handling for Copyless Messaging}},
publisher = {Elsevier},
year = {2014},
journal = {Science of Computer Programming},
doi = {10.1016/j.scico.2013.05.001},
pages = {22-51},
}
This document was generated by bib2html 3.3.
(Modified by Luca Paolini, under the GNU General Public License)
