| 1 | ==‘‘‘Introduction au noyau MUTEKP :== |
| 2 | ‘‘‘[[ |
| 3 | ===‘‘‘‘‘]]‘‘‘‘‘‘‘‘Le concept d’un thread dans le système :=== |
| 4 | ‘‘‘ |
| 5 | |
| 6 | |
| 7 | Figure |
| 8 | |
| 9 | Un programme en exécution peut être décrit par trois segments mémoire: |
| 10 | |
| 11 | *Code : contient les instructions constituants le code du programme. |
| 12 | *Données : contient les variables globales qui sont des données initialisées ou non initialisées que le code du programme manipule. |
| 13 | *Pile : zone mémoire utiliser par le programme, lors de l’appel à une fonction, pour y stocker des données temporaire tel que paramètre de la fonction appelée et ses variables locales. |
| 14 | |
| 15 | Donc pour pouvoir charger un programme pour l’exécuter, il faut créer au moins ces trois segment. |
| 16 | |
| 17 | L’idée d’un thread est de pouvoir partager les deux segments code et données et de créer un segment de pile propre à chaque thread. |
| 18 | |
| 19 | Ainsi un thread est un flux d’exécution d’un programme où chaque thread possède : |
| 20 | |
| 21 | *Un contexte d’exécution (un compteur ordinale, un pointeur de pile et d’autres registres de travail du processeur). |
| 22 | *Une pile. |
| 23 | |
| 24 | Quelques avantages : |
| 25 | |
| 26 | *Création et gestion plus rapide (par rapport aux processus). |
| 27 | *Partage des ressources. |
| 28 | *Communication entre les threads est plus simple via la mémoire (les variables globales) |
| 29 | *Déploiement plus efficace de l’application sur des architectures multi-processeurs. |
| 30 | |
| 31 | |