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.

2014-15 Courses


All Publications


  • Copysets: Reducing the Frequency of Data Loss in Cloud Storage Cidon, A., Rumble, S., Stutsman, R., Katti, S., Ousterhout, J., Rosenblum, M. 2013
  • 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
  • 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
  • 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
  • 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
  • Scriptics Connect: An XML Integration Server Based on Tcl Melski, E., Stanton, S., Ousterhout, J. 2000
  • 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
  • The Safe-Tcl Security Model Levy, J., Demailly, L., Ousterhout, J., Welch, B. 1998
  • 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
  • Why Threads Are A Bad Idea (for most purposes) Ousterhout, J. 1996
  • 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
  • Tcl and the Tk Toolkit Ousterhout, J. Addison-Wesley. 1994
  • Sawmill: A High Bandwidth Logging File System Shirriff, K., Ousterhout, J. 1994
  • 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 Zebra Striped Network File System Hartman, J., Ousterhout, J. 1993
  • Hypergraphics and Hypertext in Tk Ousterhout, J. 1993
  • 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
  • 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
  • Transparent Process Migration: Design Alternatives and the Sprite Implementation Software Practice and Experience Douglis, F., Ousterhout, J. 1991; 21 (8): 757-785
  • The Role of Distributed State CMU Computer Science: A 25th Anniversary Perspective Ousterhout, J. edited by Rashid, R. ACM Press. 1991: 199-217
  • 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
  • An X11 Toolkit Based on the Tcl Language Ousterhout, J. 1991
  • 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
  • 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
  • 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 Design of XPRS Stonebraker, M., Katz, R., Patterson, D., Ousterhout, J. edited by Bancilhon, F., DeWitt, D., J. 1988
  • The Sprite Network Operating System IEEE Computer Ousterhout, J., Cherenson, A., Douglis, F., Nelson, M., Welch, B. 1988; 21 (2): 23-36
  • 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
  • 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
  • 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
  • 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
  • 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
  • A Switch-Level Timing Verifier for Digital MOS VLSI IEEE Transactions on Computer-Aided Design Ousterhout, J. 1985; CAD-4 (3): 336-349
  • 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
  • Corner Stitching: A Data Structuring Technique for VLSI Layout Tools IEEE Transactions on Computer-Aided Design Ousterhout, J. 1984; CAD-3 (3): 87-100
  • Plowing: Interactive Stretching and Compaction in Magic Scott, W., Ousterhout, J. 1984
  • The User Interface and Implementation of an IC Layout Editor IEEE Transactions on Computer-Aided Design Ousterhout, J. 1984; CAD-3 (3): 242-249
  • 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
  • Caesar: An Interactive Editor for VLSI Layouts VLSI Design Ousterhout, J. 1981; 2 (4)
  • Medusa: A Distributed Operating System Ousterhout, J. UMI Research Press. 1981
  • Medusa: An Experiment in Distributed Operating System Structure Communications of the ACM Ousterhout, J., Scelza, D., Sindhu, P. 1980; 23 (2): 92-105
  • 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