Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1663 | pj | 1 | VALUE SCHEDULER SUITE |
2 | --------------------- |
||
3 | |||
4 | by Paolo Gai 2001 |
||
5 | |||
6 | --------------------- |
||
7 | |||
8 | NOTE (2004/07/05): This version of crunch WAS working with an old version of |
||
9 | shark. it should not be too difficult to make it working on the new |
||
10 | versions. But be aware that the Scheduling Modules interface has |
||
11 | changed... |
||
12 | |||
13 | --------------------- |
||
14 | |||
15 | This is a set of programs I wrote for the assignments in the Malardalens |
||
16 | University, Sweden. |
||
17 | |||
18 | The assignment for the students was the creation of a value scheduler that |
||
19 | can handle overload. |
||
20 | |||
21 | --------------------------------------------------------------------------- |
||
22 | |||
23 | Directories: |
||
24 | |||
25 | - This directoty should contain only this file and a makefile that should |
||
26 | help in the creation of the applications. |
||
27 | |||
28 | - The LOAD directory contains a little application that can be used to |
||
29 | generate some random load composed by a set of HARD and VALUE tasks with |
||
30 | different execution time. |
||
31 | |||
32 | - The CRUNCH directory contains all the source code of the value schedulers |
||
33 | done by me and by the students, plus an application called CRUNCH used |
||
34 | to test the performance of the schedulers. |
||
35 | |||
36 | - The OUT directory contains all the compiled CRUNCH applications. |
||
37 | Every bynary image contains the CRUNCH application configured with |
||
38 | different scheduling algorithms. |
||
39 | |||
40 | --------------------------------------------------------------------------- |
||
41 | |||
42 | LOAD GENERATION |
||
43 | |||
44 | The load generation produces a .dat file suited for the CRUNCH |
||
45 | application. The produced file contains a set of hard periodic tasks and |
||
46 | a set of value tasks. |
||
47 | |||
48 | The load generation can be tuned in various ways, and a set of small |
||
49 | C programs are provided to step-by-step generate the load. |
||
50 | |||
51 | Start: Length of the load pattern |
||
52 | --------------------------------- |
||
53 | First, we need the length of the load pattern. This information has |
||
54 | to be given in the LENGTH.DAT configuration file (that file contains only |
||
55 | the number of seconds that the load should cope. |
||
56 | |||
57 | Step 1: Generation of the Shape of the hard periodic load |
||
58 | --------------------------------------------------------- |
||
59 | Given the LENGTH.DAT file, we need to produce a random shape for the |
||
60 | Periodic load. |
||
61 | |||
62 | The random shape is the limit of bandwith that a certain time can be |
||
63 | available for creating hard tasks. Hard task creation is disabled |
||
64 | if the currently used bandwidth is higher than the limit. |
||
65 | |||
66 | The random shape is contained into the SHAPE.DAT file. The file contains |
||
67 | a sequence of numbers in the form: <time> <b>, |
||
68 | where <time> is the time in seconds to wich refers the threshold, |
||
69 | and <b> is the maximum bandwidth that can be used after <time>. |
||
70 | The data is ordered by time. |
||
71 | |||
72 | Step 2: Generation of the Hard Task pattern |
||
73 | ------------------------------------------- |
||
74 | Given the Shape of the pattern to be created, a small application |
||
75 | really generates the load that will be handled by the CRUNCH application. |
||
76 | The output of this phase is contained into the file HPATTERN.DAT. |
||
77 | |||
78 | Step 3: Generation of the Value pattern |
||
79 | --------------------------------------- |
||
80 | Starting from the informations contained into the SHAPE.DAT, step 3 |
||
81 | produces an aperiodic load. |
||
82 | |||
83 | The load is formed by a set of different tasks with different wcets and |
||
84 | dline. |
||
85 | |||
86 | a first set (called random) is really random with random periods and wcets |
||
87 | |||
88 | a second set (called bad) creates a set of big tasks with long dline and |
||
89 | a set of tasks with short dline, similar to the pattern used by Baruah |
||
90 | (in any case it remains offline. |
||
91 | |||
92 | Step 4: Creation of the file for the value scheduler |
||
93 | ---------------------------------------------------- |
||
94 | Finally, the step4 takes as imput the outputs from step3 and step2 toi create |
||
95 | the initialization file for crunch... |