1 | | Dans cette section nous spécifions l'ordonnanceur d'ALMOS-MK. Ce dernier est par cœur est à pour rôle de gérer les états des threads. |
2 | | |
3 | | == __1) Structures de données == |
4 | | |
5 | | Nous présentant ici les structures de données nécessaire au fonctionnement de l'ordonnanceur. |
6 | | Ces structures sont organisée par groupe : thread ou cœur. |
7 | | |
8 | | === 1.1) Structures par thread === |
9 | | |
10 | | Dans chaque thread, on trouve des champ qui sont relative à l'ordonnanceur : |
11 | | |
12 | | * ''sched_list'' : Ce champs est de type ''list_t'' et permet d'ajouter un thread dans l'une des liste de l'ordonnanceur ; |
13 | | * ''state'': Ce champ permet d'indiquer dans quel est l'état du thread. Ce champ indique l'un des états suivants : |
14 | | * ''runing'' : |
15 | | * ''dead'' : |
16 | | * ''wait'' |
17 | | * ''created'' : |
18 | | * ''sched_callback'' : ce pointeur de fonction peut être utilisé pour signaler à l'ordonnanceur qu'un thread peut être réveillé (1.2, ''sleep_list''). Cette fonction retourne un booléen lorsque le thread peut être réveillé. |
19 | | |
20 | | === 1.2) Structures par cœur === |
21 | | |
22 | | Dans chaque cœur, on trouve une structure ''sched_t'' contenant les champs suivante : |
23 | | * ''ready_list'' : cette liste contient les threads qui sont prêt à s'éxécuter ; |
24 | | * ''sleep_list'' : cette liste contient les threads qui sont endormis et dont le réveil est à la charge de l’ordonnanceur. L'ordonnanceur utilise le pointeur de fonciton ''sched_callback'' pour savoir à quel moment le thread doit être réveillé ; |
25 | | * ''dead_list'' : cette liste contient les threads qui sont mort et dont les données doivent être libérées ; |
| 1 | Dans cette section nous spécifions l'ordonnanceur d'ALMOS-MKH. Ce dernier est par cœur et a pour rôle de gérer les états des threads. TODO |