Vous êtes sur la page 1sur 52

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl`

emes classiques

Gestion des processus: synth` ese


GUINKO Tonguim Ferdinand
IBAM, Universit e de Ouagadougou

20 janvier 2010

1/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Sommaire

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

2/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

3/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels : g en eralit es sur les processus

Lordinateur, en particulier le syst` eme dexploitation est fait de programmes. Un programme est une s equence dintructions ex ecut es par le processeur. Le processus est lentit e dynamique qui repr esente lex ecution dun programme. Le processus pour fonctionner a besoin de ressources.

3/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels sur lordonnancement des processus (suite ...)


Un processeur ne peut ex ecuter quun seul processus ` a la fois. Or sachant que :
1

un processus est une entit e dynamique, qui a un d ebut et une n ; lex ecution du processus peut se d erouler par intermittence ; lex ecution de deux processus peut se d erouler de fa con entrelac ee. Plusieurs processus peuvent ainsi se retrouver en cours dex ecution simultan ement ; Un processus P2 peut avoir besoin dune ressource d ej` a utilis ee par un processus P1 .
GUINKO Tonguim Ferdinand Gestion des processus: synth` ese

2 3

Alors :
1

4/49

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels sur lordonnancement des processus (suite ...)

Cons equence : conit de processus pour acc eder ` a une ressource engendrant des situations dinterblocage ou de famine. Cest pourquoi le noyau du syst` eme dexploitation est muni dun composant lordonnanceur qui elit les processus qui vont etre ex ecut es et leur attribue les ressources n ecessaires ` a leur ex ecution. Ordonnancement : d enition Lordonnancement est la strat egie dattribution des ressouces aux processus qui en font la demande. Cette strat egie se base sur des algorithmes.

5/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels sur lordonnancement des processus (suite ...) : algorithmes dordonnancement

Ordonnancement avec requisition


Premier Arriv e est le Premier Servi. Plus court dabord.

Ordonnancement sans requisition


Ordonnancement circulaire. Plus petit temps de s ejour.

6/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels sur lordonnancement des processus (suite ... et n)


La strat egie dordonnancement seule ne sut pas pour r esoudre les situations de conit et pr evenir les situations dinterblocage lorsque 2 processus poursuivent des ex ecutions parall` eles ; en eet, les processus aussi doivent communiquer et s echanger des informations ` a travers : 1 des m ecanismes de communication
a) signaux b) tubes
2

m ecanismes de synchronisation
a) algorithmes

7/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

8/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels sur la communication des processus

M ecanismes de communication
a) signaux b) tubes

8/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels sur la synchronisation des processus

Exemples de situations cr e ees par manque de synchronisation : Accident davion. Solde erron e de comptes bancaires. Impression perdues.

9/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple du spool dimpression


Soit lexemple du spool dimpression suivant :

Quand un processus veut imprimer un chier, il doit placer le nom de ce chier dans un r epertoire sp ecial, appel e r epertoire de spool. Un autre processus, le d emon dimpression, v erie p eriodiquement sil y a des chiers ` a imprimer. Si cest le cas, il les imprime et retire leur nom du r epertoire de spool.
10/49 GUINKO Tonguim Ferdinand Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple du spool dimpression (suite ...)


Supposons que : Le r epertoire dimpression ait un tr` es grand nombre demplacements, num erot es 0,1,2,...,N ; Chaque emplacement peut contenir le nom dun chier ` a imprimer ; Il existe deux variables partag ees qui sont sauvegard ees dans un segment de m emoire partag ee et accessible ` a tous les processus :
A editer qui pointe sur le prochain chier ` a imprimer, Libre qui pointe sur le prochain emplacement libre du r epertoire.

11/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple du spool dimpression (suite ...)

Imaginons que : Deux processus P1 et P2 veulent placer chacun un chier dans la le dimpression et que la valeur de in est 7 ; Le processus P1 place son chier ` a la position A editer qui vaut 7. Une interruption dhorloge arrive imm ediatement apr` es et le processus P1 est suspendu pour laisser place au processus P2 ;

