Brian N. Bershad
YOU?
Author Swipe
Live Update for Device Drivers Open
As commodity operating systems become more reliable and fault-tolerant, the availability of a system will be determined not by when it crashes, but instead by when it must be shutdown and rebooted due to software maintenance [12, 21]. Whil…
Midway : shared memory parallel programming with entry consistency for distributed memory multiprocessors Open
"Distributed memory multiprocessing offers a cost- effective and scalable solution for a large class of scientific and numeric applications. Unfortunately, the performance of current distributed memory programming environments suffers beca…
Functionally homogeneous clustering: a framework for building scalable data-intensive internet services Open
This dissertation proposes functionally homogeneous clustering (FHC), a new software architecture for building data-intensive Internet services that are manageable, available, fast, and inexpensive. FHC lets any node in the cluster manage …
Manageability, availability, and performance in porcupine Open
This paper describes the motivation, design and performance of Porcupine, a scalable mail server. The goal of Porcupine is to provide a highly available and scalable electronic mail service using a large cluster of commodity PCs. We design…
Practical considerations for lock-free concurrent objects Open
"An important class of concurrent objects are those that are lock-free, that is, whose operations are not contained within mutually exclusive critical sections. A lock-free object can be accessed by many threads at a time, yet clever updat…
Using production grammars in software testing Open
Extensible typesafe systems, such as Java, rely critically on a large and complex software base for their overall protection and integrity, and are therefore difficult to test and verify. Traditional testing techniques, such as manual test…
Manageability, availability and performance in Porcupine Open
This paper describes the motivation, design, and performance of Porcupine, a scalable mail server. The goal of Porcupine is to provide a highly available and scalable electronic mail service using a large cluster of commodity PCs. We desig…
Design and implementation of a distributed virtual machine for networked computers Open
This paper describes the motivation, architecture and performance of a distributed virtual machine (DVM) for networked computers. DVMs rely on a distributed service architecture to meet the manageability, security and uniformity requiremen…
Mutual exclusion for uniprocessors Open
"We discuss and evaluate four mutual exclusion primitives appropriate for uniprocessors: memory interlocked instructions, software reservation, kernel emulation and restartable atomic sequences. A restartable atomic sequence is a code frag…
A memory-efficient real-time non-copying garbage collector Open
Garbage collectors used in embedded systems such as Personal Java and Inferno or in operating systems such as SPIN must operate with limited resources and minimize their impact on application performance. Consequently, they must maintain s…
The Porcupine scalable mail server Open
International audience
SPINE Open
Article Free Access Share on SPINE: a safe programmable and integrated network environment Authors: Marc E. Fiuczynski Department of Computer Science and Engineering, University of Washington Department of Computer Science and Engineering,…
Execution characteristics of desktop applications on Windows NT Open
This paper examines the performance of desktop applications running on the Microsoft Windows NT operating system on Intel x86 processors, and contrasts these applications to the programs in the integer SPEC95 benchmark suite. We present me…
The structure and performance of interpreters Open
Interpreted languages have become increasingly popular due to demands for rapid program development, ease of use, portability, and safety. Beyond the general impression that they are "slow," however, little has been documented about the pe…
Fast, effective dynamic compilation Open
Dynamic compilation enables optimization based on the values of invariant data computed at run-time. Using the values of these run-time constants, a dynamic compiler can eliminate their memory loads, perform constant propagation and foldin…
Fast, effective dynamic compilation Open
Dynamic compilation enables optimization based on the values of invariant data computed at run-time. Using the values of these run-time constants, a dynamic compiler can eliminate their memory loads, perform constant propagation and foldin…
A Trace-Driven Comparison of Algorithms for Parallel Prefetching and Caching (CMU-CS-96-174) Open
High-performance I/O systems depend on prefetching and caching in order to deliver good performance to applications. These two techniques have generally been considered in isolation, even though there are significant interactions between t…
Extensibility safety and performance in the SPIN operating system Open
article Free Access Share on Extensibility safety and performance in the SPIN operating system Authors: B. N. Bershad Department of Computer Science and Engineering, University of Washington, Seattle, WA Department of Computer Science and …
Reducing TLB and memory overhead using online superpage promotion Open
Modern microprocessors contain small TLBs that maintain a cache of recently used translations. A TLB's coverage is the sum of the number of bytes mapped by each entry. Applications with working sets larger than the TLB coverage will perfor…
<i>SPIN</i> —an extensible microkernel for application-specific operating system services Open
Application domains such as multimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide fixed interfaces and implementations to system se…
Reducing TLB and memory overhead using online superpage promotion Open
Modern microprocessors contain small TLBs that maintain a cache of recently used translations. A TLB's coverage is the sum of the number of bytes mapped by each entry. Applications with working sets larger than the TLB coverage will perfor…
The impact of operating system structure on memory system performance Open
In this paper we evaluate the memory system behavior of two distinctly different implementations of the UNIX operating system: DEC's Ultrix, a monolithic system, and Mach 3.0 with CMU's UNIX server, a microkernel-based system. In our evalu…
Protocol service decomposition for high-performance networking Open
In this paper we describe a new approach to implementing network protocols that enables them to have high performance and high flexibility, while retaining complete conformity to existing application programming interfaces. The key insight…
Fast mutual exclusion for uniprocessors Open
In this paper we describe restartable atomic sequences, an optimistic mechanism for implementing simple atomic operations (such as Test-And-Set) on a uniprocessor. A thread that is suspended within a restartable atomic sequence is resumed …
Consistency management for virtually indexed caches Open
A virtually indexed cache can improve performance by allowing cache lookup and address translation to occur in parallel, thus reducing processor cycle time. Unlike physically indexed caches, virtually indexed caches create consistency prob…
Fast mutual exclusion for uniprocessors Open
In this paper we describe restartable atomic sequences, an optimistic mechanism for implementing simple atomic operations (such as Test-And-Set ) on a uniprocessor. A thread that is suspended within a restartable atomic sequence is resumed…
Scheduler activations Open
Threads are the vehicle for concurrency in many approaches to parallel programming. Threads can be supported either by the operating system kernel or by user-level library code in the application address space, but neither approach has bee…
Diffusive parallelism Open
The spread of networks and powerful workstations has created an attractive source of parallel computing power. We are exploring a new parallel programming model, called diffusive parallelism, designed specifically for use with large scale,…