Title 11/5/2000 eSimplex Architecture Using MaCS Insup Lee Oleg Sokolsky Moonjoo Kim Anirban Majumdar Sampath Kannan Mahesh Viswanathan Insik Shin and.

Slides:



Advertisements
Similar presentations
MaC Monitoring and Checking at Runtime (Continue) Presented By Usa Sammapun CIS 700 Oct 12, 2005.
Advertisements

Executional Architecture
A Survey of Runtime Verification Jonathan Amir 2004.
The System-Level Simplex Architecture Stanley Bak Olugbemiga Adekunle Deepti Kumar Chivukula Mu Sun Marco Caccamo Lui Sha.
ECE 720T5 Fall 2011 Cyber-Physical Systems Rodolfo Pellizzoni.
Dynamic Typing COS 441 Princeton University Fall 2004.
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
/ PSWLAB Efficient Decentralized Monitoring of Safety in Distributed System K Sen, A Vardhan, G Agha, G Rosu 20 th July 2007 Presented by.
Generative Programming for a Component-based Framework of Distributed Embedded Software Systems Xu Ke, Krzysztof Sierszecki Mads Clausen Institute for.
Component Interaction in Distributed Systems Nat Pryce Imperial College
MaC Monitoring and Checking at Runtime Presented By Usa Sammapun CIS 700 Oct 10, 2005.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
SDRL and GRASP University of Pennsylvania 6/27/00 MoBIES 1 Design, Implementation, and Validation of Embedded Software (DIVES) Contract No. F C-1707.
On Effective Testing of Health Care Simulation Software Christian Murphy, M.S. Raunak, Andrew King, Sanjian Chen, Christopher Imbriano, Gail Kaiser, Insup.
Program Checking Sampath Kannan University of Pennsylvania.
A Type System for Expressive Security Policies David Walker Cornell University.
February 21, 2008 Center for Hybrid and Embedded Software Systems Mapping A Timed Functional Specification to a Precision.
MaCS: Monitoring, Checking and Steering O. Sokolsky, S. Kannan, I. Lee, U. Sammapun, J. Shin, M. Viswanathan CIS, Penn M. Kim SECUi.com, Korea.
System Design Research Laboratory Model-based Testing and Monitoring for Hybrid Embedded Systems Li Tan Jesung Kim Oleg Sokolsky Insup Lee University of.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
CprE 458/558: Real-Time Systems
Testing and Monitoring at Penn An Integrated Framework for Validating Model-based Embedded Software Li Tan University of Pennsylvania September, 2003.
SDRL & RTG University of Pennsylvania 5/24/01 1 Run-time Monitoring and Checking Based on Formal Specifications Insup Lee Department of Computer and Information.
Code Generation from CHARON Rajeev Alur, Yerang Hur, Franjo Ivancic, Jesung Kim, Insup Lee, and Oleg Sokolsky University of Pennsylvania.
5/24/011 Advanced Tool Integration for Embedded Systems Assurance Insup Lee Department of Computer and Information Science University of Pennsylvania.
Testing Dr. Andrew Wallace PhD BEng(hons) EurIng
Verification technique on SA applications using Incremental Model Checking 컴퓨터학과 신영주.
Timed UML State Machines Ognyana Hristova Tutor: Priv.-Doz. Dr. Thomas Noll June, 2007.
DOT’98 Heidelberg 1 A. Hoffmann & M. Born Requirements for Advanced Distribution and Configuration Support GMD FOKUS Andreas Hoffmann & Marc Born
11/9/041 Bridging the gap between specification and implementation Insup Lee Department of Computer and Information Science University of Pennsylvania.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
หลักการโปรแกรม เพื่อแก้ปัญหาโดยใช้คอมพิวเตอร์
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
1. Introduction 1.1 Background 1.2 Real-time applications 1.3 Misconceptions 1.4 Issues in real-time computing 1.5 Structure of a real-time system.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
The Java Programming Language
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Computer Science Detecting Memory Access Errors via Illegal Write Monitoring Ongoing Research by Emre Can Sezer.
5/27/03MDES Supporting Model-Based Validation at Run-time Insup Lee and Oleg Sokolsky Department of Computer and Information Science University of.
Static Program Analysis of Embedded Software Ramakrishnan Venkitaraman Graduate Student, Computer Science Advisor: Dr. Gopal Gupta.
Handling Mixed-Criticality in SoC- based Real-Time Embedded Systems Rodolfo Pellizzoni, Patrick Meredith, Min-Young Nam, Mu Sun, Marco Caccamo, Lui Sha.
Static Program Analysis of Embedded Software Ramakrishnan Venkitaraman Graduate Student, Computer Science Advisor: Dr. Gopal Gupta
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
1 Model Checking of Robotic Control Systems Presenting: Sebastian Scherer Authors: Sebastian Scherer, Flavio Lerda, and Edmund M. Clarke.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
University of Pennsylvania 7/15/98 Asymmetric Bandwidth Channel (ABC) Architecture Insup Lee University of Pennsylvania July 25, 1998.
Constraints Assisted Modeling and Validation Presented in CS294-5 (Spring 2007) Thomas Huining Feng Based on: [1]Constraints Assisted Modeling and Validation.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
ICFEM 2002, Shanghai Reasoning about Hardware and Software Memory Models Abhik Roychoudhury School of Computing National University of Singapore.
SAFE KERNEL EXTENSIONS WITHOUT RUN-TIME CHECKING George C. Necula Peter Lee Carnegie Mellon U.
Dynamic Testing.
4/22/02VU '021 Specification-Based Techniques for Validation at Run-time and Design-time* Insup Lee SDRL (Systems Design Research Lab) RTG (Real-Time Systems.
Real-time Systems Group University of Pennsylvania 10/13/98 1 Design-time and Run-time Assurance Insup Lee Department of Computer and Information Science.
RealTimeSystems Lab Jong-Koo, Lim
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
SOFTWARE TESTING TRAINING TOOLS SUPPORT FOR SOFTWARE TESTING Chapter 6 immaculateres 1.
ONR MURI area: High Confidence Real-Time Misuse and Anomaly Detection
Ik-Soon Kim December 18, 2010 Embedded Software Platform Team
Formally Specified Monitoring of Temporal Properties
Monitoring, Checking and Steering of Real-Time Systems
Run-time Verification of Software Systems
Chapter 1: Computer Systems
Generating Optimal Linear Temporal Logic Monitors by Coinduction
Focus of the Course Object-Oriented Software Development
Presentation transcript:

