Alex C. Snoeren.
Proc. of the Oxygen Student Workshop, July 2002
Mobile laptop users have grown accustomed to the ``suspend/resume'' model of computing, in which activity can be resumed precisely from the point at which it was suspended, despite arbitrary periods of inactivity. Unfortunately, today's Internet hosts lack support for seamless operation of session-based network applications across periods of disconnectivity; hence, contemporary operating systems do not provide ``suspend/resume'' support for such applications. Instead, movement or disconnection events are either concealed inside the network or exposed as communication failures to the application, which is then forced to abandon open sessions and begin new ones.
We propose session continuations, which allow application sessions to suspend operation during periods of disconnection and specify their resumption context, enabling the release of unnecessary resources and adaptation to the reconnection environment. Session continuations provide application programmers with a single abstraction that is at once simple to program for and powerful enough to enable sophisticated resource savings. We have implemented session continuations as part of the Migrate mobility toolkit to manage both scarce system resources, such as kernel socket buffers, memory, and file descriptors, as well as application state across changes in network attachment point and during periods of disconnectivity. Here, we demonstrate how session continuations can conserve system resources by describing an extended SSH server that consumes almost no resources on the server when the client is disconnected, yet enables seamless session resumption upon reconnection.
[PostScript (75KB)] [PDF (27KB)]
(This paper received the 2002 SOW Best Paper Award.)