Check out the new USENIX Web site.

Using Continuations to Build a User-Level Threads Library

Randall W. Dean

Carnegie Mellon University
Pittsburgh, Pennsylvania


We have designed and built a user-level threads library that uses continuations for transfers of control. The use of continuations reduces the amount of state that needs to be saved and restored at context switch time thereby reducing the instruction count in the critical sections. Our multiprocessor contention benchmarks indicate that this reduction and the use of Busy Spinning, Busy Waiting and Spin Polling increases throughput by as much as 75% on a multiprocessor. In addition, flattening the locking hierarchy reduces context switch latency by 5% to 49% on both uniprocessors and multiprocessors. This paper describes the library's design and compares its overall performance characteristics to the existing implementation.

Download the full text of this paper in ASCII (43,419 bytes) and POSTSCRIPT (186,246 bytes) form.

To Become a USENIX Member, please see our Membership Information.