The Spring kernel has been designed and implemented to support/provide predictability, on-line dynamic guarantees, atomic guarantees, end-to-end scheduling and resource reservations. In effect it supports a "call/task admission" paradigm. It utilizes a micro-kernel design for multiprocessor architectures and provides an interface to remote processes, support for distributed shared memory, and predictable low level communication. The kernel exists as a component of Spring's integrated environment that includes compilers, system description languages, etc. This environment extracts significant semantic information and this information is used at runtime to support flexibility and predictability.
Current work includes considering how to port the Spring kernel to other multiprocessor architectures, scaling the kernel (up and down), revisiting the micro-kernel design, and integration of subsystems such as RT-Posix. Work on extending the kernel's support for distributed systems, hard and soft real-time application environments, multimedia, and fault tolerance is also underway. A predictable real-time "sterile" thread capability has recently been implemented and a multimedia server running on Spring has been designed and analyzed via simulation.