[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: ComsTime

The results in my previous email about CTC++ below were measured under
Windows 98. Now, there is a mistake in these results. The interrupt enable
(sti) and interrupt disable (cli) instructions are very expensive under
Windows. In protected-mode the i386 throws exceptions when it tries to
execute these instructions. Somehow Windows catches these exceptions in
protected-mode and then Windows switch between protected-mode and real-mode
(and back) to perform these instructions anyway. This switching takes a lot
of time.

Thus, I ran comstime under MS-DOS and the results are much better

- 7.6 us/cycle (with 5 switches per cycle)
- 1.9 us/context-switch

Another remark: The 1.9 us/context-switch time is not exactly one
context-switch. This value represents the performance of the channel
(synchronization, queuing and context-switching). This value is much more
interesting than the bare context-switch time. The real context-switch is
about 270 nsec on a Pentium 200 MHz (with saving and restoring entire


> -----Original Message-----
> From: Gerald H. Hilderink [mailto:g.h.hilderink@xxxxxxxxxxxxx]
> Sent: Monday 13 November 2000 21:48 PM
> To: Java Threads mail group; Occam-com mail group
> Subject: ComsTime
> The CTJ kernel has been translated to C and C++ -- called CTC and
> CTC++. At
> this moment CTC++ provides a C++ API for CTC.
> CTC and CTC++ have been ported to i386 and Pentium. CTC has also
> been ported
> to a TMS320F240 DSP processor.
> The ComsTime score on a K6-II 333MHz (~ Pentium II 333MHz) with CTC++ is
> - 113 us/cycle (with 5 switches per cycle)
> - 22.6 us/context-switch
> - channels optimized for single-reader-single-writer
> - channels optimized with fast Hoare's monitor implementation
> - compiled with djgpp -O2 flag
> - PAR in Delta
> - enabled preemptive scheduling and ready for PRIPAR
> - no inline optimization
> - almost exact copy of CTJ (very OO)
> - under Windows 98 in a MS-DOS box
> Gerald.