Real-Time Systems: Running the Spring Scheduling Simulator
University of Massachusetts, Amherst

create simulator input files

The spring scheduling simulator inputs sdl descriptions (configuration parameters) and events (action items). These can be created by hand or fabricated by a load generating tool (see ~dinatale/TOOLS/ploadgen*.c or ~kaneko/sim/taskgen.c for load generator examples).

At a minimum the sdl input file must contain layout, process group, process, and task group information. See the SDL technical report for specification details. Here's an sdl example.

The event file consists of a list of events composed of timestamp / process group pairs (other optional event file formats have been used). Here's an event file example.

compile the sdl input files

The sdl source files are compiled using sdl_cc. By convention sdl source files use a file type of .sdl and sdl output files use .db. The default output file from sdl_cc is full.db. If full.db doesn't exist, the sdl compiler will create it, an existing full.db will be updated to reflect new or modified information. The current 'installed' version of the sdl compiler can be found in /usr/users9/spring/decstation/bin/sdl_cc.

Usage: sdl_cc [-q] [-d] [-v] [-o output_db] sdl_file_list
debug output, complete spec of data read
verbose output, summarize things read
specifiy output file name (defaults to full.db)

Example: sdl_cc -q -o mysdl.db mysdl.sdl

run the scheduling simulator

The scheduling simulator can produce a variety of output, both to files and to memory (see usage options for more details). Memory logs can be used to graphically display schedule status over time. The current 'installed' version of the scheduling simulator can be found in /usr/users9/spring/decstation/simulator/sch/scheduler.

Usage: scheduler [-h] [-D dirname] [-e event_file] [-E] [-i] [-l log_file] [-m] [-N node_number] [-n] [-o out_file] [-p what] [-r] [-s sdl_file] [-z stt_number]
Print this message
directory in which to find sdl information and executables (default: cwd)
event filename -- root filename if no '.' found (default: log.evt)
Do not try to open executables to find sdl information
Print out stt initialization debugging information
log output filename -- root filename if no '.' found (default: log.[out,mem])
output to memory (specify twice to output in memory format to log file)
number of nodes (default: 1, Maximum: 5)
disable logging
text output filename
Print for debugging
delay between each event as specified by the relative timestamps
sdl database filename -- root filename if no '.' found (default: full.db)
maximum number of stt entries to show when scheduling (default: 5)

Example: scheduler -D sdl_dir -e full.evt -E >& out.lis

related utilities



Real-Time Systems