Introduction to Open Architecture for Real-Time Systems Dr

Slides:



Advertisements
Similar presentations
Real Time Scheduling.
Advertisements

Introduction to Embedded Systems Resource Management - III Lecture 19.
A Sample RTOS Presentation 4 Group A4: Sean Hudson, Manasi Kapadia Syeda Taib.
Sensor Network Platforms and Tools
Chapter 13 Embedded Systems
Embedded and Real Time Systems Lecture #4 David Andrews
Chapter 13 Embedded Systems
By Group: Ghassan Abdo Rayyashi Anas to’meh Supervised by Dr. Lo’ai Tawalbeh.
CprE 458/558: Real-Time Systems
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 1.
Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to Software Architecture
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Salim Hariri HPDC Laboratory Enhanced General Switch Management Protocol Salim Hariri Department of Electrical and Computer.
Real-Time Systems Mark Stanovich. Introduction System with timing constraints (e.g., deadlines) What makes a real-time system different? – Meeting timing.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Real-Time Operating System Design
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
CONCEPTS OF REAL-TIME OPERATING SYSTEM. OBJECTIVE  To Understand Why we need OS?  To identify Types of OS  To Define Real - Time Systems  To Classify.
Real-Time Operating Systems RTOS For Embedded systems.
Advanced Software Engineering Dr. Cheng
Embedded System Scheduling
Real-time Software Design
Real-time Software Design
OPERATING SYSTEMS CS 3502 Fall 2017
REAL-TIME OPERATING SYSTEMS
Software Architecture
Chapter 1: Introduction to Systems Analysis and Design
Architecture & System Performance
Architecture & System Performance
Architecture Concept Documents
Unit OS9: Real-Time and Embedded Systems
IEEE Std 1074: Standard for Software Lifecycle
מעבדה במערכות משובצות ד"ר מרינה ליפשטיין דוא"ל:
Lecture 4 Schedulability and Tasks
Chapter 7: Designing the Architecture
Real Time Operating System
Real-time Software Design
Chapter 1: Introduction
Chapter 6: CPU Scheduling
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Chapter 20 Object-Oriented Analysis and Design
Chapter 2: The Linux System Part 3
Architectures of distributed systems Fundamental Models
CS 501: Software Engineering Fall 1999
CPU SCHEDULING.
Architectures of distributed systems Fundamental Models
An Introduction to Software Architecture
Multiprocessor and Real-Time Scheduling
Chapter 1: Introduction to Systems Analysis and Design
Scheduling Basic Concepts Ref: Hard Real-Time Computing Systems Giorgio Buttazzo Ref: Real-Time Systems & Software Alan Shaw Processes - Tasks.
Presented By: Darlene Banta
Implementation support
Architectures of distributed systems
Operating System , Fall 2000 EA101 W 9:00-10:00 F 9:00-11:00
Supporting Time-Sensitive Applications on a Commodity OS
Architectures of distributed systems Fundamental Models
Appendix 3 Object-Oriented Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
From Use Cases to Implementation
UML Design for an Automated Registration System
Implementation support
Software Architecture
Presentation transcript:

Introduction to Open Architecture for Real-Time Systems Dr Introduction to Open Architecture for Real-Time Systems Dr. Doug Locke Vice President of Technology

Agenda What is Real-Time? What is Meant by “Open”? Software Life Cycle Architecture Issues in Real-Time Real-Time in the Software Life Cycle How to Get There

Real-Time There are three basic real-time performance models (Plus many variations) Hard Real-Time – Must always meet time constraints Timing failure has significant consequences Soft Real-Time – Must meet time constraints Timing failure has minor consequences Must not miss too often and/or miss by too much Non Real-Time – Has no defined time constraints Timing failure is not defined Non- Soft Hard Real-Time

Levels of Real Time Performance Measured (quantitative indications) - may or may not be repeatable Repeatable Measured Measuring the temperature 3 days DOES NOT help tomorrow Statistically Predictable Architecture Statistical - average response and related standard deviation Analytically Guaranteed bounded latency Maximum duration between an event and its associated response Deterministic Knowledge of every state of a system over time The above Goals Utilize different architectures, tools, and infrastructure approaches!

Construction and Analysis Techniques Measured - ad hoc Repeatable Control over “hidden” daemons, interrupt handlers E.g. spoolers, garbage collectors, low - level message handlers Statistically Predictable Often used architectures : Internal queuing, asynchronous messaging Analysis: Simulation via use cases Queuing Theory Analytically Guaranteed Latency Often used Architectures - Shared Resources, Fixed Priority Scheduling, “Real-Time” O/S Kernels Analysis: Rate Monotonic Analysis Deterministic Cyclic executives Dynamic Static

