Upload
odette
View
30
Download
2
Embed Size (px)
DESCRIPTION
ASYNCHRONOUS AND DETERMINISTIC OBJECTS. Denis CAROMEL, Ludovic HENRIO , Bernard Paul SERPETTE. ASP: Asynchronous Sequential Processes Distributed objects Asynchronous method calls Futures and Wait-by-necessity Determinism properties. I3S - INRIA - Univ Nice Sophia-Antipolis. Context. - PowerPoint PPT Presentation
Citation preview
ASYNCHRONOUS AND DETERMINISTIC OBJECTS
ASP: Asynchronous Sequential Processes Distributed objects Asynchronous method calls Futures and Wait-by-necessity Determinism properties
Denis CAROMEL, Ludovic HENRIO, Bernard Paul SERPETTE
I3S - INRIA - Univ Nice Sophia-Antipolis
Context
-calculus Objects, not concurrent Some concurrent extensions, not our way to determinism
-calculus Communications, channel based, not object structured Linear(ized) channels(o), no implicit synchronization
Process Networks Processes, channel based, not object oriented Determinism, no implicit synchronization
Context
Contents
1 - ASP Principles
2 - Syntax and Semantics
3 - Confluence and Determinacy
4 - Conclusion
f3
f1
Structure
1- ASP Principles
foo
foo
f2
Active(a)
foo
beta.foo(b)
result=beta.foo(b)
Sending Requests ( REQUEST )
1- ASP Principles
foo
beta.foo(b)result
Sending Requests ( REQUEST )
1- ASP Principles
result=beta.foo(b)
foo
beta.foo(b)
Serve(foo);...
result
Serving Requests ( SERVE )
Serve(foo);...
bar
1- ASP Principles
beta.foo(b)result
Serving Requests ( SERVE )
Serve(foo)
barfoo ...foo
1- ASP Principles
Serve(foo);...
...foo
End of Service ( ENDSERVICE )
value
1- ASP Principles
foo
End of Service ( ENDSERVICE )
...
1- ASP Principles
foo
Sending Results ( REPLY )
1- ASP Principles
Sending Results ( REPLY )
foo
1- ASP Principles
delta.send(result)
Wait by Necessity
1- ASP Principles
delta.send(result)result.bar()result.bar()
Wait by Necessity
1- ASP Principles
delta.send(result)result.bar()result.bar()
Wait by Necessity
1- ASP Principles
Wait by Necessity
result.bar()Futures updates can occur at any time
Futures updates can occur at any time
1- ASP Principles
1 - ASP Principles
2 - Syntax and Semantics
3 - Confluence and Determinacy
4 - Conclusion
Contents
ASP Syntax : source terms
2- Syntax and Semantics
Imperative-calculus
ASP parallelism primitives
2- Syntax and Semantics
Local
CreatingActivity
Sendingrequest
Receivingreplies
Service
Contents
1 - ASP Principles
2 - Syntax and Semantics
3 - Confluence and Determinacy
4 - Conclusion
Compatibility
delta.foo()
foo
….Serve(foo,bar)
…Serve(foo,gee)
bar
gee
3- Confluence and Determinacy
Serves the oldest request on foo OR bar
Confluence
Potential services:
3- Confluence and Determinacy
P0
P Q
R
RSL definition:
Compatibility Confluence
Configuration Compatibility:Execution characterized
by the order of Request SendersExecution characterized
by the order of Request Senders
Deterministic Object Networks
{foo,bar} , {foo,gee}
delta.gee(a)
gee
delta.bar(a)bar
{bar,gee} , {foo}
gee barbar gee
3- Confluence and Determinacy
DON(P):
Static DON
{foo,bar} , {gee}
{foo,bar} , {gee}
{gee}, {f,g}
{bar} , {gee}
{foo,bar} , {gee}
foo
bar
f{foo}, {bar}
{gee}, {f,g}
{f,g}{gee}, {f,g}f
g
gee
f
g
{gee}, {f,g}
3- Confluence and Determinacy
g
Contents
1 - ASP Principles
2 - Syntax and Semantics
3 - Confluence and Determinacy
4 - Conclusion
Conclusion
An Asynchronous Object Calculus : Structured asynchronous activities Structured communications with futures Data-driven synchronization
ASP Confluence and Determinacy Future updates can occur at any time
Execution characterized by the order of request senders
Determinacy of programs communicating over trees, …
4- Conclusion
Thank You
Any Question?
Thank You
Any Question?
Perspectives
Approximation of confluence property Static analysis
Generalization of confluence property Functional behavior Scheduling of requests
Extensions of ASP Group communication Component calculus Mobility and other features
Related Work
Futures and Wait by Necessity: MultiLisp by Halstead Wait-By-Necessity by Caromel
Determinism: by JonesLinearized channels Process Networks by Kahn and MacQueen
Objects and concurrency: Obliq, Gordon-Hankin-Lassen Actors -calculus, blue calculus, join-calculus
Terms:
Configuration: Request queue: Futures list: Store:
Intermediate Structures
Static DON versus Process Networks
{foo,bar} , {gee}
{foo,bar} , {gee}
{gee}, {f},{g}
{bar} , {gee}
{foo,bar} , {gee}
foo
bar
f{foo}, {bar}
{gee}, {f},{g}
{f},{g}{gee}, {f},{g}f
g
gee
f
g
put
get
Active(a)
newact=Active(a)
newact
Activity Creation ( NEWACT )
Objects Topology
Equivalence Modulo Futures Updates
f1
f2
f3
More Futures
...result.bar()
More Futures
result.bar()
More Futures
result.bar()
More Futures
result.bar()
More Futures
result.bar()Futures updates can occur at any time
Futures updates can occur at any time
Concurrent Constraint Programming
Constraint programming, different notion of store
Shared memory
No internal state in the store (functional agents)
Data-driven / constraint driven synchronization:
Blocking Ask
Determinate case
Active(a,s)
newact=Active(a,s)
Activity Creation ( NEWACT )
Active(a,s)
newact=Active(a,s)
newact
Activity Creation ( NEWACT )
ao.s()
Equivalence Modulo Futures Updates
f1
f2
f3
f1
f2
Equivalence Modulo Futures Updates
f2
f3
f1
f1
f2
f1
Store Partitioning
Serve(foo)
Serve(foo);...
bar foo
Request Service ( SERVE )
Serve(foo)
barfoo
Serve(foo);...
...foo
Request Service ( SERVE )
Objectives
Model of the following features Object orientation (activities, communications) Asynchronous communications with futures Service policy
Confluence and determinacy Identify sources of non-determinism Characterize equivalent executions Give general properties Find some properties easy to verify
value
foo bar
...
End Of Service ( ENDSERVICE )
value
barfoo
...
...
End Of Service ( ENDSERVICE )