Marc A. Auslander

Learn More
-Register allocation may be viewed as a graph coloring problem. Each node in the graph stands for a computed quantity that resides in a machine register, and two nodes are connected by an edge if the quantities interfere with each other, that is, if they are simultaneously live at some point in the object program. This approach, though mentioned in the(More)
Online reconfiguration provides a way to extend and replace active operating system components. This provides administrators, developers, applications, and the system itself with a way to update code, adapt to changing workloads, pinpoint performance problems, and perform a variety of other tasks while the system is running. With generic support for(More)
K42 is one of the few recent research projects that is examining operating system design structure issues in the context of new whole-system design. K42 is open source and was designed from the ground up to perform well and to be scalable, customizable, and maintainable. The project was begun in 1996 by a team at IBM Research. Over the last nine years there(More)
Autonomic computing systems are designed to be self-diagnosing and self-healing, such that they detect performance and correctness problems, identify their causes, and react accordingly. These abilities can improve performance, availability, and security, while simultaneously reducing the effort and skills required of system administrators. One way that(More)
The PL.8 compiler accepts multiple source languages and produces high quality object code for several different machines. The strategy used is to first do a simple translation of the source program to a low level intermediate language. Global optimization and register allocation are then used to improve code rather than relying on special case code(More)
Taking a traditional operating system and making it scale well on shared memory multiprocessors is hard. Performance debugging a multiprocessor operating system is hard. Maintaining a scalable operating system is hard. We contend that designing a system from the ground up specifically for scalability can simplify these tasks considerably and allows for(More)
Designing and implementing system software so that it scales well on shared-memory multiprocessors (SMMPs) has proven to be surprisingly challenging. To improve scalability, most designers to date have focused on concurrency by iteratively eliminating the need for locks and reducing lock contention. However, our experience indicates that locality is just(More)
J. Appavoo M. Auslander M. Butrico D. M. da Silva O. Krieger M. F. Mergen M. Ostrowski B. Rosenburg R. W. Wisniewski J. Xenidis K42 is an open-source, Linux-compatible, scalable operating-system kernel that can be used for rapid prototyping of operating-system policies and mechanisms. This paper reviews the structure and design philosophy of K42 and(More)
The mechanization of computer operations and the extension of hardware functions are seen as the basic purposes of an operating system. An operating system must fu@U those purposes while providing stability and continuity to its users. Starting with the data processing environment of twenty-$ve years ago, this paper describes the forces that led to the(More)
K42 is an open-source research kernel targeted for 64bit cache-coherent multiprocessor systems. It was designed to scale up to multiprocessor systems containing hundreds or thousands of processors and to scale down to perform well on 2to 4-way multiprocessors. K42’s goal was to re-design the core of an operating system, but not an entire application(More)