P. 1
Chap 6 Les Process Us Syn These

Chap 6 Les Process Us Syn These

|Views: 0|Likes:
Published by Zan Layle

More info:

Published by: Zan Layle on Jul 27, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/27/2013

pdf

text

original

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

1

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

2

3

4

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

1

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

2

3

4

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

1

L’ordinateur, en particulier le syst` eme d’exploitation est fait de programmes. Un programme est une s´ equence d’intructions ex´ ecut´ es par le processeur. Le processus est l’entit´ e dynamique qui repr´ esente l’ex´ ecution d’un programme. Le processus pour fonctionner a besoin de ressources.

2

3

4

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 l’ordonnancement des processus (suite ...)
Un processeur ne peut ex´ ecuter qu’un seul processus ` a la fois. Or sachant que :
1

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

2 3

Alors :
1

2

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 l’ordonnancement des processus (suite ...)

Cons´ equence : conflit de processus pour acc´ eder ` a une ressource engendrant des situations d’interblocage ou de famine. C’est pourquoi le noyau du syst` eme d’exploitation est muni d’un composant l’ordonnanceur qui ´ elit les processus qui vont ˆ etre ex´ ecut´ es et leur attribue les ressources n´ ecessaires ` a leur ex´ ecution. Ordonnancement : d´ efinition L’ordonnancement est la strat´ egie d’attribution 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 l’ordonnancement des processus (suite ...) : algorithmes d’ordonnancement

1

Ordonnancement avec requisition
Premier Arriv´ e est le Premier Servi. Plus court d’abord.

2

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 l’ordonnancement des processus (suite ... et fin)
La strat´ egie d’ordonnancement seule ne suffit pas pour r´ esoudre les situations de conflit et pr´ evenir les situations d’interblocage lorsque 2 processus poursuivent des ex´ ecutions parall` eles ; en effet, 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

1

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

2

3

4

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

1

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 d’avion. 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 d’impression
Soit l’exemple du spool d’impression suivant :

Quand un processus veut imprimer un fichier, il doit placer le nom de ce fichier dans un r´ epertoire sp´ ecial, appel´ e r´ epertoire de spool. Un autre processus, le d´ emon d’impression, v´ erifie p´ eriodiquement s’il y a des fichiers ` a imprimer. Si c’est 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 d’impression (suite ...)
Supposons que : Le r´ epertoire d’impression ait un tr` es grand nombre d’emplacements, num´ erot´ es 0,1,2,...,N ; Chaque emplacement peut contenir le nom d’un fichier ` 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 fichier ` 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 d’impression (suite ...)

Imaginons que : Deux processus P1 et P2 veulent placer chacun un fichier dans la file d’impression et que la valeur de in est 7 ; Le processus P1 place son fichier ` a la position A ´ editer qui vaut 7. Une interruption d’horloge 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 d’impression (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 l’usage 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 fichier P2 ` a l’emplacement 7. Ensuite le processus P2 incr´ emente libre qui passe ` a 8 puis poursuit ensuite son travail travail ; Au bout d’un certain temps le processus P1 est relanc´ e par l’ordonnanceur et reprend son ex´ ecution ; Le processus P1 place son nom de fichier ` a imprimer ` a la position 7 du r´ epertoire en effa¸ cant le nom du fichier 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 d’impression (suite ...)

Cons´ equences :
1

Le r´ epertoire d’impression est alors dans un ´ etat coh´ erent et le d´ emon d’impression ne d´ etectera pas la moindre anomalie. Pourtant, le fichier 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 l’ordonnancement des processus, sont qualifi´ ees d’acc` es concurrents.