title 11/5/2000 eSimplex Architecture Using MaCS Insup Lee Oleg Sokolsky Moonjoo Kim Anirban Majumdar Sampath Kannan Mahesh Viswanathan Insik Shin and many others…

title 11/5/2000 Run-time Formal Analysis Run-time formal analysis ensures the run-time compliance of an execution of a system with its formal requirement. The analysis validates properties on the current execution of application. The analysis can –detect incorrect execution of applications –predict error and steer computation –collect statistics of actual execution

title 11/5/2000 System Spec System Spec Requirement Spec Requirement Spec Formal verification Design System Implementation System Implementation Monitoring Data Monitoring Data Implementation Event Recognizer + Checker Event Recognizer + Checker System Filter Communication Run-time Check MaCS Methodology

title 11/5/2000 MaCS Asynchronous Control Cycle Identify safe spots in the implementation to apply steering Detect violations as they occur and initiate steering Execute steering actions when it is safe System Checker monitor detect ! invoke execute

title 11/5/2000 MaCS Synchronous Control Cycle In critical situations, asynchronous cycle may not be suffient Check for violations before critical updates Pause the system until the checker confirms Steer if violation occurs System Checker monitor detect ! invoke compute update compute update compute execute update

title 11/5/2000 MaCS languages Run-time state: control locations object state local variables Abstract state: events conditions auxiliary variables MEDL PEDL SADL

title 11/5/2000 Property checking A MEDL specification can be seen as an automaton with auxiliary store running on a stream of events provided by the event recognizer aux. variables

title 11/5/2000 Data extraction and event detection PEDL script –describes monitored objects in the program, statically identifying them in the code –defines events in terms of monitored objects Technical challenge: –all updates to the monitored objects must be detected

title 11/5/2000 Steering (asynchronous) SADL script –defines steering actions –identifies locations in the code where the actions can be executed steering condition i satisfied execution Invocation flags Action bodies 0in 0 i n test call Checker invoke

title 11/5/2000 MaCS toolset Program (Java byte code) Monitoring Script (PEDL) Requirements (MEDL) PEDLCompiler MEDLCompiler Instrumented Code Filter Generator (JTREK) Instrumentation Information Compiled PEDL Compiled MEDL Event Recognizer Checker Steering Script (SADL) SADLCompiler Instrumentation Information Injector class (Java byte code)

title 11/5/2000 Simplex architecture Simplex (Simple and Complex) architecture allows the insertion of control software on the fly while maintaining system reliability. It is not possible to test new control software completely. Developed by Lui Sha, et al. (University of Illinois)

