Sean W. O'Malley

Learn More
Vegas is a new implementation of TCP that achieves between 40 and 70% better throughput, with one-fifth to one-half the losses, as compared to the implementation of TCP in the Reno distribution of BSD Unix. This paper motivates and describes the three key techniques employed by Vegas, and presents the results of a comprehensive experimental performance(More)
We present a domain-independent model of hierarchical software system design and construction that is based on interchangeable software components and large-scale reuse. The model unifies the conceptualizations of two independent projects, Genesis and Avoca, that are successful examples of software component/building-block technologies and domain modeling.(More)
The Diffie-Hellman key exchange algorithm can be implemented using the group of points on an elliptic curve over the field F2n . A software version of this using n = 155 can be optimized to achieve computation rates that are significantly faster than non-elliptic curve versions with a similar level of security. The fast computation of reciprocals in F2n is(More)
This white paper describes Scout, a new operating system being designed for systems connected to the National Information Infrastructure (NII). Scout provides a communication-oriented software architecture for building operating system code that is specialized for the different systems that we expect to be available on the NII. It includes an explicit path(More)
Network software is a critical component of any distributed system. Because of its complexity, network software is commonly layered into a hierarchy of protocols, or more generally, into a <italic>protocol graph</italic>. Typical protocol graphs&#8212;including those standardized in the ISO and TCP/IP network architectures&#8212;share three important(More)
A protocol compiler takes as input an abstract specification of a protocol and generates an implementation of that protocol. Protocol compilers usually produce inefficient code both in terms of code speed and code size. In this paper, we show that the combination of two techniques makes it possible to build protocol compilers that generate efficient code.(More)
This paper reports our experiences implementing remote procedure call (RPC) protocols in the <italic>x</italic>-kernel. This exercise is interesting because the RPC protocols exploit two novel design techniques: <italic>virtual protocols</italic> and <italic>layered protocols</italic>. These techniques are made possible because the <italic>x</italic>-kernel(More)
This paper describes several techniques designed to improve protocol latency, and reports on their effectiveness when measured on a modern RISC machine employing the DEC Alpha processor. We found that the memory system---which has long been known to dominate network throughput---is also a key factor in protocol latency. As a result, improving instruction(More)
As le systems grow in size, ensuring that data is safely stored becomes more and more di cult. Historically, le system backup strategies have focused on logical backup where les are written in their entirety to the backup media. An alternative is physical backup where the disk blocks that make up the le system are written to the backup media. This paper(More)