Dafocus logo a&apm;b logo

TC002 - Real-Time Systems

Summary

This component is directed to programmers that need to address real-time systems related issues.
Although it addresses the software part of real-time systems, it is not related to a specific programming language.

Contents

Introductions to Real-Time systems
  • Definition of 'real-time'
  • Main characteristics of real-time systems
  • Introductions to real-time techniques:
    • informal, structured and formal notations
    • requirements
    • design
    • implementation
    • testing
    • prototyping
Reliability and fault-tolerance
  • Defintion of "reliability"
  • Types of failures
  • Fault prevention
  • Fault tolerance
  • Redundancy techniques
  • Dynamic software redundancy
  • Errors detection and handling
  • Exceptions
  • Predictability and reliability measures
Concurrent systems
  • Definition of "process"
  • Concurrent processes
  • Concurrency types (independent, cooperating or competing)
Synchronization and communication
  • Shared-memory based systems
    • Mutual exclusion and critical sections
    • Busy waiting
    • Process suspension and reactivation
    • Semaphores
    • Conditional critical regions
    • Monitor
    • Protected objects
    • Synchronized methods
  • Messages based systems
    • Process synchronization
    • Selective wait
    • POSIX message
    • RPC (Remote Procedure Calls)
Software structure
  • Software decomposition into atomic components
  • Error recovery techniques among atomic components
  • Asynchronous events management
    • POSIX signals
  • Asynchronous transfer of control among threads
Resources management
  • Resource management with synchronized methods
  • Resource management with a logical server (message-based interface)
  • Resource management with protected objects
  • Design techniques to avoid starvation
  • Requeuing
  • Design techniques to prevent, detect an resolve deadlocks
Real-time and time
  • The notion of "time"
  • The clock
  • POSIX Clock
  • Delayed processes
  • Timeouts
  • How to specify temporal requirements
Scheduling
  • Scheduling types
  • Preemption
  • Cyclic scheduling
  • Process-based scheduling
    • Fixed Priority Scheduling
    • Earliest Deadline First
    • Value-Based Scheduling
  • Formal analysis of scheduling
  • Worst-case calculation
  • Sporadic and aperiodic processes
  • Priorities assignment
Distributed systems
  • Definition of "distributed system"
  • Common problems for distributed systems
  • Communication among parts of a distributed system
    • the functional model (RPC, remote procedures)
    • the object oriented model (CORBA)
  • Timing and deadlines in distributed systems
  • Communication protocols among distributed components

Audience

Experienced programmers that need to begin or consolidate their expertise on real-time programming issues.

Duration

5 days.

Training main page... >>>