Introduction to Real-Time Systems



Similar documents
Contents. Chapter 1. Introduction

School of Computer Science

Lecture 1. Introduction to Embedded Computer Systems

Embedded Software development Process and Tools: Lesson-3 Host and Target Machines

Predictable response times in event-driven real-time systems

Weighted Total Mark. Weighted Exam Mark

Linux A multi-purpose executive support for civil avionics applications?

Advanced Operating Systems (M) Dr Colin Perkins School of Computing Science University of Glasgow

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software

Program Optimization for Multi-core Architectures

Performance Comparison of RTOS

Real Time Programming: Concepts

ELEC 5260/6260/6266 Embedded Computing Systems

DECEMBER 2015 PTAB Public Hearing Schedule

REAL-TIME STREAMING ANALYTICS DATA IN, ACTION OUT

How To Compare Real Time Scheduling To A Scheduled Scheduler On Linux On A Computer System With A Visualization System

Architectures and Platforms

Operating Systems 4 th Class

Embedded Linux development training 4 days session

Trends in Embedded Software Engineering

Overview and History of Software Engineering

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis

SCADE Suite in Space Applications

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

Components of a Computing System. What is an Operating System? Resources. Abstract Resources. Goals of an OS. System Software

SOFTWARE DEVELOPMENT FOR EMBEDDED SYSTEMS

Lecture 3 Theoretical Foundations of RTOS

Motivations 1. What is (or should be) the essential preoccupation of computer scientists?

Unit 1: INTRODUCTION TO ADVANCED ROBOTIC DESIGN & ENGINEERING

Embedded Software development Process and Tools:

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

LONG BEACH CITY COLLEGE MEMORANDUM

Process Scheduling CS 241. February 24, Copyright University of Illinois CS 241 Staff

Using semantic properties for real time scheduling

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

Exercises : Real-time Scheduling analysis

Resource Utilization of Middleware Components in Embedded Systems

Java Environment for Parallel Realtime Development Platform Independent Software Development for Multicore Systems

School of Computer Science

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Cruise Line Agencies of Alaska. Cruise Ship Calendar for 2016 FOR PORT(S) = KTN AND SHIP(S) = ALL AND VOYAGES = ALL

Overview and History of Operating Systems

Center for Hybrid and Embedded Software Systems

Mobile Operating Systems. Week I

Real-Time Operating Systems.

Programming real-time systems with C/C++ and POSIX

Runtime Verification for Real-Time Automotive Embedded Software

urt51: AN EMBEDDED REAL-TIME PROCESSOR IMPLEMENTED ON FPGA DEVICES

Cruise Line Agencies of Alaska. Cruise Ship Calendar for 2016 FOR PORT(S) = KTN AND SHIP(S) = ALL AND VOYAGES = ALL

Operating System for the K computer

Chapter 1: Introduction. What is an Operating System?

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

An Ada design pattern recognition tool for AADL performance analysis

What is a System on a Chip?

F-22 Raptor. Agenda. 1. Motivation

Web Application Architectures

DESIGN ISSUES AND CLASSIFICATION OF WSNS OPERATING SYSTEMS

M.Tech. Software Systems

Making Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association

School of Computer Science

From Digital Television to Internet? A general technical overview of the- DVB- Multimedia Home Platform Specifications

Programming Languages

Certification Authorities Software Team (CAST) Position Paper CAST-13

Operating Systems Introduction

Software Development Under Stringent Hardware Constraints: Do Agile Methods Have a Chance?

Real Time Developer Studio. Emmanuel Gaudin

Chapter 12. Development Tools for Microcontroller Applications

Code Sharing using C++ between Desktop Applications and Real-time Embedded Platforms

7a. System-on-chip design and prototyping platforms

Software design (Cont.)

Software Stacks for Mixed-critical Applications: Consolidating IEEE AVB and Time-triggered Ethernet in Next-generation Automotive Electronics


The Kiel Reactive Processor

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

U11 Boys Black March 21st Monday 6:00-7:30 p.m. Damien Training Field 2 March 24th Thursday 4:30-6:00 p.m. Damien Training Field 2 March 28th Monday 6

Open Source Implementation of Hierarchical Scheduling for Integrated Modular Avionics

QoS and Communication Performance Management

TASTE: An open-source tool-chain for embedded system and software development

Quality of Service Management for Teleteaching Applications Using the MPEG-4/DMIF

A hypervisor approach with real-time support to the MIPS M5150 processor

Best Practices for Verification, Validation, and Test in Model- Based Design

Code generation under Control

Exception and Interrupt Handling in ARM

Incorporating Multicore Programming in Bachelor of Science in Computer Engineering Program

Ada Real-Time Services and Virtualization

3 - Introduction to Operating Systems

Chapter 1 Basic Introduction to Computers. Discovering Computers Your Interactive Guide to the Digital World

Software in safety critical systems

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

Artificial Intelligence. Class: 3 rd

174: Scheduling Systems. Emil Michta University of Zielona Gora, Zielona Gora, Poland 1 TIMING ANALYSIS IN NETWORKED MEASUREMENT CONTROL SYSTEMS

