Appendix 1: Real-time characterization
To Contents | To previous page | To next page

## Appendix 1: Real-time characterization

For a discussion of real-time performance measurement for eCos, see the eCos Users' Guide .

### Sample numbers:

### Board: Hitachi EDK7708

### CPU : Hitachi SH3/7708 60MHz

    Startup, main stack             : stack used   444 size  4112
    Startup              :  Interrupt stack used    76 size  4096
    Startup              : Idlethread stack used    96 size  2048

    eCos Kernel Timings
    Notes: all times are in microseconds (.000001) unless otherwise stated

    Reading the hardware clock takes 2 ™ticks' overhead
    ... this value will be factored out of all other measurements
    Clock interrupt took   14.75 microseconds (55 raw clock ticks)

    Testing parameters:
       Clock samples:          32
       Threads:                16
       Thread switches:       128
       Mutexes:                32
       Mailboxes:              32
       Semaphores:             32
       Scheduler operations:  128
       Counters:               32
       Alarms:                 32

                                     Confidence
         Ave     Min     Max     Var  Ave  Min  Function
      ======  ======  ======  ====== ========== ========
       15.43   13.60   24.00    1.29   62%  50% Create thread
        3.33    3.20    4.27    0.18   93%  68% Yield thread [all suspended]
        2.90    2.40    5.33    0.36   81%  62% Suspend [suspended] thread
        2.93    2.67    4.80    0.27   93%  87% Resume thread
        4.30    3.73   10.13    0.73   93%  93% Set priority
        0.65    0.27    2.13    0.28   68%  62% Get priority
        9.72    8.53   21.33    1.45   93%  93% Kill [suspended] thread
        3.33    3.20    4.53    0.20   93%  75% Yield [no other] thread
        5.30    4.80   10.13    0.65   93%  87% Resume [suspended low prio] thread
        2.80    2.40    4.53    0.27   81%  75% Resume [runnable low prio] thread
        4.82    4.00    8.27    0.49   68%  25% Suspend [runnable] thread
        3.32    3.20    4.00    0.16   93%  68% Yield [only low prio] thread
        2.82    2.40    4.27    0.25   81%  12% Suspend [runnable->not runnable]
        9.45    8.53   19.47    1.25   93%  93% Kill [runnable] thread
        5.30    4.53   11.20    0.74   87%  93% Destroy [dead] thread
       11.83   10.67   25.07    1.65   93%  93% Destroy [runnable] thread
       19.53   17.33   31.20    1.88   75%  75% Resume [high priority] thread
        6.70    6.67   11.47    0.07   99%  99% Thread switch

        0.33    0.27    0.80    0.10   75%  75% Scheduler lock
        1.74    1.60    2.67    0.14   99%  50% Scheduler unlock [0 threads]
        1.72    1.60    3.20    0.14   99%  57% Scheduler unlock [1 suspended]
        1.81    1.60    3.20    0.10   75%  23% Scheduler unlock [many suspended]
        1.86    1.60    3.20    0.02   94%   4% Scheduler unlock [many low prio]

        1.22    1.07    3.20    0.20   96%  65% Init mutex
        3.21    2.93    5.87    0.17   68%  28% Lock [unlocked] mutex
        3.36    2.93    7.47    0.30   84%  75% Unlock [locked] mutex
        2.83    2.67    5.33    0.22   96%  65% Trylock [unlocked] mutex
        2.53    2.40    2.93    0.14   96%  53% Trylock [locked] mutex
        0.28    0.27    0.80    0.03   96%  96% Destroy mutex
       20.09   19.73   23.20    0.23   84%  12% Unlock/Lock mutex

        2.38    2.13    4.53    0.17   59%  34% Create mbox
        0.45    0.27    1.33    0.15   56%  40% Peek [empty] mbox
        3.70    3.20    7.20    0.29   84%  59% Put [first] mbox
        0.45    0.27    0.80    0.13   62%  34% Peek [1 msg] mbox
        3.67    3.20    5.60    0.23   81%   6% Put [second] mbox
        0.42    0.27    0.53    0.13   59%  40% Peek [2 msgs] mbox
        3.98    3.47    7.47    0.24   59%   9% Get [first] mbox
        3.97    3.47    4.80    0.24   59%  12% Get [second] mbox
        3.51    3.20    6.67    0.28   56%  78% Tryput [first] mbox
        3.29    2.93    5.60    0.29   59%  65% Peek item [non-empty] mbox
        4.06    3.47    7.20    0.26   68%   3% Tryget [non-empty] mbox
        3.03    2.67    5.33    0.19   93%   3% Peek item [empty] mbox
        3.36    3.20    4.80    0.18   96%  56% Tryget [empty] mbox
        0.57    0.27    1.33    0.09   84%   3% Waiting to get mbox
        0.52    0.27    1.07    0.11   62%  21% Waiting to put mbox
        3.88    3.47    7.47    0.30   78%  65% Delete mbox
       12.04   11.73   17.33    0.33   96%  96% Put/Get mbox

        1.17    1.07    2.40    0.16   71%  71% Init semaphore
        2.67    2.40    4.27    0.15   62%  25% Post [0] semaphore
        3.00    2.67    4.53    0.17   65%  12% Wait [1] semaphore
        2.54    2.40    4.80    0.20   96%  71% Trywait [0] semaphore
        2.42    2.40    2.93    0.03   96%  96% Trywait [1] semaphore
        0.79    0.53    2.13    0.15   59%  28% Peek semaphore
        0.77    0.53    1.87    0.12   71%  25% Destroy semaphore
       12.64   12.27   17.07    0.28   84%  96% Post/Wait semaphore

        1.27    1.07    2.93    0.17   53%  43% Create counter
        0.54    0.27    1.33    0.13   59%  21% Get counter value
        0.47    0.27    1.60    0.17   46%  43% Set counter value
        3.47    3.20    4.80    0.16   53%  28% Tick counter
        0.80    0.53    2.13    0.13   62%  25% Delete counter

        1.86    1.60    4.00    0.21   43%  40% Create alarm
        5.12    4.80    9.07    0.36   93%  75% Initialize alarm
        0.44    0.27    1.33    0.19   87%  53% Disable alarm
        4.77    4.27    9.60    0.35   87%  62% Enable alarm
        1.02    0.80    2.67    0.18   53%  40% Delete alarm
        3.56    3.47    5.33    0.15   84%  84% Tick counter [1 alarm]
       15.04   14.93   16.27    0.16   71%  71% Tick counter [many alarms]
        5.75    5.60    8.00    0.21   96%  68% Tick & fire counter [1 alarm]
       79.60   79.47   81.07    0.17   96%  65% Tick & fire counters [>1 together]
       17.04   16.80   18.93    0.15   65%  31% Tick & fire counters [>1 separately]
       12.44   12.27   29.60    0.31   96%  96% Alarm latency [0 threads]
       14.06   12.27   27.20    0.53   82%   4% Alarm latency [2 threads]
       19.62   17.07   38.40    1.44   57%  34% Alarm latency [many threads]

        2.79    2.40    6.13    0.00            Clock/interrupt latency

      376     376     376  (main stack:   764)  Thread stack used (992 total)
    All done, main stack            : stack used   764 size  4112
    All done             :  Interrupt stack used   176 size  4096
    All done             : Idlethread stack used   352 size  2048

    Timing complete - 23860 ms total

    PASS:<Basic timing OK>
    EXIT:<done>

Appendix 1: Real-time characterization
To Contents | To previous page | To next page