Consise status reports as of 9/18/03 on past activities may be found at:
  • Extending NFS to Support Cooperating Caching
  • Sandboxing Mobile Code from Outside the OS

    Sponsor: Office of Naval Research

    Title: A Comprehensive Context for Mobile-Code Deployment

    Given the acknowledged importance of existing and emerging mobile code technologies, remarkably little attention has so far been devoted to the management of mobile programs. The traditional model is far too primitive to capture the whole spectrum of meaningful distribution schemes for mobile code. In this project we will:

    1. develop a comprehensive model that can capture all meaningful modes of mobile-code deployment, including issues of code versioning, code migration, and the differentiation between code validation, dynamic code translation between instruction formats, and code execution,which potentially could occur at multiple physically disjoint sites.
    2. make a greater range of security policies amenable to automatic verification, by creating source-language constructs and accompanying type systems for representing these properties directly at the source-language level.

    Click here for more information about this project.

    Sponsor: National Science Foundation

    Title: Power Management for Computing Clusters

    Award Number: 9988527 12 months

    PROJECT ABSTRACT: This research examines architectures, hardware, software, and algorithmic techniques to conserve energy in a distributed system cluster. The research focuses on improvement for better energy conservation. The research encompasses 1) monitoring and analysis and 2) improvement for better energy conservation including local optimizations and cluster-wide optimizations. For 1), the research will quantify power consumption costs for various configurations of networked systems. The research will gather and observe traffic in cluster systems that affects energy consumption and performance. For 2), the research will consider both local optimizations and cluster-wide optimizations that will improve energy conservation. For local optimizations, there will be low level improvements in device management, base-level communication algorithms, system daemons, drivers and systems applications. For cluster-wide optimizations, the research will consider a global process manager (GPM) similar to a load balancer that will move applications between sites based on criteria that includes both performance and power savings.

    The expected outcome of the research could suggest model topologies, networking technology, and software modifications for energy efficient distributed systems of the future. Lastly, the research could lead to improved algorithms for conventional systems software to operate in a more power-efficient manner.

    Sponsor: National Science Foundation

    Title: High Availability, Reliability, and False Sharing Reduction Techniques for Workstation Clusters

    Award Number: 9704015 36 months

    The goal of this project is to develop protocols for highly available Distributed Shared Memory (DSM) systems. Such protocol designs require handling multi-site failures and network partitions. This project is investigating issue related to highly available DSM from three different perspectives. First, its goal is to develop a stochastic models of highly available DSM to serve as the basis for further analytical work in this area. Second, a DSM simulator is planned to developed to help analyze coherence protocols for high availability. Third, an experimental DSM system is being extended to support high availability based on a new protocol called Dynamic Boundary Restricted Coherence with Phase Checking (DBRpc). Finally, this project aims at demonstrating the use of highly vailable DSM systems for a variety of applications such as scientific computing and database systems.

    Sponsor: Sun Microsystems

    Title: Operating Systems Source Code Software Quality Assessment

    The explosive growth of the Internet and World Wide Web has fueled integration of new technology into computer and network operating systems (OS) for support of multimedia data types and tighter Internet integration. From a software perspective, the evolution and new release of an operating system involves the addition of new features that make the operating system "sellable" coupled with improvements to the existing code base. For example, Microsoft has indicated that it has fixed over 1000 bugs in Windows 95 with its new Windows 98 release, which also integrates Internet Explorer. From a software perspective, we would like to know how the integration of new code into the operating system affects the overall software quality of the entire product. This assessment can be challenging since a small complicated addition to the operating system could increase complexity and decrease maintainability much more than a very large straightforward addition. Nonetheless, we believe there will be discernable patterns that will emerge in these products and their release quality.

    Currently, the $28.2 billion systems software market has had few published research studies that have assessed operating system source code using software engineering metrics. The goal of this work is to investigate the relative quality of operating system software using published and well-accepted quantitative metrics. We would like to understand the relationship between version releases and quality and understand if commercial software exhibits higher professional quality when compared to freeware software or public-domain non-commercial code despite having radically different development methods and release patterns. In addition, our research will endeavor to explore the suitability of the widely used software engineering metrics for operating system source code through actual practice and verification with empirical observations.

    Sponsor: Hewlett-Packard Labs

    Hewlett-Packard Labs has been a sponsor of our research and donated a number of fast HP UNIX systems for our research work. We are grateful for their support of our efforts.

    Information concerning our groups equipment resources can be found by clicking here.

    Sponsor: Nortel

    Nortel will be supporting our research beginning in January 1999. The nature of the research is under NDA terms due to the fact that the research will be in Nortel products.

    The Oasis+ Distributed Storage System

    Oasis+ is a reliable distributed storage system built for small scale clusters. It integrates address range locking and eager release consistancy to provide an efficent platform for the development of distributed services. One of the key benifits of this system is that is allows the level of availablity to be configured to the needs of application. This allows applications which require a high degree of fault tolerance to operate without overly burdening those application which are willing to sacrifice fault tolerence for speed.

    The configurability provided in Oasis+ is a direct result of our implementation of the BR coherency protocol, a high preformance page-based coherency protocol also developed by the Mirage group. By allowing the level of availability to be configurable, Oasis+ can satisfy the requirements of a wider range of applications. More information on the BR protocol, as well as the DBR and DBRpc varients, can be found at

    The results of our work with Oasis+ have been submitted to the 2001 Cluster Computing Conference at USC in a paper entitled The Oasis+ Distributed Storage Sysetm. Other papers detailing this work can be found at

    The Mirage and Mirage+ Projects

    "The Persistence of Memory - S. M. Dali"

    The Mirage and Mirage+ systems were the precursor systems to much of the research we conduct in our group today. These systems have been widely published and described in textbooks and research publications.

    Learn about the team of developers of later versions of the Mirage, Mirage+ and reliability enhanced versions of these systems by examining the Mirage Development page.

    Take the DSM Subway. Novice users should begin by clicking on Introduction found in the top left. Users interested in Mirage can start at the Mirage case study. Additional information can be found in the (Mirage+) project page. Be sure to view the Mini-Mirage+ Demo. Click here for a demonstration. (Java must be enabled for the demo)