1 | | Dans cette section nous spécifions l'ordonnanceur d'ALMOS-MK. |
| 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 | * created : |
| 17 | * ''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é. |
| 18 | |
| 19 | === 1.2) Structures par cœur === |
| 20 | |
| 21 | Dans chaque cœur, on trouve une structure ''sched_t'' contenant les champs suivante : |
| 22 | * ''ready_list'' : contient les threads qui sont prêt à s'éxécuter ; |
| 23 | * ''sleep_list'' : 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é ; |
| 24 | * |