2

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 fini de s’en 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, c’est ` a dire empˆ echer que plus d’un processus ne puisse acc´ eder ` a des ressources partag´ ees. Il faut donc r´ ealiser l’exclusion mutuelle dans des parties de programme qui concernent l’acc` 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 conflits d’acc` es est r´ esolu, si on peut s’assurer que 2 processus ne sont jamais en section critique en mˆ eme temps. Cette condition est suffisante pour ´ eviter les conflits d’acc` 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 d’une exclusion mutuelle
4 conditions doivent ˆ etre v´ erifi´ ees pour qu’une exclusion mutuelle ait lieu :
1 2

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

3

4

Comment assurer alors une coop´ eration correcte et efficace 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 ; L’alternance ; La solution de Dekker ; La solution de Peterson ; L’instruction machine TSL ; L’attente active sous LINUX.

2

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

1

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

2

3

4

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

Qu’est ce qu’un s´ emaphore ? D´ efinition M´ ecanisme, muni d’un compteur, de r´ egulation des acc` es aux ressources partag´ ees. Ils fonctionnent comme un m´ ecanisme de verrou permettant de bloquer l’acc` 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 d’illustration 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 l’intersection puis la barri` ere se ferme, et s’ouvre ` a nouveau quelques instants plus tard. Ici : La barri` ere repr´ esente un s´ emaphore ; Les v´ ehicules automobiles repr´ esentent les processus ; L’intersection ou la voierie repr´ esente la ressource utilis´ ee par les processus, c’est ` 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 d’illustration 2 : cas des toilettes
Devant un pool de 7 toilettes, se tient une file d’attente de personnes attendant leur tour pour utiliser un box de toilettes ; le gestionnaire du pool de toilettes est assis ` a l’entr´ ee et r´ egule la file d’attente ; il d´ elivre ` a chaque personne, ` a tour de rˆ ole, un ticket lui permettant d’acc´ eder aux toilettes d` es qu’un box est lib´ er´ e. A la sortie du pool de toilettes, l’usager remet son ticket au gestion du pool. Ici : Le gestionnaire du pool de toilettes joue le rˆ ole d’un s´ emaphore ; Les usagers jouent le rˆ ole des processus ; Les toilettes consituent alors les ressources qu’utilisent les processus, c’est ` 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 d’illustration 3 : cas du sac et des jetons

Un s´ emaphore peut ˆ etre consid´ er´ e comme un sac de jetons d’o` u l’on retire un jetons, ou dans lequel on remet un jeton. Un processus demandant un jeton doit attendre qu’il y en ait un de disponible. Tout processus d´ eposant un jeton doit r´ eveiller le processus le plus prioritaire en attente de jeton, s’il 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 d’illustration 4 : cas du pool d’impression

Consid´ erons le cas d’un pool d’impression d’une grande entreprise capable de g´ erer plusieurs imprimantes, chaque imprimante pouvant g´ erer ` a son tour plusieurs requˆ etes. Le gestionnaire du pool d’impression utilisera des s´ emaphore pour contrˆ oler l’acc` es ` a chaque imprimante. Le pool d’impression g` ere 5 imprimantes toutes actives. Le gestionnaire du pool d’impression utilisera donc un ensemble de 5 s´ emaphores, ` a raison d’un s´ emaphore par imprimante. Puisque chaque imprimante est seulement capable d’ex´ ecuter une tˆ ache d’impression ` 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 d’impression (suite)

Djibril envoie une requˆ ete d’impression au gestionnaire d’impression. Le gestionnaire d’impression v´ erifie l’´ etat des s´ emaphores et constate que le s´ emaphore N°1 a une valeur ´ egale ` a un (1). Avant l’envoi de la requˆ ete d’impression de Djibril, le gestionnaire d’impression 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 signifie 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 d’impression (suite)

Si tous les cinq (5) s´ emaphores ont chacun une valeur ´ egale ` a z´ ero (0), cela signifie que les cinq (5) imprimantes sont toutes occup´ ees et qu’aucune n’est 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 l’ex´ ecution de la tˆ ache d’impression de Djibril, le gestionnaire d’impression incr´ ementera la valeur du s´ emaphore concern´ e` a un (1), ce qui signifie qu’il a une ressource disponible et en attente d’utilisation.

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´ efinition (suite)
S´ emaphore binaire : Un s´ emaphore binaire n’a 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 s’agit d’un compteur qui : D´ ecroˆ ıt d’une unit´ e quand il est acquis (”verrouill´ e”) ; Croˆ ıt d’une unit´ e quand il est lib´ er´ e (”d´ everrouill´ e”). Quand il vaut z´ ero
un processus tentant de l’acqu´ erir doit attendre qu’un 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

