Vous êtes sur la page 1sur 6

LANGUAGE

MULTITHREAD:
Thread:

ü Un thread est un processus léger « Un processus dans un

processus »

ü Un thread possède une série d’informations propres à lui

Identifiant, compteur de programme, registres, pile

Multithread:

est l’alternative `a la programmation multiprocessus. Il offre un parallelisme plus

l ́eger `a grérer pour le systéme.

Les threads créent un parallélisme intra-processus et facilitent le partage des

tâches et leur communication au sein d’un processus.


Processus multi-thread:

Avantages du multi-threading:

ü Augmentation de la réponse Même si un thread bloque, le reste de

l’application peut continuer.

ü PaPartage des ressources du processus Les différents threads sont

dans l’espace d’adressage du processusrtage des ressources du

processus.

ü Économie lors de la création et du changement de contexte Plus

rapide et moins couteux de créer des threads.

ü Montée en charge sur des architectures multi-processeurs Les

threads peuvent être exécutés sur différents processeurs

Les états d’un thread:

2
Quel que soit le modéle de multithreading, on retrouve toujous les mêmes états

principaux pour les threads. Ils permettent, tout comme ils le font pour les

processus, de renseigner l’ordonnanceur pour qu’il sache quelle tâche lancer.

ü On retrouve pour chaque thread trois états clés:running,ready et blocked..

L’ ́etat suspend que peut avoir un processus n’existe pas (l état waiting est

une suspension mais n’a pas la même s ́emantique) ; en effet suspendre un

unique thread revient `a suspendre l’exécution cd tous les threads d’un

même processus, puisque celui-ci se retrouve swappé pour laisser la place

`a d’autres processusen m ́emoire vive.

ü L’état running: attribué à un thread en cours d’exécution , c’est `a dire

quand il s’exécute reellemet sur le processeur.

ü Il faut tout de même faire attention, car il reta possible que l’ ́etat d’un

thread soit diff ́erent de celui de son processus suivant l’implémentation

multithreading retenue (cas des green threads). Tout thread pouvant ˆetre

choisi par l’ordonnanceur est dans

3
ü L’état blocked:intervient lorsqu’un thread fai tun appel d’E/S, par exemple,

ou un quelconque autre appel systéme eme, ou que sa rtanche de temps

impartie est écoulée . Suivant le modéle utilisé. ce timeslice est calculé : soit

au niveau de l’ordonnancement au sein des processus, auquel cas il s’agit

d’une d ́ecision de l’espace utilisateur ; soit dans l’espace du noyau.

ü Il se peut ́egalement qu’un threadsoit dans L’état waiting . Cela se produit

lorsqu’il essaie d’acc ́eder `a un mutex (permet l’exlusion mutuelle des

threads lors de l’acc`es `a des donn ́ees globales) qui est d ́ej`a pris auquel il

est bloqu ́esur ce verrou jusqu’`a ce qu’il se lib`ere.

ü L’état ready: est un état qui se retrouve dans les threads Java par exemple.

Ces trois derniers états ont la caractèristiques d’attendre qu’un événement

se produise.

Les bibliothèques eques de threads:

Il existe aujourd’hui diverses bibliothèques permettant de manipuler

des threads sous LINUX. On d ́enombre deux principaux types

d’implémentation de threads :

ü Au niveau utilisateur (user-level). A ce moment la, la gestion des

threads est entiérement faite dans l’espace utilisateur.

ü Au niveau noyau (kernel-level). Dans ce cas, les threads sont

directement gérés par le noyau. Dans ce dernier cas, la base de

l’implémentation est entre-autres l’appel systéme clone, ́également

utilisé pour la création de processus classiques :

Name:

4
clone - create a child process

SYNOPSIS:

#include <linux/sched.h>

#include <linux/unistd.h>

pid_t clone(void *sp, unsigned long flags)

DESCRIPTION:

clone is an alternate interface to fork, with more options. fork is

equivalent to clone(0, SIGCLD|COPYVM).

• La biblioth`eque LinuxThreads d ́eveloppée par Xavier Leroy

(Xavier.Leroy@inria.fr) est une excellente implémentation de la norme

POSIX 1003.1c. Cette biblioth`eque est bas ́ee sur l’appel systéme clone. Je ne

saurais trop vous conseiller d’utiliser ce produit, ce que nous ferons dans la

suite des exemples présentés e dans cet article.

5
6

Vous aimerez peut-être aussi