Information Technology Reference
In-Depth Information
Priority in concurrent processes is dicult to treat formally but many ex-
amples abound, in both the CSP setting [14,15,16,17]. and in the more general
process algebra areas [18,19,20]. The CSP treatment either fails to handle re-
cursion, or is too complex and general, while the more general process algebra
work is closer to what is required. Unfortunately, priority in Handel-C does
not fit neatly into the priority schemes that have been considered, as described
in [20]
Other work involving formal techniques and Handel-C has been reported,
and includes the use of the Ponder policy specification language [21] as a ba-
sis for implementing firewalls [22], as well as techniques for performing behav-
ioural transformations from Haskell programs into Handel-C implementations
[23]. Beyond the scope of Handel-C, there is considerable work on using formal
techniques to develop safety-critical embedded systems, of which the languages
Esterel [24,25,26] and Lustre [27,28] are two key examples.
4O rv ewof prialt Semantics
We present here a brief overview of the prialt semantics presented in [5], with an
explanation of how it can be interfaced with the denotational semantics described
later on in this paper.
In any given clock cycle, there will be zero or more prialt s commencing
execution. A guard is deemed to be potentially active if elsewhere there is a
complementary guard in some other prialt active during the same clock cy-
cle. The process of determining which guards, if any, become active, is called
Resolution .
In [12] resolution is viewed formally as a function Resolve that takes a set
of Prialt Requests ( PriSet ), and returns a pair called a Resolution ( Resltn ),
consisting of an Channel-Prialt Map ( CPMap )andthesetof prialt sthathave
remained blocked.
Prialt
CPMap = Ch
PriSet =
P
PriSet
Resltn = CPMap
×
PriSet
Resolve : PriSet
Resltn
A Prialt Request is simply modelled as a sequence of guards, i.e simply as the
corresponding prialt -statement with the continuation processes stripped out.
The Channel-Prialt Map identifies which channels are going to be active and
maps them to those prialt s which will participate in communication over that
channel.
In order to model the semantics of prialt , we view a clock-cycle as being
composed of four phases: selection ( sel ); request ( req ); resolve ( res ); and action
( act ). During the selection phase, flow of control decisions are taken by evaluat-
ing conditions for if-statements and while-loops. During the request phase, any
prialt s which have been selected lodge their prioritised communication requests
 
Search WWH ::




Custom Search