12/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple du spool dimpression (suite ...)


Il risque de se produire la situation suivante : Le processus P1 lit la variable libre et m emorise la valeur 7 ; Une interruption horloge se produit et lusage du processeur est retir e au processus P1 pour etre allou e au processus P2 ; Le processus P2 lit egalement la variable libre qui vaut toujours 7 et place le nom du chier P2 ` a lemplacement 7. Ensuite le processus P2 incr emente libre qui passe ` a 8 puis poursuit ensuite son travail travail ; Au bout dun certain temps le processus P1 est relanc e par lordonnanceur et reprend son ex ecution ; Le processus P1 place son nom de chier ` a imprimer ` a la position 7 du r epertoire en ea cant le nom du chier qui y avait et e mis par P2 ; Le processus P1 calcule ensuite la place libre suivante + 1, obtient 8 et place cette valeur dans libre.
13/49 GUINKO Tonguim Ferdinand Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple du spool dimpression (suite ...)

Cons equences :
1

Le r epertoire dimpression est alors dans un etat coh erent et le d emon dimpression ne d etectera pas la moindre anomalie. Pourtant, le chier du processus P2 ne sera jamais imprim e. Les situations de ce type, o` u deux processus ou plus lisent et/ou ecrivent des donn ees partag ees, et o` u le r esultat d epend de lordonnancement des processus, sont quali ees dacc` es concurrents.

14/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` emes et solution


Le probl` eme provient du fait que le processus P2 a utilis e une variable partag ee avant que P1 ait ni de sen servir. On dit que P1 et P2 sont dans des situations de concurrence. Solution Pour eviter ces situations de concurrence, il faut une synchronisation des processus, cest ` a dire emp echer que plus dun processus ne puisse acc eder ` a des ressources partag ees. Il faut donc r ealiser lexclusion mutuelle dans des parties de programme qui concernent lacc` es ` a des ressources partag ees. Ces parties sont des sections critiques.

15/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Le probl` eme des conits dacc` es est r esolu, si on peut sassurer que 2 processus ne sont jamais en section critique en m eme temps. Cette condition est susante pour eviter les conits dacc` es mais elle ne permet pas aux processus de coop erer.

16/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Conditions pour la survenue dune exclusion mutuelle


4 conditions doivent etre v eri ees pour quune exclusion mutuelle ait lieu :
1 2

Un seul processus, au plus, dans la section critique ; Pas dhypoth` eses sur la vitesse des processus (ordonnancement) : la vitesse ou le nombre de processeurs ne peuvent avoir dinuence ; Aucun processus suspendu en dehors dune section critique ne doit bloquer les autres processus ; Aucun processus ne doit attendre trop longtemps avant dentrer en section critique.

Comment assurer alors une coop eration correcte et ecace des processus ? Quelques outils class es en 2 groupes :
17/49 GUINKO Tonguim Ferdinand Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Solutions pour r ealiser une exclusion mutuelle


1

Exclusion mutuelle par attente active


a) b) c) d) e) f) g) Le masquage des interruptions ; Les variables de verrouillage ; Lalternance ; La solution de Dekker ; La solution de Peterson ; Linstruction machine TSL ; Lattente active sous LINUX.

Exclusion mutuelle sans attente active


a) Le probl` eme du producteur et du consommateur ; b) Les primitives SLEEP et WAKEUP ; c) Les s emaphores.

18/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

19/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Introduction

Quest ce quun s emaphore ? D enition M ecanisme, muni dun compteur, de r egulation des acc` es aux ressources partag ees. Ils fonctionnent comme un m ecanisme de verrou permettant de bloquer lacc` es ` a une ressource d ej` a utilis ee par un autre processus.

