Bio


John Ousterhout is Professor of Computer Science at Stanford University. His current research focuses on storage systems for large-scale datacenter applications. Ousterhout's prior positions include 14 years in industry, where he founded two companies (Scriptics and Electric Cloud), preceded by 14 years as Professor of Computer Science at U.C. Berkeley. He is the creator of the Tcl scripting language and is also well known for his work in distributed operating systems and file systems. Ousterhout received a BS degree in Physics from Yale University and a PhD in Computer Science from Carnegie Mellon University. He is a member of the National Academy of Engineering and has received numerous awards, including the ACM Software System Award, the ACM Grace Murray Hopper Award, the National Science Foundation Presidential Young Investigator Award, and the U.C. Berkeley Distinguished Teaching Award.

Academic Appointments


Honors & Awards


  • Reynold B. Johnson Information Storage Systems Award, IEEE (2014)
  • Member, National Academy of Engineering (2001)
  • Software System Award, ACM (1997)
  • Grace Murray Hopper Award, ACM (1987)
  • Distinguished Teaching Award, U.C. Berkeley (1985)

Boards, Advisory Committees, Professional Organizations


  • Member, National Academy of Engineering (2013 - Present)
  • Fellow, Association for Computing Machinery (1980 - Present)
  • Member, IEEE Computer Society (1980 - Present)

Professional Education


  • PhD, Carnegie Mellon, Computer Science (1980)
  • BS, Yale University, Physics (1975)

Patents


  • John Ousterhout. "United States Patent 8,042,089 Process Automation System and Method Employing Multi-Stage Report Generation", Electric Cloud, Inc., Oct 18, 2011
  • John Ousterhout. "United States Patent 7,886,265 Process Automation System and Method Employing Property Attachment Techniques", Electric Cloud, Inc., Feb 8, 2011
  • John Ousterhout. "United States Patent 7,725,524 Process Automation System and Method Having a Hierarchical Architecture With Multiple Tiers", Electric Cloud, Inc., May 25, 2010
  • John Ousterhout. "United States Patent 7,676,788 An Architecture and Method for Executing Program Builds", Electric Cloud, Inc., Mar 9, 2010
  • John Ousterhout. "United States Patent 7,539,976 A System and Method for Intelligently Distributing Source Files Within a Distributed Program Build Architecture", Electric Cloud, Inc., May 26, 2009
  • John Ousterhout. "United States Patent 7,395,529 Conflict Detection and Correction in a Program Build Environment", Electric Cloud, Inc., Jul 1, 2008
  • John Ousterhout. "United States Patent 7,168,064 System and Method for Supplementing Program Builds with File Usage Information", Electric Cloud, Inc., Jan 23, 2007
  • John Ousterhout. "United States Patent 7,086,063 System and Method for File Caching in a Distributed Program Build Environment", Electric Cloud, Inc., Aug 1, 2006

Current Research and Scholarly Interests


Ousterhout's research ranges across a variety of topics in system software, software development tools, and user interfaces. His current focus is on large-scale datacenter storage systems. His past research projects include the Tcl scripting language and its companion GUI toolkit Tk, log-structured file systems, the Sprite network operating system, and integrated circuit design tools such as Magic and Crystal.

2013-14 Courses


