Name | Last modified | Size | Description | |
---|---|---|---|---|
Parent Directory | - | |||
2008.tgz | 2008-11-24 15:11 | 127K | ||
Makefile | 2008-11-24 14:06 | 1.3K | ||
aperiodic_server_par..> | 2008-11-24 09:49 | 286 | ||
aperiodic_workloads.adb | 2008-11-24 09:49 | 1.4K | ||
aperiodic_workloads.ads | 2008-11-24 09:49 | 890 | ||
cycles.adb | 2008-11-24 09:49 | 2.2K | ||
cycles.ads | 2008-11-24 09:49 | 690 | ||
error_log.adb | 2008-11-24 09:49 | 578 | ||
error_log.ads | 2008-11-24 09:49 | 572 | ||
events.adb | 2008-11-24 09:49 | 806 | ||
events.ads | 2008-11-24 09:49 | 2.3K | ||
generic_queues.adb | 2008-11-24 09:49 | 3.6K | ||
generic_queues.ads | 2008-11-24 09:49 | 1.4K | ||
job_queues.ads | 2008-11-24 09:49 | 158 | ||
jobs.adb | 2008-11-24 09:49 | 216 | ||
jobs.ads | 2008-11-24 09:49 | 284 | ||
periodic_workloads.adb | 2008-11-24 09:49 | 1.0K | ||
periodic_workloads.ads | 2008-11-24 09:49 | 907 | ||
plots/ | 2015-07-26 07:00 | - | ||
random_tools.adb | 2008-11-24 09:49 | 3.8K | ||
random_tools.ads | 2008-11-24 09:49 | 1.0K | ||
replenishments.adb | 2008-11-24 09:49 | 1.9K | ||
replenishments.ads | 2008-11-24 09:49 | 1.0K | ||
report.adb | 2008-11-24 14:18 | 10K | ||
report.ads | 2008-11-24 14:10 | 858 | ||
simulator.adb | 2008-11-24 13:14 | 6.0K | ||
simulator.ads | 2008-11-24 09:49 | 1.2K | ||
sizes.ads | 2008-11-24 09:49 | 4.1K | ||
stats.adb | 2008-11-24 09:49 | 688 | ||
stats.ads | 2008-11-24 09:49 | 504 | ||
tasks-aperiodic_serv..> | 2008-11-24 09:49 | 536 | ||
tasks.adb | 2008-11-24 09:49 | 11K | ||
tasks.ads | 2008-11-24 09:49 | 3.0K | ||
test_five.adb | 2008-11-24 14:01 | 10K | ||
test_four.adb | 2008-11-24 14:00 | 7.4K | ||
test_one.adb | 2008-11-24 12:32 | 2.6K | ||
test_six.adb | 2008-11-24 12:33 | 2.8K | ||
test_three.adb | 2008-11-24 12:31 | 4.5K | ||
test_two.adb | 2008-11-24 12:30 | 3.6K | ||
test_zero.adb | 2008-11-24 12:32 | 2.7K | ||
threads-aperiodic_po..> | 2008-11-24 09:49 | 523 | ||
threads-sched_bgs.adb | 2008-11-24 09:49 | 588 | ||
threads-sched_bgs.ads | 2008-11-24 09:49 | 717 | ||
threads-sched_dss.adb | 2008-11-24 13:44 | 16K | ||
threads-sched_dss.ads | 2008-11-24 09:49 | 2.0K | ||
threads-sched_edf.adb | 2008-11-24 09:49 | 1.0K | ||
threads-sched_edf.ads | 2008-11-24 09:49 | 476 | ||
threads-sched_pls.adb | 2008-11-24 13:49 | 7.0K | ||
threads-sched_pls.ads | 2008-11-24 12:37 | 1.7K | ||
threads.adb | 2008-11-24 13:50 | 9.9K | ||
threads.ads | 2008-11-24 12:05 | 8.4K | ||
virtual_times.ads | 2008-11-24 09:49 | 139 | ||
workload_models.ads | 2008-11-24 09:49 | 680 | ||
author: Ted Baker<
These programs were compiled and tested using GNAT GPL version 4-1-2008 under 64-bit Linux on an Intel platform.
Use make to compile all the test programs.
Run "test_four" to generate data that can be plotted with Gnuplot on files "EDFAA.pts", etc.
To plot the data, use "make plots", and then look in subdirectory plots.
The test programs (test_xxxx) write a little to the standard output file, but write most of their output to a correspondingly named log-file "test_xxx.log".
To vary the amount of trace information logged, change the value of the variable Debug_Level that is set in each test's main progra (test_xxxx.adb). (If I get time I will some day modify the programs to accept a command line parameter to specify this.)
To implement a new scheduling policy (say "XXX"), create new files "threads-sched_XXX.ads" and "threads-sched_XXX.adb", starting from one of the pairs below. Make changes as appropriate for your policy. To test, modify one or more of the test programs below, replacing "DSS" by "XXX" at apprpriate places.
Test programs and other configurable files:
test_zero.adb - tests simulation of one periodic task, using EDF scheduling.
test_one.adb - tests simulation of one aperiodic task, using DSS schedulnig.
test_two.adb - tests simulation of a system of two tasks: one aperiodic task, using DSS scheduling, and one periodic task, using EDF scheduling.
test_three.adb - tests simulation of a system of three tasks: one aperiodic task, using DSS scheduling, and two periodic tasks, using EDF scheduling. Runs simulation four times, for different aperiodic utilization levels.
test_four.adb - repeatedly runs simulation of one aperiodic server task and ten periodic tasks, with a variety of periodic and aperiodic workloads and scheduling parameters, and three aperiodic scheduling policies (BGS = background server, PLS = polling server, and DSS = deadline sporardic server). The set of workloads is specified by a separate Ada package (see sizes.ads below). Output is in several files, which are suitable for plotting with Gnuplot. This program can take a fairly long time to run.
sizes.ads - specifies policies, workloads, etc. for test_four. You can edit this to add more policies, change workloads,etc.
test_five.adb - a crippled version of test_four, with the number of simulations reduced to one. This is helpful for debugging, to reduce the running time and amount of output.
test_six.adb - tests simulation of one aperiodic task using the polling server (PLS) policy/LI>
threads-sched_pls.adb - implementation of polling server (PLS).
threads-sched_dss.ads - interface specification for deadline sporadic server (DSS)
threads-sched_dss.ads - implementation of deadline sporadic server (DSS)
report.adb - used by test_four to generate output files for Gnuplot and LaTeX.
2008.tgz - tar-file of this directory