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 New ALT for Application Timers and Synchronisation Point Scheduling
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%A Øyvind Teig, Per Johan Vannebo
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%E Peter H. Welch, Herman Roebbers, Jan F. Broenink, Frederick R. M. Barnes, Carl G. Ritson, Adam T. Sampson, G. S. Stiles, Brian Vinter
%B Communicating Process Architectures 2009
%X During the design of a small channel\-based concurrency
runtime system
(ChanSched, written in ANSI C), we saw that
application timers (which
we call egg and repeat timers)
could be part of its supported ALT
construct, even if their
states live through several ALTs. There are
no side effects
into the ALT semantics, which enable waiting for
channels,
channel timeout and, now, the new application
timers.
Application timers are no longer busy polled for
timeout by the
process. We show how the classical occam
language may benefit from a
spin\-off of this same idea.
Secondly, we wanted application
programmers to be freed from
their earlier practice of explicitly
coding communication
states at channel synchronisation points, which
was needed
by a layered in\-house scheduler. This led us to develop
an
alternative to the non\-ANSI C \[dq]computed goto\[dq]
(found in gcc). Instead,
we use a switch/case with goto
line\-number\-tags in a synch\-point\-table
for scheduling.
We call this table, one for each process, a proctor
table.
The programmer does not need to manage this table, which
is
generated with a script, and hidden within an
\[sh]include file.