Journal Articles


  • Toward Common Patterns for Distributed, Concurrent, Fault-Tolerant Code 14th Workshop on Hot Topics in Operating Systems Stutsman, R., Ousterhout, J. 2013
  • Technical Perspective Is Scale Your Enemy, Or Is Scale Your Friend? COMMUNICATIONS OF THE ACM Ousterhout, J. 2011; 54 (7): 110-110
  • The Case for RAMCloud COMMUNICATIONS OF THE ACM Ousterhout, J., Agrawal, P., Erickson, D., Kozyrakis, C., Leverich, J., Mazieres, D., Mitra, S., Narayanan, A., Ongaro, D., Parulkar, G., Rosenblum, M., Rumble, S. M., Stratmann, E., Stutsman, R. 2011; 54 (7): 121-130
  • It's Time for Low Latency 13th Workshop on Hot Topics in Operating Systems Rumble, S., Ongaro, D., Stutsman, R., Rosenblum, M., Ousterhout, J. 2011
  • Fast Crash Recovery in RAMCloud SOSP 11: PROCEEDINGS OF THE TWENTY-THIRD ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES Ongaro, D., Rumble, S. M., Stutsman, R., Ousterhout, J., Rosenblum, M. 2011: 29-41
  • Integrating Long Polling with an MVC Web Framework USENIX Conference on Web Application Development Stratmann, E., Ousterhout, J., Madan, S. 2011: 113-124
  • Is Scale Your Enemy, Or Is Scale Your Friend? Technical Perspective, Communications of the ACM Ousterhout, J. 2011; 54 (7): 110
  • Managing State for Ajax-Driven Web Components USENIX Conference on Web Application Development Ousterhout, J., Stratmann, E. 2010: 73-85
  • Fiz: A Component Framework for Web Applications Stanford Computer Science Department Technical Report Ousterhout, J. 2009
  • The Case for RAMClouds: Scalable High-Performance Storage Entirely in DRAM SIGOPS Operating Systems Review Ousterhout, J., Erickson, P., Agrawal, Kozyrakis, C., Leverich, J., Mazières, D., Mitra, S. 2009; 43 (4): 92-105
  • Integration Platforms: The Missing Link in Enterprise Computing Web Techniques Ousterhout, J. 1999; 4 (5): 73-76
  • The State of Tcl Performance Computing Ousterhout, J. 1999: 43-47
  • Free Software Needs Profit Communications of the ACM Ousterhout, J. 1999; 42 (4): 44-45
  • Extensibility in Tcl Dr. Dobbs Journal Ousterhout, J. 1999: 64-72
  • Scripting: Higher-Level Programming for the 21st Century IEEE Computer Ousterhout, J. 1998; 31 (3): 23-30
  • What's New With Tcl? Unix Review Ousterhout, J. 1997; 15 (11): 43-45
  • The Zebra Striped Network File System ACM Transactions on Computer Systems, An earlier version appears in Proc. 14th Symposium on Operating Systems Principles Hartman, J., Ousterhout, J. 1995; 13 (3): 274-310
  • Hypertools: A GUI Revlolution The X Journal Ousterhout, J., Rowe, L. 1993; 2 (4): 74-81
  • Letter to the Editor ACM SIGOPS Operating Systems Review Hartman, J., Ousterhout, J. 1993; 27 (1): 7-10
  • THE DESIGN AND IMPLEMENTATION OF A LOG-STRUCTURED FILE SYSTEM ACM TRANSACTIONS ON COMPUTER SYSTEMS Rosenblum, M., Ousterhout, J. K. 1992; 10 (1): 26-52
  • Transparent Process Migration: Design Alternatives and the Sprite Implementation Software Practice and Experience Douglis, F., Ousterhout, J. 1991; 21 (8): 757-785
  • A Comparison of Two Distributed Systems: Amoeba and Sprite Computing Systems Douglis, F., Kaashoek, M., F., Ousterhout, J., Tanenbaum, A., S. 1991; 4 (4): 353-384
  • Robo-line Storage: Low Latency, High Capacity Storage Systems Over Geographically Distributed Networks, technical report UCB/CSD 91/651 Computer Science Division (EECS) University of California at Berkeley Katz, R., Anderson, T., Ousterhout, J., Patterson, D. 1991
  • Sprite Engineering Manual, technical report UCB/CSD 89/512 Computer Science Division (EECS) University of California at Berkeley Ousterhout, J. 1989
  • Process Migration in Sprite: A Status Report Operating Systems Technical Committee Newsletter, IEEE Computer Society Douglis, F., Ousterhout, J. 1989; 3 (1): 8-10
  • Transparent Process Migration for Personal Workstations, technical report UCB/CSD 89/540 Computer Science Division (EECS) University of California at Berkeley Douglis, F., Ousterhout, J. 1989
  • Beating the I/O Bottleneck: A Case for Log-Structured File Systems Operating Systems Review Ousterhout, J., Douglis, F. 1989; 23 (1): 11-28
  • Caching in the Sprite Network File System ACM Transactions on Computer Systems Nelson, M., Welch, B., Ousterhout, J. 1988; 6 (1): 134-154
  • The Sprite Network Operating System IEEE Computer Ousterhout, J., Cherenson, A., Douglis, F., Nelson, M., Welch, B. 1988; 21 (2): 23-36
  • An Overview of the Sprite Project login: The USENIX Association Newsletter Ousterhout, J., Cherenson, A., Douglis, F., Nelson, M., Welch, B. 1987; 12 (1): 13-17
  • Magic's Circuit Extractor IEEE Design and Test of Computer Scott, W., Ousterhout, J. 1986; 3 (1): 24-34
  • Design Decisions in SPUR IEEE Computer Hill, M. 1986; 19 (11): 8-22
  • The Magic VLSI Layout System IEEE Design and Test of Computers Ousterhout, J., Hamachi, G., Mayo, R., Scott, W., Taylor, G. 1985; 2 (1): 19-30
  • A Switch-Level Timing Verifier for Digital MOS VLSI IEEE Transactions on Computer-Aided Design Ousterhout, J. 1985; CAD-4 (3): 336-349
  • Corner Stitching: A Data Structuring Technique for VLSI Layout Tools IEEE Transactions on Computer-Aided Design Ousterhout, J. 1984; CAD-3 (3): 87-100
  • The User Interface and Implementation of an IC Layout Editor IEEE Transactions on Computer-Aided Design Ousterhout, J. 1984; CAD-3 (3): 242-249
  • Caesar: An Interactive Editor for VLSI Layouts VLSI Design Ousterhout, J. 1981; 2 (4)
  • Medusa: An Experiment in Distributed Operating System Structure Communications of the ACM Ousterhout, J., Scelza, D., Sindhu, P. 1980; 23 (2): 92-105

