Using Continuations to Build a User-Level Threads Library
Randall W. Dean
Carnegie Mellon University
Pittsburgh, Pennsylvania
Abstract
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.