• Aucun résultat trouvé

Bilan

Dans le document The DART-Europe E-theses Portal (Page 45-48)

Les processus l´egers, apr`es avoir ´et´e pendant longtemps un sujet de recherche, sont aujourd’hui int´egr´es dans un nombre croissant de syst`emes, d’applications et de langages. La standardisation dont ils ont fait l’objet facilite l’´ecriture de programmes portables et la plupart des grands fabriquants d’ordinateurs proposent les Pthreads sur leurs machines. Les fonctionnalit´es de ce standard couvrent les besoins d’une large classe d’applications parall`eles, distribu´ees ou “classiques”. Ces noyaux ont l’avantage d’ˆetre disponibles facilement, et leur grande diffusion fait qu’ils ont ´et´e d´ebarrass´es d’un grand nombre de bogues.

A cot´e des ces noyaux standards en existent d’autres, qui en reprennent en par-` tie les fonctionnalit´es et qui en proposent d’autres plus “exotiques”. Par exemple le noyau Marcel utilis´e par PM2 (voir [73]) fournit des m´ecanismes d’extension de pile, d’hibernation et de r´eveil.

L’utilisation des processus l´egers s’av`ere int´eressante pour masquer des d´elais d’at-tente lors de l’ex´ecution (int´eraction avec l’utilisateur, entr´ees sorties. . . ) et c’est donc naturellement que la multiprogrammation l´eg`ere a ´et´e utilis´ee dans les environnements de communication. Le chapitre suivant pr´esente ce sujet.

45

Chapitre 4

Multiprogrammation et communications

4.1 Introduction

L’int´egration des communications et de la multiprogrammation l´eg`ere pr´esente de nombreux avantages, li´es tant `a la recherche de l’efficacit´e dans l’ex´ecution qu’`a une plus grande souplesse et facilit´e de programmation. Parmi ces avantages on peut noter : – Les processus l´egers ont un surcoˆut faible compar´e `a celui des processus lourds.

Ils permettent l’ex´ecution efficace de tˆaches `a grain fin au sein d’une application parall`ele ou distribu´ee.

– L’ordonnancement des processus l´egers peut ˆetre transparent au programmeur et “automatique” (on parle d’“auto-ordonnancement”). Il permet d’ignorer l’in-d´eterminisme associ´e aux communications, dˆu `a la dur´ee non connue a priori d’une communication.

– La multiprogrammation permet de recouvrir les attentes de communication d’un fil par des calculs d’un autre fil, masquant de ce fait les dur´ees de communica-tion.

– L’´ecriture d’une application `a l’aide de plusieurs fils d’ex´ecution peut ˆetre faite pour des raisons de simplification de la programmation et de la maintenance.

Une int´egration des communications et de la multiprogrammation l´eg`ere per-met d’´etendre cette d´emarche aux applications communiquantes. En g´en´eral, les raisons ´evoqu´ees section 3.3, page 29 et suivantes, s’´etendent aux applications parall`eles et communicantes.

Quand des processus l´egers communiquent, se pose la question du nommage des destinataires des messages. Dans le mod`ele processus communiquants traditionnel,

des identificateurs sont associ´es aux processus, sont connus sur l’ensemble de la ma-chine parall`ele et servent d’adresses d’origine et de destination des messages. Dans une machine parall`ele compos´ee de machines ind´ependantes reli´ees par un r´eseau, de tels identificateurs sont par exemple compos´es du nom de la machine concat´en´e au num´ero de processus sur la machine. Une telle d´emarche est d´elicate `a ´etendre au cas des communications en pr´esence de processus l´egers, car ceux-ci, contrairement aux processus lourds, ne sont pas des entit´es “stables”. En effet, le coˆut de cr´eation des processus lourds fait qu’ils ont une longue dur´ee de vie, car la performance d’une application ayant recours `a une cr´eation dynamique syst´ematique serait fortement d´e-grad´ee. Par contre, dans une application utilisant la multiprogrammation l´eg`ere, il est courant que des fils soient cr´e´es pour des tˆaches ponctuelles et courtes et que ces fils aient n´eanmoins besoin de communiquer. Un m´ecanisme de nommage dans lequel chaque processus l´eger se voit attribuer un nom global connu sur l’ensemble de la ma-chine peut d’une part induire un surcoˆut important et d’autre part ˆetre peu pratique `a l’emploi.

Une alternative `a l’envoi des messages `a un fil particulier consiste `a envoyer les messages `a une boˆıte aux lettres, qui est ensuite lue par un ou plusieurs fils. Cette ap-proche de communication anonyme pr´esente de nombreux avantages car elle est d’im-plantation plus simple, d’usage plus g´en´eral et permet qui plus est de reconstruire le cas de l’adressage des messages `a un fil particulier. L’implantation est plus simple car elle ne n´ecessite pas de tenir compte de la cr´eation et de la disparition des fils d’ex´ecution pour la gestion des messages. Elle est d’usage plus g´en´eral car un fil peut communi-quer sur plusieurs boˆıtes aux lettres simultan´ement et une boˆıte peut ´egalement servir plusieurs fils. Enfin, pour reconstruire les communications de fil `a fil il suffit d’associer

`a chaque fil une boˆıte aux lettres vers laquelle seront envoy´es les messages qu’il sera seul `a lire.

4.2 D´efinitions

Les supports de communication int´egrant la multiprogrammation l´eg`ere reprennent une grande partie sinon la totalit´e des concepts des biblioth`eques de communication traditionnelles. Les termes d´efinis en section 2.2, page 16 sont ´egalement utilis´es dans ce chapitre. D’autres termes sont n´eanmoins introduits du fait des nouvelles fonction-nalit´es de ces supports.

Tˆache : contrairement aux biblioth`eques classiques de communication, dans lesquelles la tˆache est l’entit´e de base de la machine parall`ele, dans les biblioth`eques in-t´egrant communications et multiprogrammation l´eg`ere la tˆache est le conteneur des entit´es de base de l’ex´ecution, `a savoir les processus l´egers.

nœud : dans le cas d’une machine monoprocesseur, ce terme d´esigne un processeur unique. Dans le cas d’une machine multi-processeur `a m´emoire commune, le terme “nœud” peut d´esigner soit un processeur, soit l’ensemble des processeurs

4.3. SYST `EMES EXISTANTS 47

Dans le document The DART-Europe E-theses Portal (Page 45-48)