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