12.07.2015 Views

LynxOs 3.0.1 Performance - May the Best RTOS Win

LynxOs 3.0.1 Performance - May the Best RTOS Win

LynxOs 3.0.1 Performance - May the Best RTOS Win

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

LynxOS <strong>3.0.1</strong> <strong>Performance</strong><strong>May</strong> <strong>the</strong> <strong>Best</strong> <strong>RTOS</strong> <strong>Win</strong> . . .LynxOS Kernel <strong>Performance</strong> and SizingThis document provides run-time performance and memory image size benchmarks for <strong>the</strong> family ofLynxOS version <strong>3.0.1</strong> operating system kernels across four target microprocessor platforms.The most often requested measurements of• Context Switch• Interrupt Latencyare included herein.Fur<strong>the</strong>rmore, to provide example response times for typical systems service, <strong>the</strong> following measurementsare also included:• Driver Access Time• Memory Allocation/Deallocation• System Call Overhead• Semaphore• Getting Thread Priority• Mutex creation, locking and unlocking<strong>Performance</strong> Test Suite UsedLynx has developed a performance test suite to simulate a real-world reactive system environment tomeasure meaningful performance for supported processor families.In order to simulate an event-driven real-time system with a realistic number of external interrupts drivingit, tests are conducted with five asynchronous interrupting devices:• network interface• console display• keyboard• disk controller• external timerThe LynxOS Scheduling Model - Threads and ProcessesA unique advantage of LynxOS lies in its POSIX-conformant scheduling and memory addressing models,specifically with reference to <strong>the</strong> basic LynxOS scheduling entity, <strong>the</strong> thread, and <strong>the</strong> basic virtualaddressing container, <strong>the</strong> process.Most competing <strong>RTOS</strong> products do not offer <strong>the</strong> flexibility and memory protection afforded by a completethread and process model, and rely on unprotected tasks running in a single flat address space. As such,<strong>the</strong>se products' vendors quote performance data in terms of tasks.LynxOS Version <strong>3.0.1</strong> <strong>Performance</strong> Updated 01/28/99


The LynxOS performance data provided herein is couched in terms of threads, which for comparison's sakemay be compared to <strong>the</strong> tasks in o<strong>the</strong>r <strong>RTOS</strong> products.Context Switch TimeThis measurement represents <strong>the</strong> time it takes to switch between a currently-running thread and <strong>the</strong> nextscheduled thread. This measurement is an observed value collected on an uninstrumented and unmodifiedkernel through a combination of a user program and an installed dynamic driver, using timer accesses onei<strong>the</strong>r side of <strong>the</strong> context switch; as such, it is empirically derived and not a <strong>the</strong>oretical nor syn<strong>the</strong>ticmeasurement.Interrupt LatencyThis measurement is <strong>the</strong> minimum observed time taken by <strong>the</strong> LynxOS kernel to respond to an externalinterrupt and pass control to <strong>the</strong> installed interrupt service routine. This calculation serves system designersas a measure of <strong>the</strong> interrupt service overhead associated with responding to external events. In a normalLynxOS interrupt service design, actual event service processing does not occur in <strong>the</strong> ISR; instead, <strong>the</strong>kernel dispatches a LynxOS kernel thread in response to <strong>the</strong> interrupt, which can be prioritized andscheduled on a par with any o<strong>the</strong>r thread in <strong>the</strong> systemKernel threads allow interrupt routines to be very short and fast. An important key feature of LynxOS,kernel threads ensure predictable response even in <strong>the</strong> presence of heavy I/O.The Interrupt Latency calculation represented an observed result obtained by running a user thread incombination with an installed dynamic driver. The interrupt service routine of <strong>the</strong> driver samples <strong>the</strong> timerand this value is returned to <strong>the</strong> user process through shared memory.Driver Access TimeThe time it takes to access a device driver.Function Callsmalloc()free()getppid()sem_signal()getpriority()phtread_mutex_*()The time to allocate free memory. In this sampling, 512K is allocated,and <strong>the</strong> result is <strong>the</strong> average of multiple runs.The time to de-allocate memory back to <strong>the</strong> free memory pool. In thissample 512 KB are de-allocated, <strong>the</strong> result is <strong>the</strong> average of multipleruns.The time it takes to get <strong>the</strong> parent process ID. This measurement istaken with a cache forced to be dirty, so <strong>the</strong> result gives <strong>the</strong> overheadof a system call that has not previously been invoked and <strong>the</strong> codecached. The call getppid() was selected because it performs aminimum amount of processing (assignment statement and return).This Semaphore Signal is <strong>the</strong> time to post and respond to asemaphore.The time to get <strong>the</strong> priority of a thread.The time to create, lock, and unlock pthread_mutexes.LynxOS Version <strong>3.0.1</strong> <strong>Performance</strong> Updated 01/28/99


