T1128
Real-time systems programming using C++ on Linux
The course is organized in three conceptual blocks. The first block teaches C++ from a fast-paced and practical point of view with an emphasis on moving from C to C++ in smooth manner. The underlying theme for this block is also to motivate and illustrate why C++ is a much better language than C and a better C than C itself. The short answer to why this is the case, is the ability to design abstractions. The block also discusses advanced topics such as Standard Template Library (STL), network (socket) programming and how C++ is represented under the covers.
The second block teaches threads programming, synchronization theory and real-time systems. All programming examples and exercises are described in terms of C++, to emphasis the importance of usage of abstraction to design robust and error-free software.
The third block teaches low-level (hardware oriented) programming, such as how locks are supported by the instruction set of a CPU, how threads are implemented and how device drivers (the primary hardware interface in Linux) are implemented.
Most of the course modules end with one or more practical programming exercises focusing on the essentials of the module?s topic. The course and development environment will be contained within a virtualization image (such as VirtualBox). The benefit is that the course machine image can easily be installed on most modern PC?s and participants can carry their images back home after the course.
Objectives
- Understanding why C++ is better than C itself
- Working knowledge of thread programming skills in C++ using POSIX Threads
- Insight into the problems and challenges of programming real-time systems
- Brief knowledge of low-level (hardware oriented) programming using C++
Modules
Day 1+2
1.1 From C to C++
1.2 Classes and Operator Overloading
1.3 File and Network I/O
1.4 Templates and STL
1.5 C++ under the covers
Day 3+4
2.1 Understanding Threads
2.2 Introduction to POSIX Threads using C++
2.3 Basic synchronization in POSIX Threads using C++
2.4 Semaphores and other synchronization primitives
2.5 Message passing and Rendezvous
2.6 Deadlock and Starvation
2.7 Introduction to Real-Time Systems Theory
Day 5
3.1 Implementations of locks from the CPU-level and upwards
3.2 Implementation of a simple thread kernel
3.3 Introduction to device drivers in Linux
Fakta
Kurs
T1128
Längd
5 dagar
Pris
25.950 kr (exkl. moms)
Förkunskaper
Knowledge in C programming
Knowledge in using a UNIX/Linux system
Kontakta oss
för mer information:
08 - 587 116 10 (Stockholm)
031 - 773 07 90 (Göteborg)
040-662 20 60 (Malmö)
info@informator.se