db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%T Mobile Data, Dynamic Allocation and Zero Aliasing: An occam Experiment
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%A Peter H. Welch, Frederick R. M. Barnes
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%E Alan G. Chalmers, Majid Mirmehdi, Henk Muller
%B Communicating Process Architectures 2001
%X Traditional imperative languages (such as C) and modern
object\-oriented languages are plagued by uncontrolled
resource aliasing problems. Add in concurrency and the
problems compound exponentially. Improperly synchronised
access to shared (i.e. aliased) resources leads to problems
of race\-hazard, deadlock, livelock and starvation. This
paper describes the binding into occam (a concurrent
processing language based on CSP) of a secure, dynamic and
efficient way of sharing data between parallel processes
with minimal synchronisation overheads. The key new
facilities provided are: a movement semantics for assignment
and communication, strict zero\-aliasing, apparently dynamic
memory allocation and automatic
zero\-or\-very\-small\-unit\-time garbage collection. The
implementation of this mechanism is also presented, along
with some initial performance figures (e.g. 80ns for mobile
communication on an 800 MHz Pentium 3). With occam becoming
available on a variety of microprocessors for GUI building,
internet services and small\-memory\-footprint embedded
products, these capabilities are timely. Lessons are drawn
for concurrency back in OO languages \- and especially for
the JCSP (CSP for Java) package library.