3 Flags have type/name associated with them
4 Are either present or not present
7 Task parameters can't be modified
9 How do we handle new object allocation?
10 Idea #1: Set flags at allocation
11 Only allow flag setting at exit for parameters
13 Non parameter variables:
14 1) Type must contain flags
15 2) Apply flag additions to all states
18 create_tag operation(type)
20 tag name=new tag(type);
22 associate_with_tag operation(object, tag)
25 after flag status, allow tag status...
26 each tag state is of the form: Type(name)
29 Tag sets: {x, y, z, ... in R
31 Allow additions/removals of tuples in taskexit:
32 remove <x, y, z, ...> from R
35 Allow addition of new tuples in object allocation
37 ------------------------------------------------------------------------------
43 Tags have type/name associated with them
44 Also have UID associated with them
46 Ordered: Initial/Next / Preserves Sequencing
47 Non-ordered: New / Groups items together
49 ----------------------------------------------------------------------
51 Have list of parameters w/ flag/tag specifications
52 Flag/Tag transitions at task exit
53 -----------------------------------------------------------------------
55 How do we efficiently do task dispatch?
59 Build static state transition diagram : explore full space for now
60 Then for each state transition we consider:
61 1) What task activations have we added
62 2) What task activations have we removed
63 Collapse state transition diagram to
66 Tags - search once we match a flag
71 trigger role specification for tasks:
72 role mutator operation:
76 Role transition diagram
95 tag tag2=incrementtag(tag tag1);
100 task foo(type1 o1{role1||role2}, type2 o2{role3}) {
102 exit(o1{role1'=false},o2{role3'=false},onew{role4=true});
104 ----------------------------------------------------------------
105 ----------------------------------------------------------------
108 ----------------------------------------------------------------
110 Provide runtime with:
116 2) List of flags for each type
118 3) Flag transition calls