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
-q
quiet
-d
debug output, complete spec of data read
-v
verbose output, summarize things read
-o
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]
-h
Print this message
-D
directory in which to find sdl information and executables (default: cwd)
-e
event filename -- root filename if no '.' found (default: log.evt)
-E
Do not try to open executables to find sdl information
-i
Print out stt initialization debugging information
-l
log output filename -- root filename if no '.' found (default: log.[out,mem])
-m
output to memory (specify twice to output in memory format to log file)
-N
number of nodes (default: 1, Maximum: 5)
-n
disable logging
-o
text output filename
-p
Print for debugging
-r
delay between each event as specified by the relative timestamps
-s
sdl database filename -- root filename if no '.' found (default: full.db)
-z
maximum number of stt entries to show when scheduling (default: 5)


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

related utilities

sdl_read

sch_mem2log


Real-Time Systems