19/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple dillustration 1 : cas de la barri` ere

La barri` ere permet de r eguler le passage ` a une intersection par exemple ; un certain nombres de v ehicules automobiles passent lintersection puis la barri` ere se ferme, et souvre ` a nouveau quelques instants plus tard. Ici : La barri` ere repr esente un s emaphore ; Les v ehicules automobiles repr esentent les processus ; Lintersection ou la voierie repr esente la ressource utilis ee par les processus, cest ` a dire les v ehicules automobiles.

20/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple dillustration 2 : cas des toilettes


Devant un pool de 7 toilettes, se tient une le dattente de personnes attendant leur tour pour utiliser un box de toilettes ; le gestionnaire du pool de toilettes est assis ` a lentr ee et r egule la le dattente ; il d elivre ` a chaque personne, ` a tour de r ole, un ticket lui permettant dacc eder aux toilettes d` es quun box est lib er e. A la sortie du pool de toilettes, lusager remet son ticket au gestion du pool. Ici : Le gestionnaire du pool de toilettes joue le r ole dun s emaphore ; Les usagers jouent le r ole des processus ; Les toilettes consituent alors les ressources quutilisent les processus, cest ` a dire les usagers.
21/49 GUINKO Tonguim Ferdinand Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple dillustration 3 : cas du sac et des jetons

Un s emaphore peut etre consid er e comme un sac de jetons do` u lon retire un jetons, ou dans lequel on remet un jeton. Un processus demandant un jeton doit attendre quil y en ait un de disponible. Tout processus d eposant un jeton doit r eveiller le processus le plus prioritaire en attente de jeton, sil en existe. Ici : Le sac : est le s emaphore Les jetons : les autorisations d elivr ees par le s emaphore.

22/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple dillustration 4 : cas du pool dimpression

Consid erons le cas dun pool dimpression dune grande entreprise capable de g erer plusieurs imprimantes, chaque imprimante pouvant g erer ` a son tour plusieurs requ etes. Le gestionnaire du pool dimpression utilisera des s emaphore pour contr oler lacc` es ` a chaque imprimante. Le pool dimpression g` ere 5 imprimantes toutes actives. Le gestionnaire du pool dimpression utilisera donc un ensemble de 5 s emaphores, ` a raison dun s emaphore par imprimante. Puisque chaque imprimante est seulement capable dex ecuter une t ache dimpression ` a la fois, chacun des 5 s emaphores consid er e sera initialis e` a un.

23/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple du pool dimpression (suite)

Djibril envoie une requ ete dimpression au gestionnaire dimpression. Le gestionnaire dimpression v erie l etat des s emaphores et constate que le s emaphore N1 a une valeur egale ` a un (1). Avant lenvoi de la requ ete dimpression de Djibril, le gestionnaire dimpression d ecr emente la valeur du s emaphore concern e et met cette valeur ` a moins un (-1). Plus tard, la valeur de ce s emaphore devient z ero (0), ce qui signie que toutes les ressources g er ees par ce s emaphores sont enti` erement utilis ees.

24/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Exemple du pool dimpression (suite)

Si tous les cinq (5) s emaphores ont chacun une valeur egale ` a z ero (0), cela signie que les cinq (5) imprimantes sont toutes occup ees et quaucune nest disponible. Aucune autre requ ete ne sera envoy ee ` a cette imprimante tant que la valeur du s emaphore sera inf erieure ou egale ` a 0. Apr` es lex ecution de la t ache dimpression de Djibril, le gestionnaire dimpression incr ementera la valeur du s emaphore concern e` a un (1), ce qui signie quil a une ressource disponible et en attente dutilisation.

25/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

D enition (suite)
S emaphore binaire : Un s emaphore binaire na que deux etats : 0 verrouill e (ou occup e), 1 d everrouill e (ou libre). S emaphore g en eral : Un s emaphore g en eral peut avoir un tr` es grand nombre d etats car il sagit dun compteur qui : D ecro t dune unit e quand il est acquis (verrouill e) ; Cro t dune unit e quand il est lib er e (d everrouill e). Quand il vaut z ero
un processus tentant de lacqu erir doit attendre quun autre processus ait augment e sa valeur ; car il ne peut jamais devenir n egatif.

26/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Acc` es ` a un s emaphore

Lacc` es ` a un s emaphore se fait g en eralement par deux op erations : P pour lacquisition, en n eerlandais : Proberen : tester. V pour la lib eration, en n eerlandais : Verhogen : incr ementer. Un moyen mn emotechnique : P(uis-je) acc eder ` a une ressource. V(as-y) la ressource est disponible.