title 11/5/2000 Overview of Simplex Architecture Safety Baseline Experimental Decision Module Physical System usus ubub ueue xu SC BC EX x0x0 Equilibrium state

title 11/5/2000 Inverted Pendulum Hard constraints: State vector: The control problem is solved using LMI and LQR and the linearized dynamics of the system. The stability region is given by Soft constraints: A performance index, e.g., Relative stability in time domain or frequency domain Bandwidth m l  x g M ufuf

title 11/5/2000 IP eSimplex implementation Device Drivers angle, track volts Decision Module Experimental Controller Switching logic Safety Controller

title 11/5/2000 eSimplex in MaCS Goal: –Provide a prototyping framework for control engineers –Separate control design from software engineering Approach: –A system is an extensible collection of controllers –Monitor switching conditions –Implement controller switches using steering

title 11/5/2000 eSimplex in MaCS Device Drivers angle, track volts Decision Module Experimental Controller Switching logic Safety Controller JNIJNI JNI monitor steer

title 11/5/2000 Java implementation of eSimplex Controller interface: public interface Controller { public float sendCommand(double angle, double track, double period); } Decision module: static SafetyController SC = new SafetyController(); static ExternalController EC = new EC1(); static Controller ctr; public void setSC() { ctr = SC; } public void setEC() { ctr = EC; } public int control(long frequency) { angle = nativeGetAngle(); track = nativeGetTrack(); volts = ctr.sendCommand(angle,track,frequency/1000.0); nativeSendCommand (volts); }

title 11/5/2000 Monitoring: IP.pedl MonScr IP export event ev_track_pos,ev_current_angle, ev_volts, startPgm; monobj int DecisionModule.period; monobj float DecisionModule.track; monobj float DecisionModule.angle; monobj float DecisionModule.volts; event startPgm = update(DecisionModule.period); event ev_current_angle = update(DecisionModule.angle); event ev_track_pos = update(DecisionModule.track); event ev_volts=update(DecisionModule.volts); end

title 11/5/2000 Checking: IP.medl Detecting violations ev_current_angle -> { theta' = value(ev_current_angle,0)/ ; thetadot' = (theta' - theta) / 0.040; } ev_track_pos-> { x' = value(ev_track_pos,0)/ 100; xdot' = (x' - x) / 0.040; } condition abnormal = (track_pos' > 40 || track_pos' = 4 ; event invokeSafeController = start(abnormal) when (controller == 1); event invokeExternalController = start(nTimer'%500 == 0) when (controller == 0); invokeSafeController -> { invoke change2SC(); controller = 0; } invokeExternalController -> { invoke change2EC(); controller = 1; }

title 11/5/2000 Checking: IP.medl Safety envelope computation event calcSafeVal = ev_volts when (controller == 1); calcSafeVal -> { volts'= value(ev_volts,0); xa_0' = x * theta * xdot *thetadot * volts'; xa_1' = * theta * xdot * thetadot – * volts'; xa_2' = * theta * xdot * thetadot * volts'; xa_3' = * theta *xdot *thetadot * volts'; temp_0' = *xa_0' * xa_1' *xa_2' *xa_3' ; temp_1' = *xa_0' * xa_1' *xa_2' *xa_3' ; temp_2' = *xa_0' * xa_1' *xa_2' *xa_3' ; temp_3' = *xa_0' * xa_1' * xa_2' *xa_3' ; safeVal' = xa_0'*temp_0' + xa_1'*temp_1' + xa_2'*temp_2' + xa_3'*temp_3'; }

title 11/5/2000 Steering: IP.sadl steering script IP steered objects DecisionModule IP:dm; float DecisionModule:volts; steering action change2EC= { call (IP:dm).setEC(); } before read DecisionModule:volts; steering action change2SC= { call (IP:dm).setSC(); } before read DecisionModule:volts; end

title 11/5/2000 Demonstration Checker detects violations when the experimental controller is running –Switches to safe controller when a violation is detected –After fixed time switches back to the experimental controller A terribly bad experimental controller –Sends constant output to the motor regardless of the situation

title 11/5/2000 Experimental results MaCS can successfully detect safety violations in eSimplex and force switching to the safety controller Keeps the pendulum upright even if the experimental controller fails completely Turnaround time for the detection/steering cycle is significantly smaller than the eSimplex control cycle –synchronous steering is possible

title 11/5/2000 Future directions Implement synchronous steering –Extend SADL to have both synchronous and asynchronous actions –Modify instrumentation to pause the program Note that steering is now tied to specific updates Coordination with PEDL may be needed MaCS on real-time Java Distributed MaCS