VEST: Virginia Embedded Systems Toolkit* Professor Jack Stankovic Department of Computer Science

Download Report

Transcript VEST: Virginia Embedded Systems Toolkit* Professor Jack Stankovic Department of Computer Science

VEST: Virginia Embedded
Systems Toolkit*
Professor Jack Stankovic
Department of Computer Science
University of Virginia
October 2001
• Supported, in part, by the Darpa PCES program.
Outline
•
•
•
•
•
Motivation/The Problem
Overview of the VEST Tool
(A Few) Research Questions
What this tool is NOT!
Summary/Status
Motivation
• 1998
– 100 million processors for workstations
– 6.4 billion for embedded systems
– approximately 2%
• 2001
– approximately 0%
• Ubiquitous computing (seemless, invisible,
pervasive, amorphous, …)
Embedded Systems
•
•
•
•
•
•
•
•
Engine control
Wristwatch
Modems
Mobile phone
Internet appliances
Process Control
Air Traffic Control
60 Processors in Limo
• Smart Spaces
• Sensor/Actuator/CPU
clouds with movable
entities
• Smart dust
Smart Spaces
• Pervasive
• Global Connectivity
Smart School
Smart Classroom
Smart City
Smart Factory
Key Issue
• Enormous numbers of devices and amounts
of software needed
– flexible and tailored (off-line for some systems;
on-line for others)
– interaction with physical/distributed environment
(of greater heterogeneity - not just cpus)
– many constraints
• power, mobility, real-time, cost, memory size, ft, etc.
• How do we develop, tailor, optimize software
for such systems in a cost effective manner?
Solution
• domain specific program composition
–
–
–
–
take embedded systems software from libraries
map to HW (sensors, actuators, CPUs, etc.)
tailor and optimize HW/SW
automate analysis and dependency checks
• address hidden dependencies (cross-cutting
concerns - aspects)
Program Composition
• Goal: building a tool that enables componentbased construction and analysis of embedded
systems
– flexible
– tailored
– considers
• power, mobility, distribution, heterogeneity, wireless,
sensors, actuators, scale, performance
What is a Component?
• High level components (Corba, DCOM, Java Beans)
– reusable, reliable, tailor, dynamic, written by domain experts,
…
– slow, unpredictable, weak on non-functional properties
(performance (real-time), dependability, …), hard to modify
• Need - Embedded System Components
How is it different?
• Performance concerns such as meeting deadlines;
dependability concerns
• Physical environment linkage is paramount
• Global analysis needed
• Not necessarily third party
– careful control over library
• Domain specific
– avionics, smart hospital, ...
• Hypothesis: Significant amounts of attached reflective
information (dependencies) are needed
Perspective/Design Tools
Requirements
Design/Design Analysis
Synthesis/(Components with
Analysis)
VEST
VEST Configuration Tool
Components
Micro-components
Infrastructures
Configuration Tool
Analysis Tools
Reflective Infor.
Dependencies
ASPECTS
Composition
• Infrastructure
• Embedded System
Dependency
Checks
• Factual
• Inter-component
• Aspects
• General
Analysis
• Real- Time
• Reliability
Configuration Tool
Base Libraries
Configuration Tool
Browse
Compose
Check
Analysis Tools
• SW
• OS
• Middleware
• Aspects
• Domain Code
• HW
• Infrastructures
Product Library
Composition
Dependency
Checks
• Factual
• Inter-component
• Aspects
• General
Map to
Process
Map to
HW
Dependency Dependency
Checks
Checks
Analysis
• Real- Time
• Reliability
VEST Workspace
Reflection Methodology
• Identify the reflective information (semantics)
• Retain the information in tools/on disk
• Perform dependency checks and analysis
based on that information
• Retain the information at runtime (flexibility)
• Expose the information to the application
code
Factual
ComponentID
Flag: SW/HW
Code
WCET
Memory/Size
Data
Bandwidth
Importance
Deadline
Security
Jitter
Power
HW
Bus,
memory,
processors,
cache,
D/A,
A/D,
sensor,
actuator,
co-processor,
DSP,
Networks
Power
speed
reliability
size
cost
accuracy
sensitivity
range
Inter-component
Dependencies
Interfaces (parameters and types)
Call graph
Precedence Requirements
Waits for
Exclusion requirements
Version compatibility
Included in
ASPECTS
• If it can not be cleanly encapsulated in a
generalized procedure
– affect the performance or semantics of
components
• Examples (categories)
–
–
–
–
–
end-to-end real-time performance
dependability
security
concurrency and synchronization
optimizations
Examples of Aspects
• Logging in Apache Web server
• Pre-fetching in OS
• Simple embedded system, then add kill
primitive
• Periodic tasks only, then add aperiodics
• Change system to use spin locks
• Sizing Message Buffers
• Many examples with Concurrency and RT
performance
Dependency Checks
• From the simple to the complex
– Ex. 1: Is there sufficient memory? (factual)
– Ex. 2: Are the input parameters of the correct
number and type? (inter-component)
– Ex. 3: Are interrupts disabled/enabled properly?
(aspect)
– Ex 4: Is the end-to-end real-time constraint being
met? (analysis)
Example: RT Analysis
Components/Tasks
Platform Components
WCET
D
Resources
Precedence
Speed
Bandwidth
Network protocols
Mapping
Workload
Analysis - H()
Composed (Distr) System
Reflective Information
Research Questions
• What are language independent aspects?
– Modular constraints (Vanderbilt)
– Instructions on how to change or test components
• What are the hidden dependencies that exist in
real-time and embedded systems; how do we
make these dependencies visible
– produces an effective methodology?
• How to integrate component composition with
design time tools
What this tool is NOT
• A complete requirements/specification/design
tool
– rather it concentrates on improving composition of
components from embedded systems libraries
• No proofs of correctness
– avoids common errors, avoids insidious cross
cutting errors that can crop up when composing
library based components
Summary
• Status:
– first version of tool is operational
– second version to include:
• support for objects, events
• mapping to active processes and HW
• additional aspect checks
– being migrated to GME
Reflection - Example
PCB - not reflective
registers
ptr to stack
priority
What it takes to
execute!
PCB Reflective
registers
ptr to stack
priority
deadline
FT requirements
part of group
Reflection in RTOS
• Enhances visibility of information between levels
(off-line to on-line)
– FT and RT information
– Individual module and system-wide policies
Simple Examples
1
2
3
vs
1
2
FT
3 exec.
3
T1 = P1; T2 = P2; T3 = P3;
Lost information
Node 1
Node 2
Node 3
System does not know they are related