| 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 |