Academia.eduAcademia.edu

Outline

Processes vs. User-Level Threads in SCSH

Abstract

The new version of scsh enables concurrent system programming with portable user-level threads. In scsh, threads behave like processes in many ways. Each thread receives its own set of process resources. Like Unix processes, forked threads can inherit resources from the parent thread. To store these resources scsh uses preserved thread fluids, a special kind of fluid variables. The paper gives a detailed description of an efficient implementation for thread-local process resources. Scsh also provides an interface to the fork system calls which avoids common pitfalls which arise with a userlevel thread system. Scsh contains a binding for fork that forks "only the current thread." 1

References (17)

  1. Edoardo Biagioni, Ken Cline, Peter Lee, Chris Okasaki, and Chris Stone. Safe-for-space threads in Standard ML. Higher- Order and Symbolic Computation, 11(2):209-225, December 1998.
  2. Henry Cejtin, Suresh Jagannathan, and Richard Kelsey. Higher-order distributed objects. ACM Transactions on Pro- gramming Languages and Systems, 17(5):704-739, Septem- ber 1995.
  3. CGI: Common gateway interface. http://www.w3.org/ CGI/.
  4. R. Kent Dybvig and Robert Hieb. Engines from continuations. Computer Languages, 14(2):109-123, 1989.
  5. Marc Feeley. Parameters in Gambit-C. Personal communica- tion, September 2001.
  6. Matthew Flatt. PLT MzScheme: Language Manual. Rice University, University of Utah, August 2000. Version 103.
  7. Christopher T. Haynes and Daniel P. Friedman. Engines build process abstractions. In ACM Conference on Lisp and Func- tional Programming, pages 18-24, 1984.
  8. Christopher T. Haynes and Daniel P. Friedman. Abstract- ing timed preemption with engines. Computer Languages, 12(2):109-121, 1987.
  9. Ian Jackson and Tony Finch. GNU adns. http://www. chiark.greenend.org.uk/˜ian/adns/, 2000.
  10. Richard Kelsey and Jonathan Rees. Scheme 48 Reference Manual, 2002. Part of the Scheme 48 distribution at http: //www.s48.org/.
  11. Richard A. Kelsey and Jonathan A. Rees. A tractable Scheme implementation. Lisp and Symbolic Computation, 7(4):315- 335, 1995.
  12. Netscape. Netscape browser central. http://browsers. netscape.com/browsers/main.tmpl, 2002.
  13. The Open Group Base Specifications Issue 6 IEEE Std 1003.1-2001. http://www.opengroup.org/onlinepubs/ 007904975/, 2001.
  14. Olin Shivers. A Scheme Shell. Technical Report TR-635, Massachusetts Institute of Technology, Laboratory for Com- puter Science, April 1994.
  15. Olin Shivers. Automatic management of operating system re- sources. In Mads Tofte, editor, International Conference on Functional Programming, pages 274-279, Amsterdam, The Netherlands, June 1997. ACM Press, New York.
  16. Team Squid. Squid web proxy cache. http://www. squid-cache.org/, 2002.
  17. The Scheme Underground networking package. http:// www.scsh.net/sunet/.