27/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Pourquoi utiliser les s emaphores pour r esoudre les probl` emes de synchronisation ? les s emaphores impose des contraintes qui aident les programmeurs ` a eviter les erreurs ; les solutions bas ees sur les s emaphores sont claires et organis ees ; les s emaphores peuvent etre impl ement ees sur plusieurs types de syst` emes dexploitation : ils sont donc portables et ecaces.

28/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Probl` eme du d nner des philosophes


Cet exemple mod elise lallocation de plusieurs ressources. Cinq philosophes sont assis autour dune table. Sur la table, il y a alternativement cinq plats de spaghettis et cinq fourchettes. Un philosophe passe son temps ` a manger et ` a penser. Pour manger son plat de spaghettis, un philosophe a besoin de deux fourchettes qui sont de part et dautre de son plat. Ecrire un programme qui permette ` a chaque philosophe de se livrer ` a ses activit es (penser et manger) sans jamais etre bloqu e.

29/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Probl` eme du d nner des philosophes (suite)

Il est important de signaler que si tous les philosophes prennent en m eme temps chacun une fourchette, aucun dentre eux ne pourra prendre lautre fourchette (situation dinterblocage). Pour eviter cette situation, un philosophe ne prend jamais une seule fourchette. Les fourchettes sont les objets partag es. Lacc` es et lutilisation dune fourchette doit se faire en exclusion mutuelle. On utilisera le s emaphore mutex pour r ealiser lexclusion mutuelle.

30/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Probl` eme des producteurs et des consommateurs : g en eralit es


Cet exemple mod elise la communication de 2 processus, par un canal able : Contexte Deux processus se partagent un tampon de donn ees de taille xe (N) initialement vide : Un premier processus (le producteur ) produit des donn ees et les ecrit dans la m emoire tampon ; Un second processus (le consommateur) consomme les donn ees de la m emoire tampon en les lisant et en les d etruisant au fur et ` a mesure de leur lecture.

