Implementing Concurrency For An ML-based Operating System

In this paper I describe the design, implementation, and features of ML/OS, an operating system with an embedded ML compiler. ML/OS supports a continuation-based thread model of concurrency with non-blocking, interrupt-driven input/output. By embedding the ML compiler into the operating system, ML/OS attempts to eliminate levels of abstraction that are present in traditional interactions between compilers and operating systems. By using a continuation-based scheduler, I demonstrate the use of advanced programming language features such as continuations and type safety in system-level programming. Thesis Supervisor: Olin Shivers Title: Research Scientist

[1]  R. E. Kaufman,et al.  A FORTRAN Coloring Book , 1978 .

[2]  Andrew W. Appel,et al.  Standard ML of New Jersey , 1991, PLILP.

[3]  Proceedings of The Sixth Workshop on Hot Topics in Operating Systems, HotOS-VI, Cape Cod, Massachusetts, USA, May 5-6, 1997 , 1997, HotOS.

[4]  James Philbin An Overview of the STING Operating System , 1992 .

[5]  Lawrence Charles Paulson,et al.  ML for the working programmer , 1991 .

[6]  Lee,et al.  The Fox project : advanced development of systems software , 1991 .

[7]  Andrew D. Birrell,et al.  An Introduction to Programming with Threads , 1996 .

[8]  Andrew W. Appel,et al.  A Standard ML compiler , 1987, FPCA.

[9]  Andrew W. Appel,et al.  Compiling with Continuations , 1991 .

[10]  Patrick P. Gelsinger,et al.  Programming the 80386 , 1991 .

[11]  Richard D. Greenblatt,et al.  A LISP machine , 1974, CAW '80.

[12]  Peter Lee,et al.  Advanced Languages for Systems Software: The Fox Project in 1994 , 1994 .

[13]  Robin Milner,et al.  Edinburgh LCF , 1979, Lecture Notes in Computer Science.

[14]  John H. Reppy,et al.  Asynchronous Signals is Standard ML , 1990 .

[15]  Craig A. Knoblock,et al.  Advanced Programming in the UNIX Environment , 1992, Addison-Wesley professional computing series.

[16]  Guy L. Steele,et al.  A compiler for scheme (a study in compiler optimization) , 1978 .

[17]  Patrick Henry Winston,et al.  Artificial intelligence: an mit perspective , 1979 .

[18]  John H. Reppy,et al.  CML: A Higher-Order Concurrent Language , 1991, PLDI.

[19]  Jay Lepreau,et al.  The Flux OS Toolkit: reusable components for OS implementation , 1997, Proceedings. The Sixth Workshop on Hot Topics in Operating Systems (Cat. No.97TB100133).

[20]  Jay Lepreau,et al.  The Flux OSKit: a substrate for kernel and language research , 1997, SOSP.

[21]  Greg Nelson,et al.  Systems programming in modula-3 , 1991 .

[22]  John H. Reppy,et al.  First-Class Synchronous Operations in Standard ML , 1989 .

[23]  Sean Matthew Dorward,et al.  Inferno: la commedia interattiva , 1997 .

[24]  George Radin The 801 minicomputer , 2000, IBM J. Res. Dev..