Linux Real-Time Essentials Using PREEMPT_RT
Acquire the skills to develop and deploy real-time, efficient Linux-based platforms and applications by utilizing the Wind River® PREEMPT_RT Linux kernel.
Course Description
The Linux Real-Time Essentials Using PREEMPT_RT course provides engineers with a fast, cost-effective way to acquire the skills to develop and deploy real-time, efficient Linux-based platforms and applications by utilizing the Wind River® PREEMPT_RT Linux kernel. Attendees get an in-depth look at Linux internals, which affect realtime characteristics of the system, and will learn how to configure the real-time kernel and file system, develop real-time applications, and use various tools to evaluate the real-time characteristics.
Course Results
After this course, participants will be able to perform the following:
- Develop and deploy real-time kernels and user space applications
- Analyze real-time characteristics and find causes for non-realtime behavior
- Understand Linux internals related to real-time
- Understand the PREEMPT_RT kernel configuration option
Products Supported
- Linux kernel versions 2.6 and newer
- Yocto Project Linux
- Wind River Linux 9
Who Should Attend
- Kernel developers who want to understand Linux kernel internals, which affect system real-time behavior, or evaluate and optimize real-time characteristics of the system platform
- Application developers who want to develop efficient real-time applications and evaluate real-time characteristics of the developed application code
Course Format
- This one-day, expert-led add-on session consists of lectures and lab sessions.
- Attendees use the Wind River Linux development environment combined with actual hardware targets to gain experience with the topics presented.
- Participants receive individual guidance from an expert engineer who has extensive experience with Wind River technologies.
- This course is only available as an add-on session to augment other Wind River courses. It is not available as a standalone course.
Syllabus
Day 1
Real-Time Fundamentals
- Real-time basics
- Latency and jitter
- Kernel preemption
Processes and Synchronization
- Linux processes and threads
- Atomic operators
- Memory fence
- Spinlocks
- Semaphores
- Mutexes
- Futexes
- CPU variables
- Read/write locks
- Read-copy update
Scheduling and Priorities
- Scheduling
- O(N) scheduler
- CFS scheduler
- Scheduling policies
- RT scheduling
- Process priorities
Internals of the PREEMPT_RT Option
- Preemption modes
- The PREEMPT_RT patch
- Priority inversion and inheritance
- IRQ threads
- IRQ thread development guidelines
Developing Linux Real-Time Applications
- Real-time application development
- Memory management
- Thread management
- Scheduling management
- Application development guidelines
Linux Real-Time Tools
- Latency measurement
- Overall system measurement
- System real-time fine-tuning
- System benchmarking
- System tracing
- LAB: Configuring and Building a Wind River Linux Preemptable Kernel
- LAB: Optimizing Memory Access Performance in an Application
- LAB: Evaluating Wind River Linux Kernels with ftrace
- LAB: Evaluating a Real-time System with cyclictest
- LAB: Tuning the Platform for Real-Time Performance
- LAB: Manipulating Scheduling Policies and Priorities
Prerequisites
Prerequisite Courses
- None
Prerequisite Skills
- Basic knowledge about the Linux operating system and Linux application or platform development
Related Courses
COURSE DETAILS SUMMARY
- Duration: 1 Days
- Course Information: View
- Format: Lectures and Labs
- Type: Instructor-led