Summary of Interrupt and Task Response Timesfor Supported PlatformsThe following table lists performance data for <strong>the</strong> Motorola PowerPC 750, 604, Intel Pentium II, Motorola68060, and microSPARC II, each running LynxOS 3.0. All times are in microseconds.MotorolaPowerPC 750MotorolaPowerPC 604IntelPentium IIMotorola68060SMEµSPARC IIConfigurationComputer System cPCI 750 MTX PC-AT Clone MVME 177 SPARCStation 5Microprocessor PPC 750 PPC 604e Pentium II MC68060 µSPARC IICPU Clock Speed 233 MHz 200 MHz 333 MHz 50 MHz 85 MHzMain Memory 32 MB 32 MB 64 MB 32 MB 64 MB<strong>Performance</strong>Context Switch Time 2 2 2 21 41Interrupt Latency < 1 < 1 11 3 3Driver Access Time 1 2 3 10 9Memory Allocationmalloc()/free() 5 / 9 4 / 7 2 / 5 15 / 18 18 / 14System Call Overheadgetppid() 2 3 1 20 8Semaphore Signalsem_signal() 4 3 1 27 14Thread Prioritygetpriority() 5 5 3 36 11pthread mutex Callscreatelockunlock111111< 1< 1


LynxOS Kernel SizingThe LynxOS operating system offers <strong>the</strong> flexibility of configuration across three profile types• Ultra Embedded• Embedded POSIX• Full Featured <strong>RTOS</strong>with numerous options for system services and extensions.As such, <strong>the</strong> LynxOS kernel family offers a broad range of price performance options, with targetfootprints ranging from 33K to 300K.The following table lists kernel sizes for a sampling of kernel profiles and configuration.CPUKernel ConfigurationCode SizeOnlyKernelImage SizeRun-timeFootprintUltra Embedded Profile 33K 37K 48Kx86 Embedded POSIX Profile 124K 147K 176KFull-featured LynxOS - Kernel-Only Profile 252K 263K 296KUltra Embedded Profile 64K 77K 97KPPC Embedded POSIX Profile 244K 289K 352KFull-featured LynxOS - Kernel-Only Profile 416K 451K 514KO<strong>the</strong>r <strong>Performance</strong> DataA number of competing <strong>RTOS</strong> vendors continue to circulate a set of benchmarks performed in 1991 by ateam at <strong>the</strong> now defunct Super-Conducting Super-Collider Lab. Besides being over 7 years out of date, <strong>the</strong>performance numbers in this document (known under various titles including "All Things Considered")were later retracted and republished by <strong>the</strong> benchmark's authors due to methodological issues. The actualresults of <strong>the</strong> SSCL <strong>RTOS</strong> evaluation proved most favorable to Lynx and indeed LynxOS was <strong>the</strong> chosenOS for <strong>the</strong> SCSL magnet control system.To learn more about this benchmark, read Real Considerations for Real-Time.LynxOS Version <strong>3.0.1</strong> <strong>Performance</strong> Updated 01/28/99

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!