L’acc` es ` a un s´ emaphore se fait g´ en´ eralement par deux op´ erations : P pour l’acquisition, 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 d’exploitation : ils sont donc portables et efficaces.

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 l’allocation de plusieurs ressources. Cinq philosophes sont assis autour d’une 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 d’autre 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 d’entre eux ne pourra prendre l’autre fourchette (situation d’interblocage). Pour ´ eviter cette situation, un philosophe ne prend jamais une seule fourchette. Les fourchettes sont les objets partag´ es. L’acc` es et l’utilisation d’une fourchette doit se faire en exclusion mutuelle. On utilisera le s´ emaphore mutex pour r´ ealiser l’exclusion 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 fiable : Contexte Deux processus se partagent un tampon de donn´ ees de taille fixe (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 effet, 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´ efinit comme une action qui requi` ere une r´ eponse d’un programme : un exemple d’´ ev` enement peut ˆ etre par exemple la pression d’une touche de clavier ou un mouvement de la souris, provoquant l’envoi d’un block de donn´ ees depuis le disque dur ou alors l’envoi d’un paquet ` a travers le r´ eseau. Dans tous les cas, dans le cadre d’un ´ 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 l’ajout ou le retrait d’un ´ ev` enement de la m´ emoire tampon (buffer), 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 qu’un 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 qu’un 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´ efinir 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 qu’un consommateur soit venu retirer la pr´ ec´ edente. Un producteur doit donc attendre qu’il y ait une place vide : il faut d´ efinir 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 qu’un 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 d’une lecture ou d’une ´ ecriture.
Un s´ emaphore d’exclusion mutuelle est donc n´ ecessaire : mutex

Les ressources du producteur sont les emplacements vides du tampon qu’il 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 qu’il 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 flux freine les producteurs s’ils 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 fini 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 d’acc` es aux messages (le message peut ˆ etre lu ou ´ ecrit en plusieurs op´ erations) ; Le producteur s’arrˆ ete s’il veut d´ eposer alors que le tampon est plein. Il est r´ eveill´ e quand cette condition n’est plus vraie ; Le consommateur s’arrˆ ete s’il veut retirer alors que le tampon est vide. Il est r´ eveill´ e quand cette condition n’est plus vraie.

2

3

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 d’un site ´ emetteur dans un r´ eseau envoie des messages ` a destination d’un processus d’un 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 flux entre sites. Exemple3 Un service de messagerie permet aux abonn´ es d’un r´ eseau d’envoyer 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 l’acc` es ` a une base de donn´ ees et met en ´ evidence des situations o` u plusieurs processus concurrents tentent de lire et modifier une structure de donn´ ees ou un base de donn´ ees (cas du fichier /etc/passwd par exemple) ou un syst` eme de fichiers. La comp´ etition d’acc` 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 l’acc` es exclusif ` a leur section critique. Pour l’´ ecriture, l’acc` 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 l’acc` 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 d’abord garantir qu’aucun ´ 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 fin 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 s’ex´ 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 d’informations ; certains processus modifient cette base ou y font des adjonctions ; d’autres processus ne font que la lire, sans modifications. 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 d’usagers, 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 ; d’autres processus les lisent, en g´ en´ eral assez fr´ equemment ; pour une meilleure efficacit´ 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

Classification des probl` emes de synchronisation

1

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 l’acc` es aux ressources =⇒ blocage du syst` eme. Voir l’exemple des philosophes ; Famine : au moins un processus n’acc` ede jamais ` a la ressource qu’il convoite =⇒ absence d’´ equit´ e (exemple des ´ ecrivains si un pool de lecteurs ne relache jamais la ressource dans l’exemple pr´ ec´ edent).

2

3

49/49

GUINKO Tonguim Ferdinand

Gestion des processus: synth` ese

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->