31/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Probl` eme des producteurs et des consommateurs : suite

En eet, sur les syst` emes multit aches, la charge de travail est r epartie entre les processus : certains jouent un r ole de production et sont appel es producteurs tandis que les autres jouent un r ole de consommation et sont appel es consommateurs. Les producteurs produisent des objets (par exemple des ev` enements) et les stockent dans des structures de donn ees (par exemple la m emoire tampon). Les consommateurs puisent dans cette m emoire tampon et proc` edent au traitement des ev` enements y stock es.

32/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Exemple 1

Un ev` enement peut etre d enit comme une action qui requi` ere une r eponse dun programme : un exemple d ev` enement peut etre par exemple la pression dune touche de clavier ou un mouvement de la souris, provoquant lenvoi dun block de donn ees depuis le disque dur ou alors lenvoi dun paquet ` a travers le r eseau. Dans tous les cas, dans le cadre dun ev` enement, un processus producteur cr ee un objet ev` enement et le stocke dans la m emoire des ev` enements ; les processus consommateur, appel es gestionnaires d ev` enements, retirent de cette m emoire les ev` enements qui y sont stock es et les traitent.

33/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Producteurs et consommateurs : probl` emes

Probl` emes Les probl` emes surviennent lorsque : Le producteur veut mettre des informations alors que la m emoire tampon est d ej` a pleine et lorsque Le consommateur tente de retirer une information alors que la m emoire tampon est vide.

34/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Producteurs et consommateurs : contraintes - premi` ere approche


Pendant lajout ou le retrait dun ev` enement de la m emoire tampon (buer), l etat de la m emoire est instable : les processus doivent donc y acc eder en exclusion mutuelle ; Si un processus consommateur arrive lorsque la m emoire tampon est vide, il est bloqu e (endormi) jusqu` a ce quun producteur y ajoute un el ement ; Si un processus producteur arrive lorsque la m emoire tampon est pleine, il est bloqu e (endormi) jusqu` a ce quun consommateur y retire un el ement ; Il ne faut pas interrompre un producteur qui met une valeur dans la m emoire tampon ou un consommateur qui vient en chercher : il faut d enir un s emaphore mt pour prot eger les op erations sur la m emoire tampon ;
35/49 GUINKO Tonguim Ferdinand Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Producteurs et consommateurs : contraintes (suite ...)

Un producteur ne peut pas ecraser une valeur dans le tampon. Il doit attendre quun consommateur soit venu retirer la pr ec edente. Un producteur doit donc attendre quil y ait une place vide : il faut d enir un s emaphore pd (place disponible) initialis e` a N; Un consommateur ne peut pas prendre deux fois la m eme valeur. Il doit attendre quun producteur en ait mis dans le tampon : il faut utliser un s emaphore ed ( el ement disponible), initialis e` a 0, pour controler les places disponibles.

36/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Producteurs et consommateurs : contraintes - seconde approche


Le producteur et le consommateur doivent acc eder de mani` ere exclusive au tampon, le temps dune lecture ou dune ecriture.
Un s emaphore dexclusion mutuelle est donc n ecessaire : mutex

Les ressources du producteur sont les emplacements vides du tampon quil est donc possible de mat erialiser.
Un s emaphore production dont la valeur initiale correspond ` a la taille du tampon.

Les ressources du consommateur sont les emplacements pleins du tampon quil est donc possible de mat erialiser.
Un s emaphore consommation dont la valeur initiale est nulle.

37/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Producteurs et consommateurs : hypoth` eses


La coop eration implique des producteurs et des consommateurs qui se partagent une m emoire tampon ou une voie de communication, avec un nombre maximal, taille du tampon ou cr edit de messages. Le contr ole de ux freine les producteurs sils vont trop vite pour les consommateurs. Hypoth` eses
1 2 3

Les vitesses relatives des processus sont quelconques ; Les priorit es des processus sont quelconques ; Tout processus met un temps ni pour d eposer ou retirer un message ; en particulier ni panne ni blocage perp etuel pendant ces op erations.

38/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Producteurs et consommateurs : cons equences

Cons equences
1

Exclusion mutuelle dacc` es aux messages (le message peut etre lu ou ecrit en plusieurs op erations) ; Le producteur sarr ete sil veut d eposer alors que le tampon est plein. Il est r eveill e quand cette condition nest plus vraie ; Le consommateur sarr ete sil veut retirer alors que le tampon est vide. Il est r eveill e quand cette condition nest plus vraie.

39/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Exemples
Exemple2 Un processus dun site emetteur dans un r eseau envoie des messages ` a destination dun processus dun site r ecepteur ; celui-ci doit etre pr et ` a recevoir ces messages ; toutefois l emetteur ne doit pas les envoyer plus vite que le r ecepteur ne peut les recevoir. Il faut assurer un contr ole de ux entre sites. Exemple3 Un service de messagerie permet aux abonn es dun r eseau denvoyer du courrier electronique ; un abonn e edite son courrier et le d epose dans la boite aux lettres du destinataire, que celui-ci soit en session ou non ; un abonn e lit son courrier, que l emetteur soit ou non en session.
40/49 GUINKO Tonguim Ferdinand Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Producteurs et consommateurs : algorithme (premi` ere approche)


//Consommateurs #define N 100 s ema mutex = 1; s ema production = N; s ema consommation = 0; void consommateur() { while (1) { P(consommation); /*une place pleine en moins*/ P(mutex); /*section critique*/ vider_case(); V(mutex); /*fin de section critique*/ V(production); /*une place vide en plus*/ } } GUINKO Tonguim Ferdinand Gestion des processus: synth` ese