Draft dpt for MEng Electronics and Computer Science

Low-Overhead Hard Real-time Aware Interconnect Network Router

How To Understand The History Of An Operating System

ARM Microprocessor and ARM-Based Microcontrollers

Introduction to Cloud Computing

EVALUATING INDUSTRIAL ETHERNET

Mobile Operating Systems Lesson 05 Windows CE Part 1

Mariano Gómez Plaza. Computer Engineering DESCRIPTION OF THE RESEARCH RESULTS

Transcription:

Introduction to Real-Time Systems Frank Singhoff Office C-202 University of Brest, France singhoff@univ-brest.fr University of Brest Page 1/26

Summary 1. Some definitions. 2. Example of real-time systems. 3. Real-Time systems require specific analysis and programming methods. 4. Summary, further readings, planning of the week. 5. References. University of Brest Page 2/26

Real-time systems (1) "Real-time systems are defined as those systems in which the correctness of the system depends not only on the logical result of computation, but also on the time at which the results are produced" [STA 88]. Properties we look for : Functions must be predictable : the same data input will produce the same data output. Timing behavior must be predictable : must meet temporal constraints (e.g. deadline, response time). = Predictable means... we can compute the system temporal behavior before execution time. University of Brest Page 3/26

Real-time systems (2) A real time system is NOT a system that runs quickly... this is a system that has temporal constraints to meet. Examples of temporal constraints[dor 91, DEM 99]: Few milliseconds for radar systems. One second for machine-man interfaces (in an aircraft for example). Hours for some chemical reactions. 24 hours for weather forecast. Several months or years for some spacecrafts (Mars Express, Voyager,...). University of Brest Page 4/26

Real-time systems (3) Different types of real-time systems : Hard (or critical) real-time systems: temporal constraints MUST be met, otherwise defects could have a dramatic impact on human life, on the environment, on the system,... Soft (or non critical) real-time systems: temporal constraints cannot (sometimes) be met without any dramatic impact. Opened or closed real-time systems: tasks/functions can be launched/created at execution time? University of Brest Page 5/26

Real-time systems (4) Different types of real-time systems : Embedded systems: An embedded system is a computer system designed for specific control functions within a larger system. Often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts (e.g. mobile phone, aircraft, automotive,...) Distributed systems: "A distributed system consists of a collection of autonomous computers, connected through a network which enables computers to coordinate their activities and to share resources." Coulouris et al. [COU 94]. Distributed systems are required: For dependability (redundancy). Due to physical constraints. For efficiency (resource sharing). University of Brest Page 6/26

Real-time systems (5) Problems raised by embedded systems: Difficult to update/correct when a software failure is discovered (e.g. mobile phone, spacecraft). Problems raised by distributed systems: Heterogeneity. Timing behavior. Have many different resources. University of Brest Page 7/26

Summary 1. Some definitions. 2. Example of real-time systems. 3. Real-Time systems require specific analysis and programming methods. 4. Summary, further readings, planning of the week. 5. References. University of Brest Page 8/26

Example 1: aircraft Hard and closed real-time systems: Temporal constraints: worst case response time, deadline,... Strong requirements to meet temporal constraints. Resource reservation on the worst case: to be sure that resources are available when they are required. Closed systems : all tasks are known at design time and are launched at system s switch on. Resource requirements are easy to estimate. Use of software and hardware redundancy. Use of dedicated software and hardware components : Real-time operating system (e.g. RTEMS), embedded processor (e. g. Leon Sparc processor). University of Brest Page 9/26

Example 2: multimedia on the Web Soft and opened real-time systems: Processor Network Processor Temporal constraints: worst case response time but also jitter, end to end delay, intra-flow and inter-flow synchronization. General purpose execution environment (e.g. PC with a windows operating system). Resource requirements difficult to estimate : number of flow, bandwidth of each flow (e.g. MPEG encoder). Can not perform worst case resource reservation. University of Brest Page 10/26

Others examples From a book on real-time systems programming : "This book is about real-world programming... So real-world programs (and real-world programmers) are all around us. What characterizes all of these real-world applications is a critical dependence on time." [GAL 95] Transportations (train, aircraft, automotive, underground,...). Satellite TV decoder. Mobile phones, MPEG3 players, cameras,... Monitoring services (e.g. health devices). Robotic systems Nuclear power plant.... University of Brest Page 11/26

Summary 1. Some definitions. 2. Example of real-time systems. 3. Real-Time systems require specific analysis and programming methods. 4. Summary, further readings, planning of the week. 5. References. University of Brest Page 12/26

Hard real-time system specific practices Real-time critical (hard) systems: Are concurrent and synchronized applications. Need to handle time. Have high implementation cost : temporal constraints verification, safety, certification, dedicated software development kits/environments. Do not allow software maintenance: e.g. spacecrafts, mobile phones = we cannot correct erroneous software (bugs). May have dramatic impact on human life, on the environment, on the system,... Specific software engineering: methods, models and tools to master software quality and development cost. Specific programming tools: languages, cross-compilers, operating systems. University of Brest Page 13/26