Books and Book Chapters


  • Tcl and the Tk Toolkit Ousterhout, J. Addison-Wesley. 1994
  • The Role of Distributed State CMU Computer Science: A 25th Anniversary Perspective Ousterhout, J. edited by Rashid, R. ACM Press. 1991: 199-217
  • Medusa: A Distributed Operating System Ousterhout, J. UMI Research Press. 1981

Conference Proceedings


  • Copysets: Reducing the Frequency of Data Loss in Cloud Storage Cidon, A., Rumble, S., Stutsman, R., Katti, S., Ousterhout, J., Rosenblum, M. 2013
  • Scriptics Connect: An XML Integration Server Based on Tcl Melski, E., Stanton, S., Ousterhout, J. 2000
  • The Safe-Tcl Security Model Levy, J., Demailly, L., Ousterhout, J., Welch, B. 1998
  • Why Threads Are A Bad Idea (for most purposes) Ousterhout, J. 1996
  • Sawmill: A High Bandwidth Logging File System Shirriff, K., Ousterhout, J. 1994
  • The Zebra Striped Network File System Hartman, J., Ousterhout, J. 1993
  • Hypergraphics and Hypertext in Tk Ousterhout, J. 1993
  • Non-Volatile Memory for Fast, Reliable File Systems Baker, M., Asami, S., Deprit, E., Ousterhout, J., Seltzer, M. 1992
  • A Trace-Driven Analysis of Name and Attribute Caching in a Distributed System Shirriff, K., Ousterhout, J. 1992
  • An X11 Toolkit Based on the Tcl Language Ousterhout, J. 1991
  • Measurements of a Distributed File System Baker, M., Hartman, J., Kupfer, M., Shirriff, K., Ousterhout, J. 1991, 1993
  • Availability in the Sprite Distributed File System Baker, M., Ousterhout, J. 1990
  • Why Aren't Operating Systems Getting Faster as Fast as Hardware? Ousterhout, J. 1990
  • The LFS Storage Manager Rosenblum, M., Ousterhout, J. 1990
  • Performance Measurements of a Multiprocessor Sprite Kernel Hartman, J., Ousterhout, J. 1990
  • Disk Scheduling Revisited Seltzer, M., Chen, P., Ousterhout, J. 1990
  • Tcl: An Embeddable Command Language Ousterhout, J. 1990
  • The Design of XPRS Stonebraker, M., Katz, R., Patterson, D., Ousterhout, J. edited by Bancilhon, F., DeWitt, D., J. 1988
  • Pseudo-Devices: User-Level Extensions to the Sprite File System Welch, B., Ousterhout, J. 1988
  • Copy-on-Write for Sprite Nelson, M., Ousterhout, J. 1988
  • Process Migration in the Sprite Operating System Douglis, F., Ousterhout, J. 1987
  • Caching in the Sprite Network File System Nelson, M., Welch, B., Ousterhout, J. 1987
  • Prefix Tables: A Simple Mechanism for Locating Files in a Distributed System Welch, B., Ousterhout, J. 1986
  • 1985 VLSI Tools, technical report UCB/CSD 85/225 edited by Scott, W., Hamachi, G., Ousterhout, J. 1985
  • Magic's Obstacle-Avoiding Global Router Hamachi, G., Ousterhout, J. edited by Fuchs, H. 1985
  • 1986 VLSI Tools, technical report UCB/CSD 86/272 edited by Scott, W., Mayo, R., Hamachi, G. 1985
  • Magic's Circuit Extractor Scott, W., Ousterhout, J. 1985
  • A Trace-Driven Analysis of the UNIX 4.2 BSD File System Ousterhout, J., Costa, H., Da, Harrison, D., Kunze, J., Kupfer, M., Thompson, J. 1985
  • Plowing: Interactive Stretching and Compaction in Magic Scott, W., Ousterhout, J. 1984
  • Magic's Incremental Design-Rule Checker Taylor, G., Ousterhout, J. 1984
  • Magic: A VLSI Layout System Ousterhout, J., Hamachi, G., Mayo, R., Scott, W., Taylor, G. 1984
  • Switch-Level Delay Models for Digital MOS VLSI Ousterhout, J. 1984
  • A Switchbox Router with Obstacle Avoidance Hamachi, G., Ousterhout, J. 1984
  • VLSI Tools and Architectures: Putting the New Technology to Work Ousterhout, J. 1983
  • 1983 VLSI Tools, technical report UCB/CSD 83/115, Computer Science Division (EECS) edited by Mayo, R., Ousterhout, J., Scott, W. 1983
  • Pictures with Parentheses: Combining Graphics and Procedures in a VLSI Layout Tool Mayo, R., Ousterhout, J. 1983
  • Crystal: A Timing Analyzer for nMOS VLSI Circuits Ousterhout, J. 1983
  • Scheduling Techniques for Concurrent Systems Ousterhout, J. 1982
  • Measurements of a VLSI Design Ousterhout, J., Ungar, D. 1982
  • Lyra: A New Approach to Geometric Layout Rule Checking Arnold, M., Ousterhout, J. 1982
  • Cm* Kmap Microprogramming Manual and Debugger Manual Ousterhout, J. 1978
  • Multi-microprocessors: An Overview and Working Example Fuller, S., Ousterhout, J., Raskin, L., Rubinfeld, P., Sindhu, P., Swan, R. 1978
  • The Implementation of the Cm* Multi-microprocessor Swan, R., Bechtolsheim, A., Ousterhout, J., Lai, K. 1977
  • Kmap Microprograms Ousterhout, J. edited by Fuller, S., Jones, A., Durham, I. 1977