John D. McGregor Module 3 Session 2 AADL

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Threads, SMP, and Microkernels
Executional Architecture
WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
ComS 512 Project John Altidor Michelle Ruse Jonathan Schroeder.
© 2004 by Carnegie Mellon University The Society of Automotive Engineers (SAE) Architecture Analysis & Design Language (AADL) Standard An International.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Computer Parts Assignment
Sponsored by the U.S. Department of Defense © 2005 by Carnegie Mellon University 1 Pittsburgh, PA Architecture Analysis & Design Language (SAE.
Architecture Modeling and Analysis for Embedded Systems Oleg Sokolsky CIS700 Fall 2005.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
© 2007 by Carnegie Mellon University Model-Based Engineering with the SAE AADL Software Engineering Institute Carnegie Mellon University Pittsburgh, PA.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Chapter 13 Embedded Systems
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Component Symbols process Thread Auto-sized with text label Processor Memory System data Device bus Threadgroup subprogram.
Courseware Basics of Real-Time Scheduling Jan Madsen Informatics and Mathematical Modelling Technical University of Denmark Richard Petersens Plads, Building.
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
An Introduction to Rational Rose Real-Time
What is Concurrent Programming? Maram Bani Younes.
MAC-T IVV SAS_08_AADL_Tech_Gluch Model-Based Software Assurance with the SAE Architecture Analysis & Design Language (AADL) California Institute.
SYSE 802 John D. McGregor Module 3 Session 4 Solution.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Computer System Overview Chapter 1. Operating System Exploits the hardware resources of one or more processors Provides a set of services to system users.
Advanced Operating Systems CIS 720 Lecture 1. Instructor Dr. Gurdip Singh – 234 Nichols Hall –
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.
NATIONAL INSTITUTE OF SCIENCE & TECHNOLOGY Presented by: Santosh kumar Swain Technical Seminar Presentation by SANTOSH KUMAR SWAIN Roll # CS
Using AADL to Model a Protodol Stack Didier Delanote, Stefan Van Baelen, Wouter Joosen and Yolande Berbers Katholieke Universiteit Leuven.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
CPSC 875 John D. McGregor C10 – Physical architecture.
1 of 14 1/15 Synthesis-driven Derivation of Process Graphs from Functional Blocks for Time-Triggered Embedded Systems Master thesis Student: Ghennadii.
1 AADL Architectural Analysis and Design Language Jason Mowry UW-Platteville Undergraduate Software Engineering.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
SIGAda, Atlanta, nov’05 1/20 Scheduling and Memory requirements analysis with AADL F. Singhoff, J. Legrand, L. Nana, L. Marcé University of Brest, France.
Reference: Ian Sommerville, Chap 15  Systems which monitor and control their environment.  Sometimes associated with hardware devices ◦ Sensors: Collect.
1 LiSyC ENSIETA/DTN 02/04/2008 AADL execution semantics transformation for formal verification Joel Champeau, Thomas Abdoul, Pierre Yves Pillain, Philippe.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
XOberon Operating System CLAUDIA MARIN CS 550 Fall 2005.
Model-Based Embedded Real- Time Software Development Dionisio de Niz and Raj Rajkumar Real-Time and Multimedia Sys Lab Carnegie Mellon University.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
1: Operating Systems Overview 1 Jerry Breecher Fall, 2004 CLARK UNIVERSITY CS215 OPERATING SYSTEMS OVERVIEW.
Department of Industrial Engineering Sharif University of Technology Session# 6.
1 Dealing with AADL End-to-end Flow Latency in UML MARTE AOSTE INRIA/I3S Sophia Antipolis, France S-Y. Lee, F. Mallet, R. de Simone.
CPSC 871 John D. McGregor Module 3 Session 2 AADL.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Programmable Logic Controllers LO1: Understand the design and operational characteristics of a PLC system.
Architecture Analysis and Design Language: An Overview Drew Gardner.
Unit 4 Day 1 FOCS – Introduction to Programming. Journal Entry: Unit #5Entry #1 In detail describe programming in Scratch. Describe how to use Events,
CPSC 875 John D. McGregor Reference Architectures C9.
1.  System Characteristics  Features of Real-Time Systems  Implementing Real-Time Operating Systems  Real-Time CPU Scheduling  An Example: VxWorks5.x.
1 Chapter 1 Basic Structures Of Computers. Computer : Introduction A computer is an electronic machine,devised for performing calculations and controlling.
A Brief Introduction to Architectural Modeling Using AADL and Collaborative, Adaptive Cruise Control John D. McGregor Roselane S. Silva.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
CpSc 875 John D. McGregor C11 - Documentation. Stock trading system trading-system-architecture- post/#prettyPhoto[slides]/7/
SOFTWARE DESIGN AND ARCHITECTURE
COEN 421- Embedded System and Software Design
CS703 - Advanced Operating Systems
Real-time Software Design
John D. McGregor Session 8 Evaluating Architectures written in AADL
Shanna-Shaye Forbes Ben Lickly Man-Kit Leung
Threads, SMP, and Microkernels
John D. McGregor Design Concept C5
Principles of Programming Languages
Chapter 2 Operating System Overview
Chapter 13: I/O Systems.
Presentation transcript:

John D. McGregor Module 3 Session 2 AADL CPSC 871 John D. McGregor Module 3 Session 2 AADL

NASA sample architecture – located off my home page www. cs. clemson NASA sample architecture – located off my home page www.cs.clemson.edu/~johnmc under resources Reliability Correctness Latency

AADL The Architecture Analysis and Design Language (AADL) is a systems architecture description language AADL is a standard of the Society of Automotive Engineers We will use this language as representative of architecture description languages. I have used this on projects such as a set of helicopters for the Army.

AADL - 2 The Software Engineering Institute (SEI) has done much to support the development and use of AADL. The SEI has developed a toolset, OSATE, that supports developing architectural models using AADL. OSATE ships with Topcased. Much information can be found on www.aadl.info

AADL intro I suggest you read at least chapters 2, 3, and 4 in the tech report at this url to get an overview: http://www.sei.cmu.edu/library/abstracts/reports/06tn011.cfm

Three classes of elements in AADL 1. application software a. thread: a schedulable unit of concurrent execution b. thread group: a compositional unit for organizing threads c. process: a protected address space d. data: data types and static data in source text e. subprogram: callable sequentially executable code 2. execution platform a. processor: components that execute threads b. memory: components that store data and code c. device: components that interface with and represent the external environment d. bus: components that provide access among execution platform components 3. composite a. system: a composite of software, execution platform, or system components

Basic pieces Control and data flow through ports at the interface of each module (system in AADL syntax) Determined by port type: event port, event data port, data port A ADL System implementation S1.impl pt1 Process P2 flow path F5 C1 C3 Connection C5 Process P1 flow path F7 www.sei.cmu.edu

System Type system GPS features speed_data: in data port metric_speed {arch::miss_rate => 0.001 mps;}; geo_db: requires data access real_time_geoDB; s_control_data: out data port state_control; flows speed_control: flow path speed_data -> s_control_data properties arch::redundancy => 2 X; end GPS; Key points (Objectives of the Slide): Slide Content Description: Presentation Script: The interface of a component specifies ports, required access to shared data, and flow of information through the component. Properties can be specified for the component itself or its features. In our example we specify the degree of redundancy of the component as a whole to accommodate fault tolerance and characteristics of the data stream to flow through ports. The SAE AADL Standard: An Architecture Analysis & Design Language for Developing Embedded Real-Time Systems by Lewis and Feiler AADL Tutorial

System Implementation system implementation GPS.secure subcomponents decoder: system PGP_decoder.basic; encoder: system PGP_encoder.basic; receiver: system GPS_receiver.basic; connections c1: data port speed_data -> decoder.in; c2: data port decoder.out -> receiver.in; c3: data port receiver.out -> encoder.in; c4: data port encoder.out -> s_control_data; flows speed_control: flow path speed_data -> c1 -> decoder.fs1 -> c2 -> receiver.fs1 -> c3 -> decoder.fs1 -> c4 -> s_control_data; modes none; properties arch::redundancy_scheme => Primary_Backup; end GPS; Key points (Objectives of the Slide): Slide Content Description: Presentation Script: The interface of a component specifies ports, required access to shared data, and flow of information through the component. Properties can be specified for the component itself or its features. In our example we specify the degree of redundancy of the component as a whole to accommodate fault tolerance and characteristics of the data stream to flow through ports. AADL Tutorial

Thread Thread Is a schedulable unit dispatched based on time or arrival of events Executes on a processor under a specified scheduling protocol Executes within a protected address space Interacts with other threads through port connections, server subprogram calls, and shared data access Remote service calls Key points (Objectives of the Slide): Threads have completely specified interfaces. Interaction with other components is limited to the features specified in the thread type. Slide Content Description: Presentation Script: Thread: schedulable unit Periodic, sporadic, aperiodic, and background are dispatch protocols defined by the core AADL Threads execute in a shared process address space, but their interaction with other threads is controlled by their interface specification. This allows threads to be relocated to different processors without affecting their interaction with other threads through port communication and remote subprogram calls. In case of shared variable use remote invocation of data access methods can provide distributed processing support. Features: port, server subprogram, requires data access, provides data access Flow specs, Properties Subcomponents: Data Call sequences, Connections, Flow implementations, End-to-end flows, Modes, Properties AADL Tutorial

Thread Dispatch Protocols 5ms Periodic thread represents periodic dispatch of threads with typically hard deadlines. Aperiodic thread represents event-triggered dispatch of threads with typically hard deadlines. Sporadic thread represents dispatching of threads with minimum dispatch separation and typically hard deadlines. Background thread represents threads that are dispatched once and execute until completion. 5ms Key points (Objectives of the Slide): Slide Content Description: Presentation Script: Threads have dispatch protocol-specific properties: period, deadline, worst-case execution time. the time interval between successive dispatches of a thread whose scheduling protocol is periodic the minimum interval between successive dispatches of a thread whose scheduling protocol is sporadic. Thread Dispatching Periodic represents periodic dispatch of threads with hard deadlines. Aperiodic represents event-triggered dispatch of threads with hard deadlines. Sporadic represents event-triggered dispatching of threads with minimum spacing of dispatches. B AADL Tutorial

Thread Execution Semantics Nominal & recovery Fault handling Resource locking Mode switching Initialization & finalization AADL Tutorial

Flows in AADL A ADL A ADL A ADL A A ADL ADL System S1 Flow Specification F1: flow path pt1 -> pt2 F2: flow path pt1 -> pt3 A ADL flow path F1 pt2 pt1 flow path F2 pt3 A ADL pt1 System implementation S1.impl Process P2 Connection flow path F5 C1 pt2 Flow Implementation F1: flow path pt1 -> C1 -> P2.F5 -> C3 -> P1.F7 -> C5 -> pt2 C3 pt3 Process P1 C5 flow path F7 A flow specification is a mapping from input ports to output ports. Flow specifications represent logical flows; port types do not have to match. Multiple flow specifications can be defined for the same pair of ports. End-To-End Flow Declaration SenseControlActuate: end to end flow Sensor.FS1 -> C1 -> Controller.F1 -> C2 -> Actuator.FS1 flow path F1 flow sink FS1 flow source FS1 C1 A ADL C2 A ADL Sensor A ADL Actuator Controller AADL Tutorial

Port groups A ADL A ADL A ADL A ADL A ADL A ADL A ADL A ADL A ADL A Avionics System A ADL Page Content Manager A ADL A ADL Warning Annunciation Manager A ADL Flight Manager Display Manager A ADL A ADL Flight Director A ADL Weapons Manager A ADL A ADL Situation Awareness A ADL A ADL Comm. Manager A ADL A ADL Auto-Pilot A ADL Nav Radio G PS www.sei.cmu.edu

Primary Backup Synchronization External and internal mode control Errors reported as events Supports reasoning about Primary/Backup logic Primary Init/restart 20Hz Mode A ADL 20Hz Primary Backup A ADL WAM Primaryfail init state A ADL Key points (Objectives of the Slide): Slide Content Description: Presentation Script: Primaryok 20Hz A ADL 20Hz WAM Backup Observer state A ADL AADL Tutorial

Redundancy schemes A ADL A ADL A ADL A ADL A ADL A ADL Passive Backup Continuous State Exchange Hot Standby A ADL CSS1 Primary A ADL CSS1 Primary CSS1 A ADL SS1.1 SS1.1 SS1.1 State SS1.2 SS1.2 SS1.2 A ADL CSS1 Backup A ADL CSS1 Backup Voted Output SS1.1 SS1.1 A ADL CSS1 SS1.2 SS1.2 SS1.1 SS1.2 SS1.3 www.sei.cmu.edu

AADL Components - Graphical Application Software Execution Platform data A ADL device process Thread memory bus The next slides use the graphical notation for the AADL components shown here. Additional graphical detail is also added on the following of the slides for connections, bindings, ports, etc. These are the component categories. The modeling vocabulary of AADL supports modeling of the application systems executing on executing platform with focus on runtime properties of the embedded system. Application systems can be modeled in terms of concurrently executing components that interact and access data. These components have precise execution semantics. They can be composed into hierarchical systems. The execution platform consists of processors (for executing threads), memory (for holding code and data), buses, to provide connectivity of execution platform components, and devices to interface with the external environment. System Composition System A ADL processor AADL Tutorial

Operational system Prespolei_r_04dec07_ellidiss_1J1kz7.ppt SYSTEM Control_System END Control_System; SYSTEM IMPLEMENTATION Control_System.others SUBCOMPONENTS CPU : PROCESSOR CPU; Memory_Bus : BUS Memory_Bus; RAM : MEMORY RAM; ROM : MEMORY ROM; Control_SW : PROCESS Control_SW; IO : DEVICE IO; IO_Bus : BUS IO_Bus; Sensor : DEVICE Sensor; Actuator : DEVICE Actuator; CONNECTIONS EVENT DATA PORT Control_SW.Actuator -> IO.Actuator; EVENT DATA PORT IO.Sensor -> Control_SW.Sensor; BUS ACCESS Memory_Bus -> CPU.Memory_Bus; BUS ACCESS Memory_Bus -> RAM.Memory_Bus; BUS ACCESS Memory_Bus -> ROM.Memory_Bus; BUS ACCESS IO_Bus -> IO.IO_Bus; BUS ACCESS IO_Bus -> Sensor.IO_Bus; BUS ACCESS IO_Bus -> Actuator.IO_Bus; END Control_System.others; Prespolei_r_04dec07_ellidiss_1J1kz7.ppt www.ellidiss.com

Connections process implementation ProdCons.default subcomponents theProd: thread Prod.Impl; theCons: thread Cons.Impl; connections EventConnection1: event port start -> theProd.start; DataConnection1: data port theProd.val -> theCons.val; end ProdCons.default; Prespolei_r_04dec07_ellidiss_1J1kz7.ppt

Property set property set Clemson is MbitPerSec : type units (MPS, GPS => MPS*1000); Band_width: type aadlinteger units Clemson::MbitPerSec; Radio_band_width: Clemson::Band_width applies to (all); Band_width_802_11g: constant Clemson::Band_width => 54 MPS; Band_width_802_11n: constant Clemson::Band_width => 300 MPS; Band_width_fast_ethernet: constant Clemson::Band_width => 100 MPS; end Clemson;

Use of Property Set package infoSys public system Infotainment features radio : requires bus access; end Infotainment; system implementation Infotainment.basic properties Clemson::Radio_band_width => value (Clemson::Band_width_802_11g) applies to radio; end Infotainment.basic; end infoSys;

Real time Prespolei_r_04dec07_ellidiss_1J1kz7.ppt PROCESS Control_SW FEATURES Sensor : IN EVENT DATA PORT T_Flow; Actuator : OUT EVENT DATA PORT T_Flow; END Control_SW; PROCESS IMPLEMENTATION Control_SW.others SUBCOMPONENTS Sensor_Input : THREAD Init; Low_Pass_Filter : THREAD Low_Pass_Filter; Actuator_Command : THREAD Actuator_Command; Samples : DATA Samples; CONNECTIONS EVENT DATA PORT Sensor -> Sensor_Input.Input; EVENT DATA PORT Actuator_Command.Output -> Actuator; DATA PORT Sensor_Input.Raw_Data -> Low_Pass_Filter.Raw_Data; DATA ACCESS Samples -> Low_Pass_Filter.Samples; DATA ACCESS Samples -> Actuator_Command.Samples; END Control_SW.others; THREAD Actuator_Command FEATURES Output : OUT EVENT DATA PORT T_Flow; Samples : REQUIRES DATA ACCESS Samples; PROPERTIES Dispatch_Protocol => Periodic; Period => 100 ms; END Actuator_Command; Prespolei_r_04dec07_ellidiss_1J1kz7.ppt

Simulation AADL can describe a completely bound system One that has a complete hardware description as well as software so that a system can be “executed” to the degree of accuracy of the architectural design.

Simulation Ocarina, a set of plug-ins for Eclipse converts AADL code into timed petri nets. Existing petri net simulators execute the net by firing tokens and traversing all places in the net. These executions determine whether the system defined by the AADL code could achieve live lock or dead lock. www.sei.cmu.edu

AADL Tutorials http://ebooks-online24.com/download/AADL-ppt-38.html http://www.aadl.info/aadl/documents/AADLpattern82004.pdf http://people.cs.kuleuven.be/~stefan.vanbaelen/public_html/deptcw/ACES-MB/2009/ACES-MB11.pdf https://wiki.sei.cmu.edu/aadl/images/7/78/Vogl_Hecht_Lam_Aerotech_09.pdf