Synthetix Project Overview

The Synthetix project is sponsored by ARPA, Intel, and Hewlett-Packard.

The Synthetix project is investigating the application of a technique we call incremental specialization, a combination of fine-grain modularity and dynamic code generation, to create operating systems which are both highly modular and high-performance. Incremental specialization takes advantage of particular circumstances, not just at compile time, but also at load time and run time, to make specialized optimizations. For example, the error-correcting and data-compression protocols necessary on a low-quality low-bandwidth wireless connection are unnecessary on a high-quality high-bandwidth fibre-optic network connection. By specializing the communications protocols, maximal bandwidth and data quality can be achieved in diverse computing environments.

A more fine-grained example of incremental specialization is a technique called software feedback. Software feedback takes advantage of dynamically changing loading conditions in the network and the CPU workload, as well as the changing demands of a particular application, to balance the producer and consumer components of a multi-part application. By adjusting the data producer to send data at the same rate that the data consumer is capable of consuming it, maximal bandwidth is achieved and no bandwidth is wasted. This balancing of data rates is achieved by dynamically feeding back the consumption rate at the consumer to the producer. This feedback, similar in concept to classical feedback systems, keeps the producer and consumer balanced.

This paper to appear at the 1995 ACM Symposium on Operating Systems Principles (SOSP'95) is the most complete Synthetix publication to date. This short position paper that appeared at the 1994 OOPSLA Workshop on Flexibility in System Software provides a brief overview of the Synthetix concepts.

Projects

There are several studies presently under way in the Synthetix project. Each is a case study of one or more of the ideas of incremental specialization.
HP-UX File System
In co-operation with HP, the HP-UX file system is being modified to use incremental specialization to enhance the performance of the file system in general, and the read system call in particular. The objective is to examine the practicality of applying incremental specialization to a commercial operating system. This experience will contribute to a methodology for applying incremental specialization to existing code.
Software Feedback
Multi-media systems often function near the limit of the bandwidth capacity of the underlying hardware, and must also function within real-time constraints imposed by quality of service limitations--audio and video must not "jitter" due to network delays. This study uses the software feedback method of fine-grained adaptiveness to enable multimedia systems to meet user-specified QoS needs in the face of dynamically changing resource load and availability. It it is hoped that this approach will provide more flexibility than conventional real-time scheduling with static worst-case resource reservation.
Partial Evaluation
Partial evaluation is an important component technology for exploiting the benefits of incremental specialization. Partial evaluation is a program transformation approach aimed at specializing programs with respect to invariants. The Partial Evaluation group lead by Charles Consel at the University of Rennes is collaborating with the Synthetix group to provide partial evaluation technology for C programs.
Seamless Mobility
Dynamic diversity is a growing concern in mobile computers. Mobile systems have to deal with radical changes in connectivity, CPU speed, available bandwidth, and hardware media. The problem with contemporary systems is that radical changes are treated as oversights or failures. One way to view the mobile computing effect on systems is the transformation of many invariants into quasi-invariants. This study uses a structure approach to evolve an existing network stack (the Net/3 implementation in BSD 4.4-Lite) to handle these new quasi-invariants.