Rev 1085 | Rev 1299 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1085 | pj | 1 | ---------------------------------- |
2 | Jumping Balls demo |
||
3 | |||
4 | by |
||
5 | |||
6 | Paolo Gai 1999-2001 - pj@sssup.it |
||
7 | |||
8 | ---------------------------------- |
||
9 | |||
10 | This demo was created to show some S.Ha.R.K. functionalities in the course |
||
11 | of Informatica Industriale , University of Pavia, Italy. |
||
12 | |||
13 | The demo is composed by an application (derived by the template application |
||
14 | distributed on the web site) and two init files. |
||
15 | |||
16 | The demo is composed by: |
||
17 | |||
18 | MAKEFILE The makefile used to compile the application; |
||
19 | demo is the rule to compile the application with a CBS scheduler |
||
20 | demo2 is the rule to compile the application with a RR scheduler |
||
21 | README.TXT This file |
||
22 | DEMO.H Some constants used into the demo |
||
23 | INITFIL1.C The CBS initfile |
||
24 | INITFIL2.C The EDF initfile |
||
25 | INITFILE.C A makefile that cover either EDF+CBS and RR |
||
26 | BALL.C The Jumping balls part of the demo |
||
27 | DEMO.C The main() function and some other utility function |
||
28 | JETCTRL.C The JET part of the demo |
||
29 | |||
30 | |||
31 | The demo works as follows: |
||
32 | - It works at 640x480 16 bit colors |
||
33 | - on the left, there is the jumping ball arena, on the rigth there is the |
||
34 | statistics about the tasks into the system. |
||
35 | |||
36 | - the tasks are guaranteed using CBS and EDF. The wcet and mean execution |
||
37 | time on my portable after a few minutes are (us): |
||
38 | |||
39 | JetCtrl 7400 max 7500 CBS met |
||
40 | JetDummy 135 max 200 CBS met |
||
41 | JetSlide 2100 max 2100 CBS met |
||
42 | Balls 276 max 380 EDF wcet for hard ball,100 CBS met for soft ones |
||
43 | |||
44 | The system should go overloaded with 40 soft balls. |
||
45 | |||
46 | - The idea is the following: |
||
47 | - first, an edf guaranteed ball is created. |
||
48 | - then, create a set of soft ball using space. since their met is < than the |
||
49 | real met, they posticipate the deadlines. |
||
50 | - if they are killed, they remain for some seconds in the zombie state |
||
51 | - if a set of soft ball arde created (i.e., 10), and after a while all the |
||
52 | others are created, the bandwidth is fully used, and the task posticipate |
||
53 | their deadlines. the first set of tasks stops jumping when the bandwidth |
||
54 | is full utilized by the newest balls until all the tasks have similar |
||
55 | deadlines. |
||
56 | - Note on the left the slides that represents the relative ratio |
||
57 | between the tasks. |
||
58 | - Note that in overload conditions the EDF task is still guaranteed |
||
59 | - Note that PI is used with EDF, also if no theory says that it is good: |
||
60 | - S.Ha.R.K. allows that, it is the user that have to choose if that is |
||
61 | a non-sense |
||
62 | - PI is independent from the implemnentation of the scheduling modules |
||
63 | - if the second init file is used, RR is used instead of EDF+CBS. |
||
64 | - In overload condition RR perform differently from EDF+CBS, giving to |
||
65 | each task an equal fraction of bandwidth |
||
66 | |||
67 | - note also: |
||
68 | - the redefinition of the standard exception handler |
||
69 | - the redefinition of the keys and the initialization of the keyboard |
||
70 | - the myend exit function |
||
71 | - the main() that terminates |
||
72 | - the two parts (ball and jet) can be excluded using a #define |
||
73 | |||
74 | If You have any question, please contact the author... |
||
75 |