The SRMS Workbench
A Primer
Real-Time Computation and Communication Group
Computer Science Department
Boston University
Introduction
The SRMS Workbench is a software system developed to demonstrate the
notion of Statistical QoS employed in SRMS [AtlasBestavros:1998]. The
SRMS Workbench includes: (1) the SRMS schedulability analyzer (QoS
negotiator), and (2) a SRMS simulator (Basic SRMS + all
extensions). These two components are packaged into a Java Applet that
can be executed remotely on any Java-capable Internet browser. For
comparison, other scheduling algorithms, including RMS
[LiuLayland:1973] and SSJAC [AtlasBestavros:1998] are included.
Through a simple GUI, the SRMS Workbench allows users to specify a set
of periodic tasks, each with (a) its own period, (b) the
distributional characteristics of its periodic resource requirements
(e.g. Poisson, Pareto, Normal, Exponential, Gamma, etc.), (c) its
desired QoS as a lower bound on the percentage of deadlines to be met,
and (d) a criticality/importance index indicating the value of the
task (relative to other tasks in the task set). Once the task set is
specified, the SRMS Workbench allows the user to check for
schedulability under SRMS. If the task set is schedulable, the SRMS
Workbench generates the appropriate allowance for each task and allows
the user to create an animated simulation of the task system, which
can be executed and profiled. If the task set is not schedulable, the
SRMS Workbench informs the user of that fact and suggests (as part of
the QoS negotiation) an alternative set of feasible QoS requirements
that reflects the specified criticality/importance index of the tasks
in the task set.
The SRMS Workbench is available on the Web at
http://www.cs.bu.edu/groups/realtime/SRMSworkbench
QoS Specification and Negotiation
To use the SRMS Workbench for QoS Specification and Negotiation,
follow the following steps:
- Select the scheduling algorithm with which you would like to
experiment.
- Select the number of tasks in the task system with which you
would like to experiment. The
applet supports 1 to 9 tasks (due to display restrictions).
- Enter the task parameters for each task in the task set. Depending
upon the scheduling algorithm chosen, each task may require different
parameters.
- Once the tasks are properly entered, check the system
schedulability. There are two possible outcomes.
- If the task set is schedulable, you are all set.
- If the task set is not schedulable, the system displays a recommended QoS
(i.e. that is schedulable). Such recommendations take into
consideration the QoS and criticality you had specified in the
previous step. You
may use this recommended QoS as is (and thus be guaranteed the
schedulability of the task set), or else you may use it to guide the
choices you make for the next round of schedulability testing. In
either cases, you will need to go back to the previous step to
modify the task parameters (unless you would like to experiment with
the system even though the schedulability test failed).
- Regardless of whether the system is schedulable or not, you
will be given the option of creating a simulator for the specified
task system to illustrate the behavior of the system under the
selected scheduling algorithm.
Task Set Simulation
To start the simulation of a task set that you specified as described
above, click on the "Create Simulation" button. As a result, a
simulation window (that displays how a resource is scheduled given the
specified task system and scheduling algorithm) is created. The top
line represents the resource utilization. The lower lines show the
time that each task gets on the resource. The highest
priority/shortest period task is highest on the screen. Statistics on
the deadlines met and missed are gathered on the right of the
scheduling display. The quality of service (QoS) is the percent of
jobs which make their deadlines. In the display, a flag
is displayed on a task's timeline when a new job becomes
ready; if the flag is colored, then the job was admitted to the
system. Above the flag is a square . The square is
black if the previous job met its
deadline, and is white if the previous
job missed its deadline.
Task Parameter Requirements
- Period
- An integer greater than 0. A new job is ready at the beginning
of every period and is due at the end of every period.
- Distribution
- The probability density function which describes the execution
requirement of the task. Default assumption in RMS is a fixed
execution time.
- Mean
- The average execution requirement of the task. This is required
for all distributions. A positive real number is required.
- Standard Deviation
- A positive real number is required. This further defines those
distributions which need a second parameter.
- Superperiod
- A term used in Statistical Rate Monotonic Scheduling. A task's
superperiod is the period of the task with the next longest period in
the system. If the task has the longest period, then its superperiod
is assumed to be five times its period (arbitrarily).
- Budget
-
- Rate Monotonic Scheduling
- unused
- Statistical Rate Monotonic Scheduling
- The task's time budget. The budget is an integer
between 0 and the period of the next longer task. The
budget is the time available to that task for each
superperiod . Either the budget or the QoS
can be specified.
- Slack Stealing Job Admission Control
- A threshold for execution times. Any job with an
execution time less than or equal to the budget is
automatically admitted to the system and guaranteed. A job
with a longer execution time must attempt to admit its excess
time requirement. An integer between 0 and the task's period
must be entered.
- QoS
- The Quality of Service is only used by Statistical Rate Monotonic
Scheduling. The user can specify either the budget or the QoS for
each task. Whichever is not specified will be calculated when the
system schedulability is checked. The value entered must be a real
number between 0 and 100.
- Criticality
- Represents how important a task is. An integer larger than 0
must be entered. This value is only used by Statistical Rate
Monotonic Scheduling to distribute unpromised utilization to tasks.
Buttons
- Check System Schedulability
- The schedulability of the system is reported, and the Create
Simulation button is enabled. If the scheduler is RMS, then the
system is tested for complete schedulability and for average
schedulability. If the scheduler is SRMS, then a schedulable system
means that the time budgets are guaranteed to each task. If the
scheduler is SSJAC, then a schedulable system means that any jobs with
execution times lower than their budgets are guaranteed to meet
their deadlines. Note: For SRMS, this will also calculate the QoS
and/or budget for each task. These calculations are done based
upon an array of randomly generated execution times. If a task's
superperiod is larger than four times its period, these calculations
may take some time.
- Create Simulation
- This creates a simulation below the task specifications. The
simulation uses the previously specified task system and the specified
scheduling algorithm.
- Start Simulation
- This will start the scheduling simulation.
- Stop Simulation
- This will stop the current simulation and reset to the start of
the simulation, so the simulation is just as if it had just been
created.
- Pause/Restart Simulation
- This will pause or restart the simulation, without changing its
state.
- Step Simulation
- This will step the simulation half a time unit.
- Remove Simulation
- Removes the simulation window from the applet.
- Enable/Disable Dual Priority
- This exists only with the SRMS algorithm. If dual
priority is enabled, then rejected jobs are permitted to run if
the resource would otherwise be idle.
- Enable/Disable Time Inheritance
- This exists only with the SRMS algorithm. If time
inheritance is enabled, then, at the end of its superperiod, a
task can pass its unspent budget to the task with the next longest
period. This preserves guaranteed high priority time as long as
possible.
- Enable/Disable Overlap Heuristics
- This exists only with the SRMS algorithm and is only useful with
non-harmonic periods. If overlap heuristics are enabled,
then when a job is released in one superperiod and has a deadline in
the next, an effort is made to schedule the job using the release
superperiod's remaining allowance.
For any clarifications or to report problems, please send an email
message to Alia Atlas.