110 likes | 224 Vues
This talk by Vijay K. Garg from The University of Texas at Austin outlines essential strategies for constructing self-aware systems capable of intelligent control and adaptation. Key areas covered include goal specification, state observation, choice management, strategic planning, and effective control methods. By integrating concepts from biological and computer systems, the discussion emphasizes the importance of understanding goals at multiple levels, utilizing runtime verification, and adapting to changing environments. The talk highlights the Paradise Project's tools for monitoring and verifying self-* properties in systems.
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