Signals, timers, and continuations for multithreaded user-level protocols

  • Authors:
  • Juan Carlos Gomez;Jorge R. Ramos;Vernon Rego

  • Affiliations:
  • IBM Research, 650 Harry Road, San Jose, CA 95119, U.S.A.;Department of Computer Sciences, Purdue University, West Lafayette, IN 47907, U.S.A.;Department of Computer Sciences, Purdue University, West Lafayette, IN 47907, U.S.A.

  • Venue:
  • Software—Practice & Experience - Research Articles
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Precise timing and asynchronous I/O are appealing features for many applications. Unix kernels provide such features on a per-process basis, using signals to communicate asynchronous events to applications. Per-process signals and timers are grossly inadequate for complex multithreaded applications that require per-thread signals and timers that operate at finer granularity. To respond to this need, we present a scheme that integrates asynchronous (Unix) signals with user-level threads, using the A RIADNE system as a platform. This is done with a view towards support for portable, multithreaded, and multiprotocol distributed applications, namely the C LAM (connectionless, lightweight, and multiway) communications library. In the same context, we propose the use of continuations as an efficient mechanism for reducing thread context-switching and busy-wait overheads in multithreaded protocols. Our proposal for integrating timers and signal-handling mechanisms not only solves problems related to race conditions, but also offers an efficient and flexible interface for timing and signalling threads. Copyright © 2006 John Wiley & Sons, Ltd.