Component Composition for Embedded Systems Using Semantic AspectOriented Programming - PowerPoint PPT Presentation

1 / 11
About This Presentation
Title:

Component Composition for Embedded Systems Using Semantic AspectOriented Programming

Description:

233 MHz StrongARM, 32 Mbytes, running Java on Linux ... Anyone can download it, use it, improve it. Real-Time Java as Infection Vector ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 12
Provided by: rad130
Category:

less

Transcript and Presenter's Notes

Title: Component Composition for Embedded Systems Using Semantic AspectOriented Programming


1
Component Composition for Embedded Systems Using
Semantic Aspect-Oriented Programming
  • Martin Rinard
  • Laboratory for Computer Science
  • Massachusetts Institute of Technology
  • F33615-00-C-1692

2
Problem Description
  • Need for improved flexibility, reliability, and
    predictability of software for embedded and
    real-time systems
  • Lack of real-time support in standard languages
    and systems
  • Lack of real-time memory management support in
    Java
  • Lack of real-time scheduling support in Java
  • Need for better support for dynamic distributed
    computations
  • Need to easily integrate new devices into running
    systems
  • Need for implementations that survive failures
  • Need to easily compose components on different
    platforms
  • Need for better understanding of distributed
    implementations
  • Understand communication patterns and their
    implications
  • Support for fault propagation analysis

3
Objectives Technical Approach
  • System Architecture
  • Distributed Object-Oriented Programming
  • Java shared object space
  • Dynamically deployed components
  • Publish/subscribe event model
  • Powerful event mechanism
  • Open, extensible system
  • Communication via shared objects
  • Object Relationship Analysis
  • Goal Match Object and Computation Lifetimes
  • Pointer and escape analysis for multithreaded
    programs
  • Goal Capture and exploit changing roles objects
    play
  • Roles change as objects move between data
    structures
  • Points-to relationships determine roles
  • Role specifications at method boundaries
  • Supplied by programmer or dynamically discovered
  • Statically verified by role analysis
  • Program analysis system statically knows all
    object references
  • Real-Time Java
  • Region-based object allocation
  • Compiler-controlled scheduling
  • Compile scheduling checks into generated code,
    check for
  • Asynchronous event dispatch
  • Preemptive thread scheduling
  • Priority ceiling and inheritance for monitors
  • Interaction Analysis
  • Characterizes interactions between components
  • Uses roles to extract detailed object usage
    information
  • Matches role changes and movements between
    components
  • Matches publishers and subscribers
  • Matches roles with object usage patterns
    (migrating, inherited, shared, private objects)
  • Extracts failure propagation information
  • Transformations
  • Replace general publish/subscribe mechanism with
  • Point-to-point communication (when appropriate)
  • Controlled multicast (when appropriate)
  • Request/response (when appropriate)
  • Preemtively move or replicate objects to close
    failure vulnerability windows

4
Contribution to PCES Goals
  • What we provide Automated understanding of
    distributed, embedded, and real-time software
  • Pointer and escape analysis
  • Role analysis
  • Interaction analysis
  • Some envisioned uses
  • Safe memory management alternatives
  • Verification of safe use of region-based
    allocation
  • Roles enable explicit deallocation instead of
    garbage collection
  • Interaction analysis
  • Understanding and validation of synchronization
    interactions
  • Understanding of communication patterns
  • Understanding of how failures propagate
  • Validations of ABSENCE of interactions
  • Transformations
  • Specialized, efficient communication
    implementations
  • Close windows of failure vulnerability

5
Contribution to Military Applications
  • Basic Contribution More Flexible, Reliable,
    Predictable Real-Time, Distributed, and Embedded
    Systems
  • Implementation technology to enable use of
    standard, widely used language (Java) in military
    applications
  • Compiler-controlled event and thread management
  • Memory management algorithms for real-time
    systems
  • Potential application areas
  • Real-time monitoring and control
  • Information collection and presentation
  • Integrating (distributed) systems of systems

6
Project Tasks and Schedule
  • Real-Time Java Implementation
  • Scoped Memories (Year 1)
  • Threads and Events (Year 3)
  • Publish/Subscribe Implementation
  • Initial prototype (Year 2)
  • Final version (Year 4)
  • Pointer and Escape Analysis (Year 1)
  • Role Analysis
  • Initial design and implementation (Year 2.5)
  • Final design and implementation (Year 4)
  • Interaction Analysis and Transformations
  • Failure propagation analysis (Year 3)
  • Transformations to close windows of failure
    vulnerability (Year 4)

7
Technical Progress/Accomplishments
  • Implementation of Real-Time Java Scoped Memories
  • Scoped memory allocation primitives
  • Pointer and escape analysis for multithreaded
    programs (PPoPP 01)
  • Verify correct use of scoped allocation
  • Eliminate dynamic checks
  • Incrementalized pointer and escape analysis (PLDI
    01)
  • Initial phases of distributed surveillance
    application
  • Initial JavaCar prototype 1/6 scale car with
  • 233 MHz StrongARM, 32 Mbytes, running Java on
    Linux
  • Camera, wireless ethernet, USB, various sensors
  • Speed and steering control
  • Initial role design, specification language,
    analysis

8
Next Milestones
  • Progress in Following Areas
  • Publish/Subscribe Design and Implementation
  • Realization in Java (Event class)
  • Event distribution mechanism
  • Shared object space mechanism
  • Real-Time Java Threads and Events
  • Role Design, Specification, and Analysis
  • JavaCar and Surveillance Applications

9
Collaborations
  • Washington University
  • Real-Time Java Memory Management
  • Dynamic Scope Generation (Washington)
  • Static Scope Verification (MIT)
  • Kansas State University
  • Anyone else with Real-Time Java needs
  • We provide open implementation
  • We provide analysis

10
Technology Transfer
  • Real-Time Java
  • Implementation available under GNU GPL
  • Anyone can download it, use it, improve it
  • Real-Time Java as Infection Vector
  • Integrated pointer and escape analysis
  • Correctness tool for region allocation
  • Enables stack allocation (reduces memory
    footprint)
  • Integrated role discovery and analysis
  • Dynamic discovery leads to easy initial
    experience
  • Roles become central abstraction for developer
  • Roles publish/subscribe system easy,
    effective distribution
  • Communication and failure propagation analysis
  • Useful transformations
  • Dynamic deployment
  • Our system serves as prototype
  • Illustrates key implementation techniques
  • Helps others evaluate suitability for their
    application

11
Funding Profile
  • Current expenditures 150,000
  • Current burn rate 30,000 per month
  • Burn rate will rise as project continues to ramp
    up
Write a Comment
User Comments (0)
About PowerShow.com