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
- 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... >>>
|