Subversion Repositories shark


Blame | Last modification | View Log | RSS feed


by Paolo Gai 2001


NOTE (2004/07/05): This version of crunch WAS working with an old version of
shark. it should not be too difficult to make it working on the new
versions. But be aware that the Scheduling Modules interface has


This is a set of programs I wrote for the assignments in the Malardalens
University, Sweden.

The assignment for the students was the creation of a value scheduler that
can handle overload.



- This directoty should contain only this file and a makefile that should
  help in the creation of the applications.

- The LOAD directory contains a little application that can be used to
  generate some random load composed by a set of HARD and VALUE tasks with
  different execution time.

- The CRUNCH directory contains all the source code of the value schedulers
  done by me and by the students, plus an application called CRUNCH used
  to test the performance of the schedulers.

- The OUT directory contains all the compiled CRUNCH applications.
  Every bynary image contains the CRUNCH application configured with
  different scheduling algorithms.



The load generation produces a .dat file suited for the CRUNCH
application. The produced file contains a set of hard periodic tasks and
a set of value tasks.

The load generation can be tuned in various ways, and a set of small
C programs are provided to step-by-step generate the load.

Start: Length of the load pattern
First, we need the length of the load pattern. This information has
to be given in the LENGTH.DAT configuration file (that file contains only
the number of seconds that the load should cope.

Step 1: Generation of the Shape of the hard periodic load
Given the LENGTH.DAT file, we need to produce a random shape for the
Periodic load.

The random shape is the limit of bandwith that a certain time can be
available for creating hard tasks. Hard task creation is disabled
if the currently used bandwidth is higher than the limit.

The random shape is contained into the SHAPE.DAT file. The file contains
a sequence of numbers in the form: <time> <b>,
where <time> is the time in seconds to wich refers the threshold,
and <b> is the maximum bandwidth that can be used after <time>.
The data is ordered by time.

Step 2: Generation of the Hard Task pattern
Given the Shape of the pattern to be created, a small application
really generates the load that will be handled by the CRUNCH application.
The output of this phase is contained into the file HPATTERN.DAT.

Step 3: Generation of the Value pattern
Starting from the informations contained into the SHAPE.DAT, step 3
produces an aperiodic load.

The load is formed by a set of different tasks with different wcets and

a first set (called random) is really random with random periods and wcets

a second set (called bad) creates a set of big tasks with long dline and
a set of tasks with short dline, similar to the pattern used by Baruah
(in any case it remains offline.

Step 4: Creation of the file for the value scheduler
Finally, the step4 takes as imput the outputs from step3 and step2 toi create
the initialization file for crunch...