Information Technology Reference
In-Depth Information
channel a and uses it for the result of the query. Since a call to a command does not pro-
duce a result, such a channel is not required for command instructions. Both call variants
take the reference to the target a e 0 , the feature f to be called, the references to the actual ar-
guments
.The
actual argument expressions are used to check whether there is a controlled actual argu-
ment. This information determines whether the locks should be passed.
(
a e 1 .
data
,...,
a e n .
data
)
, and the actual argument expressions
(
e 1 ,...,
e n ))
Command Instruction
i ∈{ 0 ,..., n } : a e i is f resh
Γ p :: e 0 . f ( e 1 ,..., e n ) ; s p , σ
p :: eval ( a e 0 , e 0 ) ; eval ( a e 1 , e 1 ) ; ... ; eval ( a e n , e n ) ;
wait ( a e 0 ) ; wait ( a e 1 ) ; ... ; wait ( a e n ) ;
call ( a e 0 . data , f , ( a e 1 . data ,..., a e n . data ) , ( e 1 ,..., e n )) ;
s p , σ
Query Expression
i ∈{ 0 ,..., n } : a e i is f resh
a is f resh
Γ p :: eval ( a , e 0 . f ( e 1 ,..., e n ))
; s p , σ
p :: eval (
a e 0 ,
e 0 )
; eval (
a e 1 ,
e 1 )
;
...
; eval (
a e n ,
e n )
;
wait ( a e 0 ) ; wait ( a e 1 ) ; ... ; wait ( a e n ) ;
call ( a , a e 0 . data , f , ( a e 1 . data ,..., a e n . data ) , ( e 1 ,..., e n )) ;
result ( a , a . data ) ;
s p , σ
Both variants of the call operation take the reference to the target r o , the feature f to
be called, the references to the actual arguments
(
r 1 ,...,
r n )
, and the actual argument
expressions
. The variant for queries takes an additional channel a to be used
for the result of the query. In a first step, the operation must evaluate the handler q of the
target. The handler is used in an issue operation to issue a feature request on the re-
sponsible processor. The feature request comes in the form of an apply operation. The
apply operation takes a channel a for the communication between p and q ,thetarget
reference r 0 , the called feature f , the references to the actual arguments
(
e 1 ,...,
e n )
(
,...,
)
r 1
r n
,the
caller processor p , and the passed locks l .
Clarification 3 (Lock passing). Processor p passes all its request queue locks and all its
call stack locks either if there is a controlled actual argument that will get attached to an
attached formal argument of reference type or if the feature call is a separate callback.
An attached formal argument of reference type means that the request queue lock or
the call stack lock on the actual argument's handler is required during the application
of f . A controlled actual argument means that p has a request queue lock or a call stack
lock on the handler of the actual argument. In short, p has a lock that is required by
q and thus p has to pass the locks. A separate callback occurs if q has a lock on p .In
this situation, p can issue a statement to q and then wait for q to complete. However,
processor q could already be waiting for p to complete. To handle this case, the issue
operation in the call operation triggers an immediate execution by adding the apply
to the beginning of q 's action queue. The issue operation requires that p has the call
stack lock of q . To enable q to perform an immediate execution, p has to give back q 's
call stack lock.
Search WWH ::




Custom Search