Embedded & Real-time Operating Systems Communication Libraries

Similar documents
Embedded & Real-time Operating Systems

Embedded Systems. 6. Real-Time Operating Systems

Middleware. Peter Marwedel TU Dortmund, Informatik 12 Germany. technische universität dortmund. fakultät für informatik informatik 12

Real Time Operating Systems. Tajana Simunic Rosing Department of Computer Science and Engineering University of California, San Diego.

Real Time Operating Systems. Tajana Simunic Rosing Department of Computer Science and Engineering University of California, San Diego.

Aperiodic Task Scheduling

Real-time Operating Systems. VO Embedded Systems Engineering Armin Wasicek

fakultät für informatik informatik 12 technische universität dortmund Data flow models Peter Marwedel Informatik 12 TU Dortmund Germany

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

Real Time Programming: Concepts

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

Embedded System Design: Embedded Systems Foundations of Cyber-Physical Systems

Virtualization for Hard Real-Time Applications Partition where you can Virtualize where you have to

Performance Comparison of RTOS

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

Real-Time Operating Systems With Example PICOS18. What is an Operating System?

Real-Time Operating Systems for MPSoCs

Operating Systems 4 th Class

What is best for embedded development? Do most embedded projects still need an RTOS?

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

Special FEATURE. By Heinrich Munz

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details

Linux for Embedded and Real-Time Systems

Operating System Structure

Predictable response times in event-driven real-time systems

Chapter 6, The Operating System Machine Level

Open Source Software

Principles and characteristics of distributed systems and environments

A Comparison of Distributed Systems: ChorusOS and Amoeba

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

Operating Systems. Lecture 03. February 11, 2013

Virtualization for Cloud Computing

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Overview and History of Operating Systems

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

Quality of Service su Linux: Passato Presente e Futuro

Cloud Operating Systems for Servers

Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1

Chapter 16 Distributed Processing, Client/Server, and Clusters

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

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

What is an RTOS? Introduction to Real-Time Operating Systems. So what is an RTOS?(contd)

evm Virtualization Platform for Windows

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

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

System Software Integration: An Expansive View. Overview

White Paper Perceived Performance Tuning a system for what really matters

System Software and TinyAUTOSAR

Multi-core Programming System Overview

SYSTEM ecos Embedded Configurable Operating System

CHAPTER 15: Operating Systems: An Overview

Lecture 3 Theoretical Foundations of RTOS

Chapter 3 Operating-System Structures

Operating System Overview. Otto J. Anshus

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

Deeply Embedded Real-Time Hypervisors for the Automotive Domain Dr. Gary Morgan, ETAS/ESC

State-Machine Replication

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Comparison between scheduling algorithms in RTLinux and VxWorks

A single user ran a single program ran on a single computer there was no need for Page 1 of 6 Copyright Virtual University of Pakistan

Introduction. General Course Information. Perspectives of the Computer. General Course Information (cont.) Operating Systems 1/12/2005

Building Embedded Systems

Enhancing the Monitoring of Real-Time Performance in Linux

Client/Server and Distributed Computing

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Networking Operating Systems (CO32010)

PikeOS: Multi-Core RTOS for IMA. Dr. Sergey Tverdyshev SYSGO AG , Moscow

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Introduction. What is an Operating System?

Operating Systems Concepts: Chapter 7: Scheduling Strategies

Enabling Technologies for Distributed Computing

LSN 10 Linux Overview

Chapter 1: Introduction. What is an Operating System?

Virtual Machines.

Virtualization. Dr. Yingwu Zhu

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

9/26/2011. What is Virtualization? What are the different types of virtualization.

RTAI. Antonio Barbalace (modified by M.Moro 2011) RTAI

theguard! ApplicationManager System Windows Data Collector

Overview of Operating Systems Instructor: Dr. Tongping Liu

Embedded System Hardware - Processing (Part II)

Operating System Structures

PARALLELS SERVER 4 BARE METAL README

Real-Time Scheduling 1 / 39

Real-time processing the basis for PC Control


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

Introduction to Virtual Machines

