There are multiple low-level concurrency primitives supported today, but these often require the programmer to be explicit in their implementation decisions at design time. This work illustrates how a process-oriented model written in C++CSP can hide the underlying primitives from the programmer to allow M:N style thread support. The objective is to provide integrated kernel-level and user-level thread support in C++CSP without major changes to the process interface. To illustrate that kernel-level and user-level threads are working together two experiments have been undertaken. The first executes a stressed select to determine the cost of process-count scaling. The second experiment executes a scaling number of processes syncing across hardware to illustrate the sync-time cost as the number of user-level threads increases in each context. The results illustrate that it is possible to build M:N style thread support transparently for process design, and that doing so provides a significant increase in the number of active processes in library supported CSP while still taking advantage of multicore hardware.
IOS Press, Inc.
6751 Tepper Drive
Clifton, VA 20124
Tel.: +1 703 830 6300
Fax: +1 703 830 2300 firstname.lastname@example.org
(Corporate matters and books only) IOS Press c/o Accucoms US, Inc.
For North America Sales and Customer Service
West Point Commons
Lansdale PA 19446
Tel.: +1 866 855 8967
Fax: +1 215 660 5042 email@example.com