110 likes | 248 Views
Hints for Building Self-* Systems Vijay K. Garg The University of Texas at Austin Austin, TX 78712 email: garg@ece.utexas.edu. Talk Outline. Overview Hints for Self-* Systems Specify : Know your goals Observe : Know your state Keep choices : Know multiple ways Plan : Know your strategy
E N D
Hints for Building Self-* SystemsVijay K. GargThe University of Texas at AustinAustin, TX 78712email: garg@ece.utexas.edu
Talk Outline • Overview • Hints for Self-* Systems • Specify: Know your goals • Observe: Know your state • Keep choices: Know multiple ways • Plan: Know your strategy • Control: reconfigure, reset, reorganize, adapt • Paradise
Specify: Know your goals • Biological Systems: goals at multiple levels • Survival, happiness, money, job • Computer Systems are not aware of their goals • At best, we have specs of the programs • Need • Specs at multiple levels • Using Specs for Runtime Verification • Adapting to the environment
Observe: Know your state • Self-awareness: is the state consistent with goals? • Monitoring for system properties • Stable Properties e.g. [Chandy,Lamport 85] • Unstable Properties • Single State based e.g. Linear Predicates [Chase, Garg 95], Relational Predicates [Tomlinson, Garg 96] • Temporal Logic based e.g. Regular CTL [Sen, Garg 04] • Need: • Integration with runtime environments
Choices: Know multiple ways • Determinism considered dangerous • Nondeterminism allows the system to deal with • Faults • Uncertainty • Changing environment • Need • Nondeterministic choice in general prog. Languages (e.g. Dijkstra’s Guarded Command Language) • Support for selective communication (e.g. CSP) • Support for family of modules
Plan: Know your strategy • Know your state space • Exploit what computers are good at • View program as two parts • Finite state part: computer analyzable • Infinite part: trust humans • Lookahead Execution • Computation slicing [Garg, Mittal 2001] • Need • Support for systems with lookahead • Support for on-the-fly model checking
Control: Controlled Execution • Use nondeterminism to your advantage • Try different order of message processing • Impose additional synchronization [Tarafdar, Garg 04] • Supervisory Control of Discrete Event Systems [Ramadge and Wonham 89, Kumar and Garg 95] • Tunable parameters (adaptive control) • Need • execution environments with control • Programming languages that support feedback
Paradise Project Key Abstraction: Global Properties • Model Checking and Verification: Check global properties against model of the program (Promela) • Simulation and Debugging: Global breakpoints, Trace analysis • Fault-Tolerance: Monitoring for global properties, Controlled Re-execution
Observe Program Monitor Slicer Predicate Paradise Environment Control
Paradise Tools • Trace Cover SPIN (Model Checker): alleviating state explosion • Visual Dashboard • Partial Order Trace Analysis (POTA): slicing • Paradise Library: tracking dependency, global snapshot, global properties • Paradise Execution Engine: control
Conclusions • Current execution engines are too primitive to build self-* systems • Need more knowledge • Goals, multiple choices, current state • Research at PDSLAB • www.ece.utexas.edu/~garg/pubs.html