Real-Time Systems: Spring Product List
University of Massachusetts, Amherst

Informative (non functional)

The products listed in this section aren't usuable as standalone utilities, they need additional software to become a funtional unit. However, these sources do provide detailed information concerning implementation details. product: Spring scheduler The scheduler product contains the software that implements the Spring scheduling algorithm. This includes the process activation process and the scheduling process. The scheduler sources contain ifdef's for both the simulator version (runs in the development environment) and the Spring version (runs on the actual Spring hardware). This product contains approximately 16,000 lines of code.
product: Spring kernel The kernel product contains the software that implements the Spring operating system. This includes support for boot time functions (downloading, system initialization, process creation) and run time functions (process management and execution, system calls). These sources contain ifdef's for both the system processor (sp) and application processor (ap) versions of the Spring kernel. This product contains approximately 26,500 lines of code.

Development Environment

The products listed in this section can run standalone in the Spring development environment. Currently supported are Digital decstations and vaxes, porting to Digital alphas and Sun sparcs is underway. This software should be fairly easy to port to any flavor of unix. The Spring development environment requires the publicly available Gnu compiler (gcc) and Gnu make utility (gmake). Imake, a preprocessor interface to make, is optional but adds convenience. product: Spring simulator The simulator product allows experimentation with the Spring scheduler by simulating a Spring node (non real-time) in the development environment. This product contains the Spring scheduler product listed above as well as the Spring system description language (sdl) software. The sdl software includes the sdl compiler and utilities to manipulate compiled sdl files. Use of this product requires manually generating sdl source files (describing the desired task sets) and event files (describing the desired actions). The sdl compiler inputs sdl source files and outputs compiled sdl information (sdl database files). The scheduler inputs sdl databse files and event files, and outputs textual scheduling information. There is currently no support for simulating application process execution. This product contains approximately 28,500 lines of code.
option: Spring simulator analysis display This is an option for the Spring simulator product that adds a graphical display of task information and generated schedules. The simulator can operate in a monitor or playback mode. This option requires the X window system and contains approximately 8,000 lines of code.
option: Spring workload generator (example) This option currently consists of an example of a workload generator for the Spring simulator that was used for a specific research topic. It eliminates the need to manually generate the simulator input files and consists of approximately 500 lines of code. Work on a more generic workload generator option is being considered at this time.
option: Spring simulator configuration (not yet available) This future option would be a front end to the Spring simulator that would add configuration options for characteristics such as hardware configuration and scheduling algorithms.
option: Spring simulator gui (not yet available) The Spring gui would add a consistent graphical user interface to the simulator that would include the workload generator, the configurator, and the analysis display.
product: Spring compiler The Spring compiler is a cross compiler that is a modified version of Gnu CC. It inputs Spring C and sdl source files and outputs Spring executable and sdl database files. This product is intended to be both informative and useful in experimenting with the timing tools and time graph functions that are part of this compiler. It consists of approximately 400,000 lines of code (much of which is gcc support for many different architectures).

Spring Environment

The products listed in this section need the total Spring environment in order to be utilized, this includes the development environment described above as well as a Spring node. This product also requires Gnu CC (gcc), Gnu make (gmake), make preprocessor (imake), source code control system (sccs), Gnu lex (flex), and Gnu yacc (bison). product: Spring The Spring product includes the Spring software generation system (sgs), kernel, and scheduler. Spring sgs includes the compiler, debugger, tools, and utilities. With this product, the full Spring system is realized. The kernel and scheduler run on the actual Spring architecture and specific applications can be developed and run in real-time. This product includes approximately 655,500 lines of code.
option: Carts demo The Carts demo is a flexible manufacturing application that integrates technologies from robotics, visions, artificial intelligence, and real-time operating systems. The Spring system is used to control the entire manufacturing process. This demo requires a sparc processor (that can access a scramnet board) to run the robotics processes.

Real-Time Systems