VxWorks 7 Symmetric Multiprocessing
The VxWorks® 7 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® VxWo
The VxWorks® 7 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.
After taking this course, participants will be able to:
- Describe the multi-core processor architecture.
- Distinguish between multi-core and multiprocessing environments.
- Describe the VxWorks SMP system configuration.
- Understand and solve pitfalls of serial programming in the SMP environment.
- Migrate applications from the uniprocessor (UP) to the SMP environment.
- Analyze concurrency using debug tools.
- Perform run-time analysis of applications in the UP vs. SMP environment.
- VxWorks 7
- Wind River Workbench 4
- Wind River Simics 4.8
Who Should Attend
- Application engineers
- System integrators and architects
- This two-day expert-led course consists of nine lectures and seven lab sessions.
- Attendees use VxWorks 7, Workbench 4, and Simics 4.8 to gain experience with the topics presented.
- Participants receive individual guidance from an expert engineer who has extensive experience with Wind River technologies.
Introduction to SMP
- History of multi-core and multiprocessing
- Overview of SMP
- Other multi-core configurations
- LAB: Getting Started with SMP
VxWorks SMP Architecture
- Overview of SMP architecture
- Cache and cache coherency
- The sequential memory model
- Mutual exclusion
- Spinlocks and deadlocks
- Memory barriers
- Development challenges
VxWorks SMP Configuration
- VxWorks SMP components
- Software and hardware requirements
- LAB: Configuring VxWorks for SMP
VxWorks SMP Programming
- Read/write semaphores
- Task CPU affinity
- Interrupt CPU affinity
- Atomic operations
- Memory barriers
- POSIX thread barriers
- CPU information and management
- Uniprocessor incompatibilities
- LAB: Synchronizing Data in an SMP Environment
- LAB: Synchronizing Data with Core Affinity and Core Reservation
- LAB: Synchronizing with Message Queues
- LAB: Synchronizing with Semaphores
Debugging and Analysis Tools
- Multi-core debugging overview
- Multiple context debugging
- System viewer and analysis tools
- Kernel shell debugging
- LAB: Working with Workbench Debugger
Introduction to Software Parallelism
- SMP limits
- Parallel software design
- Implementing a parallel programming model
- Parallelism examples
- Portable parallel programming APIs
Uniprocessor to SMP Migration
- Migration guidelines
- The three-step migration plan
- Step 1: Update to current VxWorks version
- Step 2: Migrate to SMP API
- Step 3: Optimize for SMP
- LAB: Comparing the Performance of Single Core and Multi-core Processors
VxWorks SMP Scheduler
- VxWorks UP scheduler
- VxWorks SMP
- VxWorks SMP scheduler
- C programming
- Functional knowledge of UNIX
- Basic VxWorks API knowledge
- Real-time programming basics