IEEE Boston Section Tech Site IEEE Logo

Serving Eastern Massachusetts

Course Description

Course Name: C6 - Embedded Linux Applications Design and Optimization (Advanced Linux)
Time & Date: 6:00 - 9:00 PM, Thursdays, April 5, 12, 19, 26
Location: Holiday Inn Select Hotel, 15 Middlesex Canal Park Road, Woburn, MA
Speaker: Mike McCullough, CEO, RTETC

Course Summary

This 4-day technical training course provides advanced training in the development, debugging, profiling, testing and performance optimization of Embedded Linux applications. The first part of the course focuses on advanced applications development in an Embedded Linux context with a focus on applications development, debugging and test. The latter part of the course covers performance measurement and optimization including detailed Memory Management approaches for embedded systems and deployment considerations for embedded Linux applications software.

Who Should Attend

The course is designed for real-time engineers who are developing advanced Linux applications for Embedded Linux distributions. It is also targeted at experienced developers requiring a refresher course on advanced Embedded Linux applications development.

Course Objectives

OUTLINE

Course Schedule Day 1

Getting Started with Embedded Linux

Linux and the GPL

Building the Kernel Source Code

Embedded Linux Kernels

BSPs and SDKs

Linux References (Books and Online)

Embedded Linux Applications Development Review

Multi-threading Review

Signals, Synchronization and Locking

Inter-Process Communications (IPC) Review

Memory Management and Paging

Error Handling in Embedded Linux

Timing and Timers

Files and Filesystems

The I/O Subsystem: Talking to Hardware

Advanced I/O Operations

Standard I/O Operations

Scatter-Gather and Asynchronous I/O

Poll, Select and Epoll

Memory-Mapped I/O

File Advice

I/O Schedulers

Advanced Memory Operations

Linux and Memory

Managing Aligned Memory

Anonymous Memory Mappings

Debugging Memory Allocations

Locking Memory

Reserving Memory

Course Schedule Day 2

Debugging

GDB, GDB Server and the GDB Server Debugger

Other Debug Tools

An Eclipse Remote Debug Example

Advanced Debug with printk, syslogd and LTTng

System-Level Debug

System-Level Debug Tools

The /proc Filesystem

Advanced Logging Methods

KGDB and KDB

Crash Dumps

Testing

Design for Test

Unit-Level Testing

System-Level Testing

Automated Testing

Code Coverage Tools

Tracing

ptrace

strace

ftrace

New Tracing Methods

Profiling

Basic Profiling

gprof

Oprofile

Performance Counters

Course Schedule Day 3

Finding Performance Problems

Some Ideas on Performance Measurement

Types of Performance Problems

Using Performance Tools to Find Areas for Improvement

Application and System Optimization

CPU Usage Optimization

Memory Usage Optimization

Disk I/O Usage Optimization

Boot Time Optimization

Measuring Embedded Linux Performance

Common Considerations

Uncommon Considerations

BootLoader Optimizations

Boot Time Measurements

Effective Memory and Flash Usage

Performance Tool Assistance

Recording Commands and Performance

System Error Messages

Event Logging

LTTng Revisited

Dynamic Probes

User Mode Linux

Virtualization

Course Schedule Day 4

Improving CPU Performance

Run Queue Statistics

Context Switches and Interrupts

CPU Utilization

Linux Performance Tools for CPU

Process-Specific CPU Performance Tools

Stupid Cache Tricks

Improving System Memory Performance

Memory Performance Statistics

Linux Performance Tools for Memory

Process-Specific Memory Performance Tools

More Stupid Cache Tricks

Improving I/O Performance

Disk I/O

Flash I/O

General File I/O

Improving Boot Performance

Building a Better Smaller Linux

Building a Smaller Application

Filesystem Tips and Tricks

Some Notes on Library Usage

Improving Performance Using the Compiler

Basic Compiler Optimizations

Inlining Code

Atomic Methods

Library Utilities

Feedback Based Optimization

The Future of Linux Performance Tools

LTTng

Current Holes and Current Trends

Some Final Recommendations

Speaker

Mike McCullough is President and CEO of RTETC, LLC. Mike has a BS in Computer Engineering and an MS in Systems Engineering from Boston University. A 20-year electronics veteran, he has held various positions at Tilera, Embedded Planet, Wind River Systems, Lockheed Sanders, Stratus Computer and Apollo Computer. RTETC, LLC is a provider of Eclipse-based software tools, training and consulting for the embedded systems market.

Decision (Run/Cancel) Date for this Courses is Tuesday, March 26, 2012

Payment received by March 22 : IEEE Members $390

Payment received by March 22 : Non-members $410

Payment received after March 22 : IEEE Members $410

Payment received after March 22 : Non-members $435

Register online here.