41/49

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Producteurs et consommateurs : algorithme (premi` ere approche)


//Producteurs #define N 100 s ema mutex = 1; s ema production = N; s ema consommation = 0; void producteur() { while (1) { P(production); /*une place vide en moins*/ P(mutex); /*section critique*/ remplir_case(); V(mutex); /*fin de section critique*/ V(consommation) ; /*une place pleine en plus*/ } } GUINKO Tonguim Ferdinand Gestion des processus: synth` ese

42/49

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Probl` eme des lecteurs et des r edacteurs


Cet exemple mod elise la comp etition coh erente ou lacc` es ` a une base de donn ees et met en evidence des situations o` u plusieurs processus concurrents tentent de lire et modier une structure de donn ees ou un base de donn ees (cas du chier /etc/passwd par exemple) ou un syst` eme de chiers. La comp etition dacc` es met en pr esence des processus lecteurs et des processus r edacteurs qui se partagent des donn ees. La synchronisation (contr ole de concurrence) garantit la coh erence des donn ees lues.

43/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Lecteurs et r edacteurs : contraintes

Un ou plusieurs lecteurs peuvent ex ecuter leur section critique simultan ement ; Les r edacteurs doivent avoir lacc` es exclusif ` a leur section critique. Pour l ecriture, lacc` es ` a la base doit se faire en exclusion mutuelle : il faut donc utiliser un s emaphore binaire Verrou initialis e` a 1 pour contr oler lacc` es ` a la base de donn ees.

44/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Lecteurs et r edacteurs : contraintes (suite)


Pour la lecture, nous devons dabord garantir quaucun ecrivain ne peut acc eder ` a la base. Donc le premier lecteur doit verrouiller la base en utilisant le Verrou. Par contre, les autres lecteurs peuvent acc eder sans probl` eme. Pour la n de lecture, le dernier lecteur doit lever le Verrou. Nous devons donc utiliser un compteur nb lect, initialis e` a 0, permettant de conna tre le nombre de lecteurs acc edant simultan ement ` a la base. Pour la lecture toujours, un deuxi` eme s emaphore binaire Prem Dern Lect, initialis e` a 1, garantissant que les op erations sur nb lect sex ecutent en exclusion mutuelle.

45/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Lecteurs et r edacteurs : contraintes

Aucun autre processus lecteur ou r edacteur ne doit pouvoir acc eder ` a la base de donn ees si un r edacteur y est d ej` a, et aucun autre processus r edacteur ne doit pouvoir ex ecuter sa section critique si un autre processus y est d ej` a.

46/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Exemples

Exemple1 Une entreprise veut g erer en temps r eel une base dinformations ; certains processus modient cette base ou y font des adjonctions ; dautres processus ne font que la lire, sans modications. On souhaite avoir le maximum de concurrence pendant ces lectures.

47/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Exemples (suite)

Exemple2 Dans tout syst` eme informatique, on maintient de nombreux catalogues pour r epertorier les clients, les abonn es, les groupes dusagers, les utilisateurs en session, les autorisations diverses, les processus, les ressources disponibles, les ressources en maintenance,.... ; des processus mettent ces catalogues ` a jour, en g en eral ` a fr equence faible ; dautres processus les lisent, en g en eral assez fr equemment ; pour une meilleure ecacit e, il est souhaitable de faire les lectures en parall` ele.

48/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

Rappels : g en eralit es sur les processus Rappels : communication et synchronisation des processus Rappels : les s emaphores Rappels : probl` emes classiques

Probl` eme des lecteurs et des r edacteurs

Classication des probl` emes de synchronisation

Situation de comp etition : lorsque au moins deux processus acc` edent en m eme temps ` a une ressource partag ee = mauvaise synchonisation ; Interblocage : lorsque deux ou plus de deux processus se bloquent mutuellement lacc` es aux ressources = blocage du syst` eme. Voir lexemple des philosophes ; Famine : au moins un processus nacc` ede jamais ` a la ressource quil convoite = absence d equit e (exemple des ecrivains si un pool de lecteurs ne relache jamais la ressource dans lexemple pr ec edent).

49/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese