Who am I?
I am an assistant professor in the Computer Sciences Department.
Research
My interests lie in operating systems, reliability, security, and the interaction of architecture and systems.
Device Drivers
Device drivers are a major source of complexity, unreliability, and cost for modern operating systems. As evidence, drivers account for the majority of system crashes: Microsoft reports that 89% of Windows XP crashes are caused by device drivers, and Linux driver code had up to seven times the bug density of other kernel code. The objective of my research is to improve device drivers by (1) reducing the complexity and cost of implementing device drivers, (2) improving the fault tolerance of device drivers, and (3) improving the performance of device drivers on modern hardware and software architectures.
Transactional Memory
Transactional memory promises to simplify multhreaded programming by removing the need to associate a lock with each piece of shared data. Instead, programmers specify transactions, which forces a set of statements to execute atomically.
One of the key problems faced by transactional memory systems is virtualization and the operating system: how can you virtualize hardware support for transactional memory, so that transactions can co-exist with paging and context switching? Also, how can you provide unbounded length transactions in the presence of limited-size hardware structures? Finally, how do system calls and I/O operate in the presence of transctions? I'm currently working these questions as part of the LogTM transactional memory system , a component of the Multifacet project.
Commodity Systems
Many of the most pressing problems in operating systems today arise because of the vast diversity of the environment in which operating systems execute:
- OS reliability often limited by the reliability of underling device drivers, which are an order of magnitude larger than the OS itself.
- OS availability and usability are limited by the configuration and management of the system, which is proportional to the number of applications and extensions installed, not the size of the OS.
- OS security strongly related to the number of applications running, as they often have exploitable holes. In addition, the ability to apply policy at the OS level is limited by the diversity of user needs, which range from open, insecure environments to locked down environment.
Past projects
- Porcupine cluster mail server
- One.world pervasive programing
- Simultaneous Multithreading
- Nooks operating system reliability
Teaching
I teach primarily operating systems and distributed sytems.
- CS 739 - Distributed Systems
- CS 736 - Advanced Operating Systems
- Spring 2006
- Fall 2006
- Spring 2007
- Fall 2008
- CS 537 - Operating Systems
Short Biography
I grew up in Amherst, Massachusetts and received a B.A. from Cornell University in 1992. After college, I worked at Microsoft in the Windows group, where I implemented authentication and access control functionality in Windows Cairo, Windows NT, and Windows 2000. From 1992 to 2005, I was a graduate student at the University of Washington working with Professors Hank Levy and Brian Bershad. At UW, I studied large-scale clusters, simultaneous multithreading and operating system reliability.
Menu
- Home
- Publications
- Research
- Students
- About me
- Teaching
- Current: CS 739: Distributed systems
- Past: CS 736: Advanced Operating Systems, Fall '08 , Spring '07
- Past: CS 537: Operating Systems, Fall '09 , Spring '09 , Fall '07
- Comics