Real-Time Operating Systems.

COS 318: Operating Systems. Virtual Machine Monitors

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6

How To Understand The Concept Of A Distributed System

Hard Real-Time Linux

Transcription:

Embedded & Real-time Operating Systems Communication Libraries Jian-Jia Chen (Slides are based on Peter Marwedel) TU Dortmund, Informatik 12 Germany Springer, 2010 2014 年 11 月 18 日 These slides use Microsoft clip arts. Microsoft copyright restrictions apply.

Structure of this course Application Knowledge 2: Specification 3: ES-hardware 4: system software (RTOS, middleware, ) Design repository 6: Application mapping 7: Optimization 5: Evaluation & validation (energy, cost, performance, ) Design 8: Test Numbers denote sequence of chapters - 2 -

Increasing design complexity + Stringent time-tomarket requirements F Reuse of components Reuse requires knowledge from previous designs to be made available in the form of intellectual property (IP, for SW & HW). HW Operating systems Middleware (Communication, data bases, ). - 3 -

Embedded operating systems - Characteristics: Configurability - Configurability No overhead for unused functions tolerated, no single OS fits all needs, F configurability needed. Conditional compilation (using #if and #ifdef commands). Object-orientation could lead to a of derivation subclasses. Aspect-oriented programming Advanced compile-time evaluation useful. Linker-time optimization (removal of unused functions) - 4 -

Example: Configuration of VxWorks http://www.windriver.com/products/development_tools/ide/ tornado2/tornado_2_ds.pdf Windriver - 5 -

Verification of derived OS? Verification a potential problem of systems with a large number of derived OSs: Each derived OS must be tested thoroughly; Potential problem for ecos (open source RTOS from Red Hat), including 100 to 200 configuration points [Takada, 2001]. - 6 -

Embedded operating systems - Characteristics: Disk and network handled by tasks - Effectively no device needs to be supported by all variants of the OS, except maybe the system timer. Many ES without disk, a keyboard, a screen or a mouse. Disk & network handled by tasks instead of integrated drivers. Embedded OS Standard OS kernel - 7 -

Example: WindRiver Platform Industrial Automation Windriver - 8 -

Embedded operating systems - Characteristics: Protection is optional- Protection mechanisms (user mode and privilege mode) not always necessary: especially for single-purpose ES untested programs rarely loaded, SW considered reliable. Privileged I/O instructions not necessary and tasks can do their own I/O. Example: Let switch be the address of some switch Simply use load register,switch instead of OS call. However, protection mechanisms may be needed for safety and security reasons. - 9 -

Embedded operating systems - Characteristics: Interrupts not restricted to OS - Interrupts can be employed by any process For standard OS: serious source of unreliability. Since embedded programs can be considered to be tested, since protection is not always necessary and since efficient control over a variety of devices is required, it is possible to let interrupts directly start or stop SW (by storing the start address in the interrupt table). More efficient than going through OS services. Reduced composability: if SW is connected to an interrupt, it may be difficult to add more SW which also needs to be started by an event. - 10 -

Embedded operating systems - Characteristics: Real-time capability- Many embedded systems are real-time (RT) systems and, hence, the OSs used in these systems must be real-time operating systems (RTOSs). - 11 -

RT operating systems - Definition and requirement 1: predictability - Def.: (A) real-time operating system is an operating system that supports the construction of real-time systems. The following are the three key requirements 1. The timing behavior of the OS must be predictable. services of the OS: Upper bound on the execution time! RTOSs must be timing-predictable: short times during which interrupts are disabled, (for hard disks:) contiguous files to avoid unpredictable head movements. [Takada, 2001] - 12 -

Real-time operating systems requirement 2: Managing timing 2. OS should manage the timing and scheduling OS possibly has to be aware of task deadlines; (unless scheduling is done off-line). Frequently, the OS should provide precise time services with high resolution. [Takada, 2001] - 13 -

Time Time plays a central role in real-time systems Physical time: real numbers Computers: mostly discrete time Relative time: clock ticks in some resolution Absolute time: wall clock time International atomic time TAI (french: temps atomic internationale) Free of any artifacts. Universal Time Coordinated (UTC) UTC is defined by astronomical standards TAI and UTC identical on Jan. 1st, 1958. 30 seconds had to be added since then. UTC uses a leap second to adjust the time. time.gov - 14 -

Internal synchronization Synchronization with one master clock Typically used in startup-phases Distributed synchronization: 1. Collect information from neighbors 2. Compute correction value 3. Set correction value. Precision of step 1 depends on how information is collected: Application level: ~500 µs to 5 ms Operation system kernel: 10 µs to 100 µs Communication hardware: < 10 µs - 15 -

External synchronization External synchronization guarantees consistency with actual physical time. Trend is to use GPS for ext. synchronization GPS offers TAI (International Atomic Time) and UTC time information. Resolution is about 100 ns. Dell GPS mouse - 16 -

Problems with external synchronization Problematic from the perspective of fault tolerance: Erroneous values are copied to all stations. Consequence: Accepting only small changes to local time. Many time formats too restricted; e.g.: NTP protocol includes only years up to 2036 For time services and global synchronization of clocks see Kopetz, 1997. - 17 -

Real-time operating systems requirement 3: Speed 3. The OS must be fast Practically important. [Takada, 2001] - 18 -

RTOS-Kernels Distinction between real-time kernels and modified kernels of standard OSes. Distinction between general RTOSs and RTOSs for specific domains, standard APIs (e.g. POSIX RT-Extension of Unix, OSEK) or proprietary APIs. Source: R. Gupta, UCSD - 19 -

Functionality of RTOS-Kernels Includes processor management, memory management, resource management and timer management; task management (resume, wait etc), inter-task communication and synchronization. - 20 -

Classes of RTOSes: 1. Fast proprietary kernels For complex systems, these kernels are inadequate, because they are designed to be fast, rather than to be predictable in every respect [R. Gupta, UCI/UCSD] Examples include QNX, PDOS, VCOS, VTRX32, VxWORKS. Source: R. Gupta, UCSD - 21 -

Classes of RTOSs: 2. RT extensions to standard OSs Attempt to exploit comfortable main stream OS. RT-kernel running all RT-tasks. Standard-OS executed as one task. + Crash of standard-os does not affect RT-tasks; - RT-tasks cannot use Standard-OS services; less comfortable than expected Source: R. Gupta, UCSD - 22 -

RT extensions to standard OSs A common approach is to extend Unix Linux: RT-Linux, RTLinuxPro, RTAI, etc. Posix: RT-POSIX Also done for Windows based on virtualization, e.g. RTOSWin, RT- Xen - 23 -

Example: RT-Linux Init Bash Mozilla scheduler Linux-Kernel driver RT-Task RT-tasks cannot use standard OS calls. Commercially available from fsmlabs (www.fsmlabs.com) RT-Task interrupts I/O RT-Linux RT-Scheduler interrupts interrupts Hardware - 24 -

Example (2): RTAI Real Time Application Interface https://www.rtai.org/ - 25 -

Evaluation According to Gupta, trying to use a version of a standard OS: not the correct approach because too many basic and inappropriate underlying assumptions still exist such as optimizing for the average case (rather than the worst case),... ignoring most if not all semantic information, and independent CPU scheduling and resource allocation. Dependences between tasks not frequent for most applications of std. OSs & therefore frequently ignored. Situation different for ES since dependences between tasks are quite common. Source: R. Gupta, UCSD - 26 -

Classes of RTOSs: 3. Research trying to avoid limitations Research systems trying to avoid limitations. Include MARS, Spring, MARUTI, Arts, Hartos, DARK, and Melody Research issues [Takada, 2001]: low overhead memory protection, temporal protection of computing resources RTOSes for on-chip multiprocessors quality of service (QoS) control. Source: R. Gupta, UCSD - 27 -

Task, Thread, Job Thread (Job): A basic unit of work handled by the scheduler Task: Threads implement the jobs of a task. Usually the same thread is re-used for each job of a task Thread Context: The values of registers and other volatile data that define the state and environment of the thread - 28 -

Task, Thread, Job (Continued) TCB: The thread control block (TCB) is the data structure created when the kernel creates a thread The TCB stores the context of the thread when it is not executing - 29 -

Periodic Tasks and Threads Periodic thread: Reinitialized by the kernel and put to sleep (i.e., suspends) when the thread completes. Released by the kernel at the beginning of the next period (i.e., becomes ready) The task parameters (e.g., phase and period) are stored in a separate manner Most commercial (RT or non-rt) OSs do not support periodic threads Instead, the thread itself sleeps (i.e., suspends itself via some system call) until the start of the next period after it finishes executing - 30 -

Example: Control System - 31 -

Example: Periodic Control System - 32 -

Implementing and Managing State Transitions - 33 -

Increasing design complexity + Stringent time-tomarket requirements F Reuse of components Reuse requires knowledge from previous designs to be made available in the form of intellectual property (IP, for SW & HW). HW Operating systems Middleware (Communication libraries, data bases, ). - 34 -

Models of computation considered in this course Communication/ local computations Undefined components Communicating finite state machines Shared memory StateCharts Message passing Synchronous Asynchronous Plain text, use cases (Message) sequence charts SDL Data flow (Not useful) Kahn networks, SDF Petri nets Discrete event (DE) model Imperative (Von Neumann) model VHDL*, Verilog*, SystemC*, C, C++, Java [libraries] * Classification based on semantic model Somewhat related: Scoreboarding + Tomasulo-Algorithm C/E nets, P/T nets, Only experimental systems, e.g. distributed DE in Ptolemy C, C++, Java with libraries CSP, ADA - 35 -

OSEK/VDX COM OSEK/VDX COM is a special communication standard for the OSEK automotive OS Standard provides an Interaction Layer as an API for internal and external communication via a Network Layer and a Data Link layer (some requirements for these are specified) specifies the functionality, it is not an implementation. ECU-1 P. Marwedel, 2011 ECU-2-36 -

CORBA (Common Object Request Broker Architecture) Software package for access to remote objects; Information sent to Object Request Broker (ORB) via local stub. ORB determines location to be accessed and sends information via the IIOP I/O protocol. Server Access times unpredictable. - 37 -

Real-time (RT-) CORBA RT-CORBA provides end-to-end predictability of timeliness in a fixed priority system. respects thread priorities between client and server for resolving resource contention, provides thread priority management, provides priority inheritance, bounds latencies of operation invocations, provides pools of preexisting threads. Inversion Server - 38 -

Message passing interface (MPI) Asynchronous/synchronous message passing Designed for high-performance computing Comprehensive, popular library Available on a variety of platforms Mostly for homogeneous multiprocessing Considered for MPSoC programs for ES; Includes many copy operations to memory (memory speed ~ communication speed for MPSoCs); Appropriate MPSoC programming tools missing. http://www.mhpcc.edu/training/workshop/mpi/ MAIN.html#Getting_Started Photos: Microsoft; De Man/NXP - 39 -

RT-issues for MPI MPI/RT: a real-time version of MPI [MPI/ RT forum, 2001]. MPI-RT does not cover issues such as thread creation and termination. MPI/RT is conceived as a potential layer between the operating system and standard (non real-time) MPI. MPI MPI-RT OS - 40 -

Summary General requirements for embedded operating systems Configurability I/O Interrupts General properties of real-time operating systems Predictability Time services Synchronization Classes of RTOSs, Device driver embedding Communication middleware OSEK/VDX COM, CORBA, MPI - 41 -

Spare Slides - 42 -

Evaluation of MPI Explicit Computation partitioning Communication Data distribution Implicit Synchronization (implied by communic., explicit possible) Expression of parallelism (implied) Communication mapping Properties Most things are explicit Lots of work for the user ( assembly lang. for parallel prog. ) doesn t scale well when # of processors is changed heavily Based on W. Verachtert (IMEC): Introduction to Parallelism, tutorial, DATE 2008-43 -