Académique Documents
Professionnel Documents
Culture Documents
Le modèle processus décrit précédemment est un programme qui s’exécute selon un chemin
unique (compteur ordinal). On dit qu’il a un flot de contrôle unique (un seul thread). De
nombreux systèmes d’exploitation modernes offrent la possibilité d’associer à un même
processus plusieurs chemins d’exécution (multithreading, multi flot d’exécution).
• Un thread est une unité d’exécution rattachée à un processus, chargée d’exécuter une partie
du processus.
• Un processus est vu comme étant un ensemble de ressources (espace d’adressage, fichiers,
périphériques...) que ses threads (flots de contrôle ou processus légers) partagent.
• Lorsqu’un processus est créé, un seul flot d’exécution (thread) est associé au processus. Ce
thread peut en créer d’autres.
• Chaque thread a :
-un identificateur unique
- une pile d'exécution
-des registres (un compteur ordinal)
-un état..
Remarque
Le principal avantage des threads par rapport aux processus, c'est la facilité et la rapidité de
leur création. En effet, tous les threads d'un même processus partagent le même espace
d'adressage, et donc toutes les variables. Cela évite donc l'allocation de tous ces espaces lors
de la création, et il est à noter que, sur de nombreux systèmes, la création d'un thread est
environ cent fois plus rapide que celle d'un processus.
1
UMBB _Fac des sciences Année universitaire 2021-2022
Département d’informatique Semestre 5_ Matière : SE2
TP1 :
Programmer l’exemple suivant et observer les sorties
#include <pthread.h>
#include <stdio.h>
int var =0;
void* fonc1 (void* arg){
printf("fils %ld : début\n", pthread_self()) ;
sleep(1) ;
var=10 ;
printf ("fils %ld : modification de var=%d\n", pthread_self(), var) ;
sleep(10);
printf("fils %ld : fin\n", pthread_self()) ;
return NULL ;
}
int main()
{
pthread_t tid;
printf("père %ld : début (var=%d)/n", pthread_self(), var);
pthread_create(&tid, NULL, fonc1, NULL) ;
printf ("père %ld : creation de thread %ld\n", pthread_self(), tid);
sleep(5) ;
printf("père %ld : fin (var= %d)\n", pthread_self(), var);
return 0 ;
}
2
UMBB _Fac des sciences Année universitaire 2021-2022
Département d’informatique Semestre 5_ Matière : SE2