Specific Software Engineering (1) Typical software engineering process: Requirements = What? Are they consistent? Design software architecture = How? Verification of the timing/logical constraints. Does the architecture provide the right answer? Implementation = write software components. Tests: check correctness of the software. University of Brest Page 14/26

Specific software Engineering (2) Software engineering specific practices for real-time software: To reduce costs: do early verification each time we can => design step. Use of Models and tools that automatically handle those models. Analysis methods: Simulation. Model checking. Formal methods for real-time systems: Petri nets, timed automata, synchronous languages,... Analytical approaches: real-time scheduling analysis. University of Brest Page 15/26

Specific programming tools (1) Use of monitors: Small software size. Very deterministic systems. Small memory footprint. No system calls and no separate address spaces : set of functions built as an unique executable. Sometimes no scheduler (high critical). Cross compilers. University of Brest Page 16/26

Specific programming tools (2) Cross-compiling: Host machine Target machine GDB rgdb rsh. TCP/IP, FTP, serial link,... Windows/Linux Monitor NFS disk Why cross-compiling : because target has a limited amount of resource, is composed of specific hardware/software (timing behavior). Host : where we compile the program. Target : where we run the program. University of Brest Page 17/26

Specific programming tools (3) High level versus low level programming languages: Low level languages : C or assembly languages. High level languages: Esterel or Ada languages. University of Brest Page 18/26

Specific programming tools (4) An example of low level language: C Largely known. Direct access to hardware components. But must be used with libraries for concurrency/synchronization/timing/scheduling. Use of language subsets (e.g. dynamic allocation). Low portability. Well suited for small real-time applications. University of Brest Page 19/26

Specific programming tools (5) An example of high level language: Ada Contains real-time abstractions: timing/concurrency/synchronization/scheduling. Standard : semantics is well defined = portability. Separate compilation. Safety programming (strong typing, static analysis). Complex language which is difficult to use. Few programmers. Well suited for large real-time applications. University of Brest Page 20/26

Summary 1. Some definitions. 2. Example of real-time systems. 3. Real-Time systems require specific analysis and programming methods. 4. Summary, further readings, planning of the week. 5. References. University of Brest Page 21/26

Summary and further readings (1) Real-time systems: systems with timing constraints to meet. Are usually concurrent systems (tasks and synchronization). Embedded systems and distributed systems. Specific development process and programming technologies: modeling and early verifications (e.g. real-time scheduling analysis), specific operating systems and programming languages (cross-compiler, real-time features). University of Brest Page 22/26

Summary and further readings (2) About real-time scheduling theory: Scheduling in Real Time Systems. F. Cottet and J. Delacroix and C. Kaiser and Z. Mammeri. 2002, John Wiley and Sons Ltd editors. Real-time scheduling facilities with POSIX 1003: POSIX 4 : Programming for the Real World. B. O. Gallmeister. O Reilly and Associates, January 1995. Real-time scheduling facilities with Ada: Concurrent and Real Time programming in Ada. A. Burns and A. Wellings. 2007, Cambridge University Press. Building Parallel, Embedded, and Real-Time Applications with Ada. J. W. McCormick, F. Singhoff, J. Hugues. Cambridge University Press, July 2010. University of Brest Page 23/26

Summary and further readings (3) Other books on real-time systems: Real-Time Systems and Programming Languages. A. Burns. 2009, Addison Wesley; 4th Revised edition. Real-Time Systems Design and Analysis. Phillip A. Laplante. 1994, Wiley-IEEE Press. University of Brest Page 24/26

Planning of the week 1. Monday: 2. Tuesday: Lecture: introduction, real-time scheduling (fixed priority scheduling, EDF, shared resources). 3. Wednesday: 4. Thursday: 5. Friday: Exercise: real-time scheduling analysis. Lecture: real-time programming ; C programming with POSIX/RTEMS. Exercise: real-time scheduling (cont). Lab: real-time programming ; C with POSIX/RTEMS. Lecture: real-time programming ; Ada programming with RTEMS. Lab: real-time programming ; C with POSIX/RTEMS (cont) ; Ada RTEMS. Lecture: real-time programming ; Ada programming with RTEMS (cont). Lab: real-time programming ; Ada with RTEMS (cont). Lecture: real-time scheduling (architecture description languages, multi-core/distributed systems). Lab: real-time programming ; Ada with RTEMS (cont). University of Brest Page 25/26

References [COU 94] G. Coulouris, J. Dollimore, and T. Kindberg. Distributed Systems Concepts and Design, 2nd Ed. Addison-Wesley Publishers Ltd., 1994. [DEM 99] I. Demeure and C. Bonnet. Introduction aux systèmes temps réel. Collection pédagogique de télécommunications, Hermès, septembre 1999. [DOR 91] A. Dorseuil and P. Pillot. Le temps réel en millieu industriel. Edition DUNOD, Collection Informatique Industrielle, 1991. [GAL 95] B. O. Gallmeister. POSIX 4 : Programming for the Real World. O Reilly and Associates, January 1995. [STA 88] John Stankovic. «Misconceptions about real-time computing». IEEE Computer, October 1988. University of Brest Page 26/26