The VxWorks 6.x Symmetric Multiprocessing course presents several methods to optimize application performance using parallel design techniques. Issues encountered in migrating applications to parallel design are discussed in detail. Specifics of creating and migrating applications to Wind River VxWorks® symmetric multiprocessing (SMP) technology are also addressed.
Day 1
Introduction to SMP
- Introduction to Multi-core and Multiprocessing History
- SMP Overview
- Other Multi-core Configurations
- Terminology and Abbreviations
VxWorks SMP Architecture
- SMP Architecture Overview
- Cache and Cache Coherence
- Sequential Memory Model
- Mutual Exclusion
- Spinlocks and Deadlocks
- Memory Barrier
- Development Challenges
LAB: Getting Started
VxWorks SMP Configuration
- VxWorks SMP Components
- Software and Hardware Requirements
- BSP
LAB: VxWorks SMP Configuration
LAB: Implicit Synchronization
VxWorks SMP Programming
- Spinlocks
- Read and Write Semaphores
- CPU Affinity
- Interrupt CPU Affinity
- Atomic Operations
- Memory Barriers
- CPU Information and Management
- UP Incompatibilities
LAB: Data Synchronization
LAB: Core Affinity and Reservation
Day 2
Debugging and Analysis Tools
- Multi-core Debugging Overview
- Breakpoints
- Multiple Context Debugging
- On-Chip Debugging Tools
- Run-Time Analysis Tools (System Viewer)
- SMP Image Configuration
- Kernel Shell Debugging
LAB: Debugger
Introduction to Software Parallelism
- SMP Limits
- Parallel Software Design
- Implementing a Parallel Programming Model
- Threading
- Parallelism Examples
- Pthreads, OpenMP, and MPI
Uniprocessor to SMP Migration
- Migration Guideline
- Three-Step Migration Plan
- Step 1: Update to Current VxWorks Version
- Step 2: Migrate to SMP API
- Step 3: SMP Optimization
LAB: Performance Measurement
VxBus
- VxBus Introduction
- Benefits
- VxBus Terminology
- Component Configuration
- Interrupts
- Porting Strategies
VxWorks 6.x SMP Scheduler
- Overview
- VxWorks UP Scheduler
- VxWorks SMP
- VxWorks SMP Scheduler