Lightweight Thread Tunnelling in Network Applications

Active Network nodes are increasingly being used for nontrivial processing of data streams. These complex network applications typically benefit from protection between their components for faulttolerance or security. However, fine-grained memory protection introduces bottlenecks in communication among components. This paper describes memory protection in Expert, an OS for programmable network elements which re-examines thread tunnelling as a way of allowing these complex applications to be split over multiple protection domains. We argue that previous problems with tunnelling are symptoms of overly general designs, and we demonstrate a minimal domain-crossing primitive which nevertheless achieves the majority of benefits possible from tunnelling.

[1]  Butler W. Lampson,et al.  Experience with processes and monitors in Mesa , 1980, CACM.

[2]  Keir Fraser,et al.  A Practical Multi-word Compare-and-Swap Operation , 2002, DISC.

[3]  A. Forin,et al.  Using microbenchmarks to evaluate system performance , 1992, [1992] Proceedings Third Workshop on Workstation Operating Systems.

[4]  Austin Donnelly,et al.  Resource control in network elements , 2002 .

[5]  George C. Necula,et al.  Proof-carrying code , 1997, POPL '97.

[6]  K Thompson,et al.  UNIX implementation , 1986 .

[7]  K. Thompson,et al.  UNIX time-sharing system: UNIX implementation , 1978, The Bell System Technical Journal.

[8]  Brian N. Bershad,et al.  SPINE: a safe programmable and integrated network environment , 1998, ACM SIGOPS European Workshop.

[9]  Larry L. Peterson,et al.  Defending against denial of service attacks in Scout , 1999, OSDI '99.

[10]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[11]  Jay Lepreau,et al.  Evolving Mach 3.0 to A Migrating Thread Model , 1994, USENIX Winter.

[12]  Jonathan M. Smith,et al.  The measured performance of a fast local IPC , 1996, Proceedings of the Fifth International Workshop on Object-Orientation in Operation Systems.

[13]  Jochen Liedtke,et al.  Improving IPC by kernel design , 1994, SOSP '93.

[14]  Paul Menage RCANE: A Resource Controlled Framework for Active Network Services , 1999, IWAN.

[15]  Scott Nettles,et al.  Practical programmable packets , 2001, Proceedings IEEE INFOCOM 2001. Conference on Computer Communications. Twentieth Annual Joint Conference of the IEEE Computer and Communications Society (Cat. No.01CH37213).

[16]  Maurice V. Wilkes,et al.  The Cambridge CAP computer and its operating system (Operating and programming systems series) , 1979 .

[17]  David Wetherall,et al.  Towards an active network architecture , 1996, CCRV.

[18]  Timothy L. Harris,et al.  Extensible virtual machines , 2001 .

[19]  Brian N. Bershad,et al.  Lightweight remote procedure call , 1989, TOCS.

[20]  Graham Hamilton,et al.  The Spring Nucleus: A Microkernel for Objects , 1993 .

[21]  Larry L. Peterson,et al.  OS support for general-purpose routers , 1999, Proceedings of the Seventh Workshop on Hot Topics in Operating Systems.

[22]  John V. Guttag,et al.  ANTS: a toolkit for building and dynamically deploying network protocols , 1998, 1998 IEEE Open Architectures and Network Programming.

[23]  Larry L. Peterson,et al.  Making paths explicit in the Scout operating system , 1996, OSDI '96.