Measuring Real-Time Performance Of An RTOS - Express Logic
Measuring Real-Time Performance Of An RTOS - Express Logic Measuring Real-Time Performance Of An RTOS - Express Logic
What Is Being Measured? • The time taken by the RTOS to perform specific services – This is the RTOS “Overhead” • To be applicable to multiple RTOSes, for comparison, a set of common services has been selected – Representative across all services – Commonly found among most RTOSes • Selected RTOS Services – Cooperative Context Switching – Preemptive Context Switching – Interrupt Processing Without Preemption – Interrupt Processing With Preemption – Message Passing – Semaphore Processing – Memory Allocation/Deallocation 6
How Are Services Measured? • Lots of iterations, 30-second reporting – Execute (service, inverse) in pairs • Send message; get message • Allocate memory; de-allocate memory • Keep counts in local variables • “Printf” results to host every 30 seconds • Calibration run to establish baseline • No special hardware required • Easily ported to new environments • Coded in “Vanilla” C – Tested with various compilers – RTOS functions identified for adaptation 7
- Page 1 and 2: Express Logic, Inc. © 2006, Expres
- Page 3 and 4: Most Important RTOS Capabilities
- Page 5: Thread-Metric: An Open RTOS Benchma
- Page 9 and 10: Cooperative Context Switching • T
- Page 11 and 12: Interrupt Handling • Must conside
- Page 13 and 14: Message Processing • A Thread sen
- Page 15 and 16: Memory Allocation • Applications
- Page 17 and 18: Test Environment • ARM Versatile
- Page 19 and 20: How To Get The Code • Download fr
What Is Being Measured?<br />
• The time taken by the <strong>RTOS</strong> to perform specific services<br />
– This is the <strong>RTOS</strong> “Overhead”<br />
• To be applicable to multiple <strong>RTOS</strong>es, for comparison, a set of<br />
common services has been selected<br />
– Representative across all services<br />
– Commonly found among most <strong>RTOS</strong>es<br />
• Selected <strong>RTOS</strong> Services<br />
– Cooperative Context Switching<br />
– Preemptive Context Switching<br />
– Interrupt Processing Without Preemption<br />
– Interrupt Processing With Preemption<br />
– Message Passing<br />
– Semaphore Processing<br />
– Memory Allocation/Deallocation<br />
6