What is Meant by “Open”? Traditionally “open systems” implied that: Every component implements only publicly defined standards created by open processes Some Problems Is TCP/IP Open? (Produced by the government) Is Linux Open? (Not compliant to POSIX or other standards) Is CORBA Open? (Produced by a consortium) Is Windows® Open? (Owned by a single corporation) A Practical Definition An Open system is one whose infrastructure is Widely accepted, Responsive to user needs, Is unlikely to be changed capriciously, Is not exorbitantly expensive.

Open Architecture An Open Architecture is: For Real-Time Systems Implementable using an open infrastructure Developed using an open methodolgy Described by an open notation Predictably successful meeting requirements using open predictive techniques For Real-Time Systems An open architecture must be predictably capable of meeting application time constraints

Software Life Cycles Requirements Architecture High Level Design Where the Performance Problems Originate Architecture High Level Design Low Level Design Code Unit Test System Test Where the Performance Problems Become Visible Final Test Deployment

Architectural-Level Abstraction Alarm Clock TIME SET_TIME DISPLAY TIME SOUNDS SET_ALARM_TIME ENABLE_ALARM DISABLE_ALARM This FUNCTIONAL interface hides critical information: Concurrency not exposed until too late!

Enhanced Alarm Clock #1- Concurrency TIME SET_TIME Set TIME SET_ALARM_TIME Timekeeper ENABLE_ALARM Set Alarm Mgr DISABLE_ALARM Enable Disable Tick Alarm Clock

Consequences of Concurrency Cooperation between the concurrent threads: Sharing of the value for Time Sharing of alarm time and wakeup enabled state The semantics used to make the problem tractable presents SHARED RESOURCES as a basic architecture concept Different sharing policies (discussed later) have a MAJOR effect on performance timing

Enhanced Alarm Clock #2- Concurrency and Sharing TIME SET_TIME Set TIME TIME SET_ALARM_TIME Timekeeper ENABLE_ALARM Set Alarm Mgr AL TIME DISABLE_ALARM Enable Disable Shared Resource On/OFF Tick Alarm Clock

Concurrent Elements Can Support Analyzability Concurrent Element Specifications must convey: Creation Mechanism – Static, Dynamic Initiation Timing - Periodic, Aperiodic, Statistical Algorithmic Behavior ( Logical Behavior + Path Length) Pathological Outcomes ( Behavior + Timing) Communication and Synchronization Cooperation Protocols + Resources Used Context Sensitive Initiation Conditions ( Guards, Barriers) Synchronization Protocols

What’s Wrong Traditional Resource Management? Functional Approach to Family Needs: Get Groceries Take Kids to Soccer Buy parts and fix leaky plumbing The “Traditional” Implementation Binding Mom will shop for the groceries and take the kids to soccer Dad will get the hardware and do the plumbing repair Shared Resource: The Family Car Actions using the car are SEQUENCED because they share the car This affects performance Families may have multiple cars – resource allocation based on performance concerns. This family has 2 cars (and two drivers)

What I Forgot to Tell You The Hardware store is adjacent to the market, both 5 minutes away The soccer field is 45 minutes away through traffic! From a performance-driven perspective, Mom should not do both the soccer task and the grocery task using the same car. Giving Dad the both the plumbing and the grocery jobs will reduce the load on the resources.

What if the Purchase thread had a 20 minute deadline ? Sample Notation Schedulable Resource Logical Resource Action Trigger Thread What if the Purchase thread had a 20 minute deadline ?

Performance Analysis Using Concurrency Model Interaction Model Worst-case Scenarios Timing Parameters- guesses (engineering judgment), measurements Construct one or more of Discrete Event Simulation Schedulability Analysis (Analysis) Throughput Estimate Maintain models throughout implementation Start with estimates Refine estimates as detailed design is undertaken Replace estimates with measurements when possible

Real-Time in the Software Life Cycle Deployment Final Test System Test Unit Test Code Low Level Design High Level Design Architecture Requirements Identify Performance Requirements Select Architecture Known to Support Real-Time Separate Performance Requirements Among Elements Analysis & Simulation Identify Synchronization Mechanisms Ensure Correct Synchronization Check Locks Named & Coded Correctly Watch for Anomalies Under Load

Summary When time constraints are important Identify them early Define concurrency to support time constraints Define interaction protocols Use open architectural patterns known to meet time constraints Do analysis or simulation as soon as concurrency is defined Make model using performance budgets Refine budgets throughout life cycle Works just like cost budget process Made at project inception Tracked throughout project When budget breaks, reallocate or add resources, or change schedule Available from TimeSys: TimeWiz (Analysis & Simulation) & Architecture Training Classes