• Aucun résultat trouvé

P ro b lè m e s – In te rs e ct io n s P ro b lè m e s – In te rs e ct io n s

N/A
N/A
Protected

Academic year: 2022

Partager "P ro b lè m e s – In te rs e ct io n s P ro b lè m e s – In te rs e ct io n s"

Copied!
4
0
0

Texte intégral

(1)

1

April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 200511

IF T 2 8 8 0 IF T 2 8 8 0 In te r- b lo ca g e

Probmes typiques et solutions

In te r- b lo ca g e

Probmes typiques et solutions April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 2005 22

D é fi n it io n s D é fi n it io n s

Partage de ressources Plusieurs processus partagent l’accès àune même ressource qui ne peut être utilisée que par un seul processus àla fois Exclusion mutuelle Principe selon lequel un seul processus àla fois seulement peut accéder àune ressource, garantissant ainsi un accès exclusif àcette ressource Inter-blocage Deux processus (ou plus) attendent mutuellement l’accès à une ressource. Ex. Deux conducteurs qui attendent chacun que l’autre passe avant de redémarrer Famine Un processus qui attend indéfiniment l’accès àune ressource

Partage de ressources Plusieurs processus partagent l’accès àune même ressource qui ne peut être utilisée que par un seul processus àla fois Exclusion mutuelle Principe selon lequel un seul processus àla fois seulement peut accéder àune ressource, garantissant ainsi un accès exclusif àcette ressource Inter-blocage Deux processus (ou plus) attendent mutuellement l’accès à une ressource. Ex. Deux conducteurs qui attendent chacun que l’autre passe avant de redémarrer Famine Un processus qui attend indéfiniment l’accès àune ressource April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 200533

P ro b m e s In te rs e ct io n s P ro b m e s In te rs e ct io n s

La règle stipule que la voiture qui arrive de la droite doit passer en premier.

La règle stipule que la voiture qui arrive de la droite doit passer en premier. Que faire si les quatre voitures arrivent en même temps àl’intersection ?

Que faire si les quatre voitures arrivent en même temps àl’intersection ? April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 2005 44

P ro b m e s C in q P h il o so p h e s P ro b m e s C in q P h il o so p h e s

Cinq philosophes sont assis àune table sur laquelle sont disposées 5 assiettes et 5 baguettes. Pour manger, un philosophe doit prendre les baguettes qui sont disposées de chaque cotéde son assiette.

Cinq philosophes sont assis àune table sur laquelle sont disposées 5 assiettes et 5 baguettes. Pour manger, un philosophe doit prendre les baguettes qui sont disposées de chaque cotéde son assiette. Le comportement d’un philosophe est le suivant : prendre les baguettes, manger, reposer les baguettes, penser, et recommencer…

Le comportement d’un philosophe est le suivant : prendre les baguettes, manger, reposer les baguettes, penser, et recommencer… Que faire si deux philosophes prennent la même baguette en même temps ? Et si les cinq philosophes prennent en même temps la baguette qui est située àgauche de leur assiette ? Que faire si deux philosophes prennent la même baguette en même temps ? Et si les cinq philosophes prennent en même temps la baguette qui est située àgauche de leur assiette ?

(2)

2

April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 200555

P ro b m e s L e ct e u rs /E cr iv a in s P ro b m e s L e ct e u rs /E cr iv a in s S o it u n c o m p te b an ca ir e ac ce ss ib le à p ar ti r d e p lu si eu rs g u ic h et s (p ro ce ss u s) . D es o p ér at io n s d e co n su lt at io n ( le ct u re ) o u d e m is e à jo u r (é cr it u re ) p eu v en t êt re f ai te s à p ar ti r d es g u ic h et s.

Peut-on avoir plusieurs processus qui lisent en même temps ? Qui écrivent en même temps ? Peut-on avoir des processus qui lisent pendant qu’un autre écrit ? Que se passe-t-il si des processus se relaient pour lire les uns après les autres, bloquant ainsi l’accès en écriture à d’autre processus ?

S o it u n c o m p te b an ca ir e ac ce ss ib le à p ar ti r d e p lu si eu rs g u ic h et s (p ro ce ss u s) . D es o p ér at io n s d e co n su lt at io n ( le ct u re ) o u d e m is e à jo u r (é cr it u re ) p eu v en t êt re f ai te s à p ar ti r d es g u ic h et s.

Peut-on avoir plusieurs processus qui lisent en même temps ? Qui écrivent en même temps ? Peut-on avoir des processus qui lisent pendant qu’un autre écrit ? Que se passe-t-il si des processus se relaient pour lire les uns après les autres, bloquant ainsi l’accès en écriture à d’autre processus ? April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 2005 66

S o lu ti o n s S o lu ti o n s

Exclusion mutuelle Des mécanismes d’occupation sont instaurés de façon à permettre de bloquer l’accès aux autres processus pendant qu’un processus utilise la ressource Les opérations d’occupation et de libération doivent être atomiques : Un seul processus àla fois peut effectuer les opérations en question. Sinon, deux processus pourraient utiliser une ressource en même temps tout en pensant chacun être le seul àl’utiliser Inter-blocage et Famine Des mécanismes d’arbitrage et de prioritésont instaurés de façon àéviter les inter-blocages et àgarantir l’accès de la ressource aux processus àun moment donné

Exclusion mutuelle Des mécanismes d’occupation sont instaurés de façon à permettre de bloquer l’accès aux autres processus pendant qu’un processus utilise la ressource Les opérations d’occupation et de libération doivent être atomiques : Un seul processus àla fois peut effectuer les opérations en question. Sinon, deux processus pourraient utiliser une ressource en même temps tout en pensant chacun être le seul àl’utiliser Inter-blocage et Famine Des mécanismes d’arbitrage et de prioritésont instaurés de façon àéviter les inter-blocages et àgarantir l’accès de la ressource aux processus àun moment donné April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 200577

S o lu ti o n s C in q P h il o so p h e s E x cl u si o n S o lu ti o n s C in q P h il o so p h e s E x cl u si o n

Un mécanisme d’exclusion mutuelle est instauréde façon às’assurer que deux philosophes ne prendront pas la même baguette en même temps : prendreBaguette(intnumBaguette) reposerBaguette(intnumBaguette) Si une baguette est déjàprise, il faudra attendre qu’elle soit reposée

Un mécanisme d’exclusion mutuelle est instauréde façon às’assurer que deux philosophes ne prendront pas la même baguette en même temps : prendreBaguette(intnumBaguette) reposerBaguette(intnumBaguette) Si une baguette est déjàprise, il faudra attendre qu’elle soit reposée Cette solution garantie l’exclusion mutuelle mais elle n’évite ni l’inter-blocage, ni la famine.Cette solution garantie l’exclusion mutuelle mais elle n’évite ni l’inter-blocage, ni la famine. April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 2005 88

S o lu ti o n s C in q P h il o so p h e s In te r- b lo ca g e S o lu ti o n s C in q P h il o so p h e s In te r- b lo ca g e

Un mécanisme est ajoutéde façon àce que si un philosophe a une baguette en main et que l’autre est déjàprise, il reposera alors celle qu’il a en main De cette façon, il n’empêchera pas un autre philosophe de prendre la baguette qu’il avait déjàdans la main Cela permet qu’au moins deux philosophes mangent

Un mécanisme est ajoutéde façon àce que si un philosophe a une baguette en main et que l’autre est déjàprise, il reposera alors celle qu’il a en main De cette façon, il n’empêchera pas un autre philosophe de prendre la baguette qu’il avait déjàdans la main Cela permet qu’au moins deux philosophes mangent Cette ajout garantie l’exclusion mutuelle et évite l’inter-blocage, mais, il n’évite pas la famineCette ajout garantie l’exclusion mutuelle et évite l’inter-blocage, mais, il n’évite pas la famine

(3)

3

April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 200599

S o lu ti o n s C in q P h il o so p h e s F a m in e S o lu ti o n s C in q P h il o so p h e s F a m in e

On ajoute un mécanisme de priorité qui ne permet pas àun philosophe de manger ànouveau tant que tous les autres n’ont pas mangé De cette façon, chaque philosophe est certain de finir par manger tôt ou tard puisque ses baguettes resteront libres tant qu’il ne les aura pas utilisées pour manger

On ajoute un mécanisme de priorité qui ne permet pas àun philosophe de manger ànouveau tant que tous les autres n’ont pas mangé De cette façon, chaque philosophe est certain de finir par manger tôt ou tard puisque ses baguettes resteront libres tant qu’il ne les aura pas utilisées pour manger Cette ajout garantie donc l’exclusion mutuelle, évite l’inter- blocage et évite aussi la famineCette ajout garantie donc l’exclusion mutuelle, évite l’inter- blocage et évite aussi la famine April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 20051010

S o lu ti o n s L e ct e u rs /E cr iv a in s S o lu ti o n s L e ct e u rs /E cr iv a in s S im il ai re m en t au p ro b lè m e d es c in q p h il o so p h es , i l su ff it d ’a jo u te r d es m éc an is m es p er m et ta n t d e co n tr ô le r l’ ac cè s à la r es so u rc e d e fa ço n à ce q u e

La demande d’accès au compte bancaire est exclusive Plusieurs processus peuvent lire en même temps Un seul processus àla fois peut écrire Aucun processus ne peut lire si un est en train d’écrire De nouveaux processus ne peuvent commencer àlire si un processus est en attente pour l’écriture De nouveaux processus ne peuvent commencer àécrire si un processus est en attente pour la lecture

S im il ai re m en t au p ro b lè m e d es c in q p h il o so p h es , i l su ff it d ’a jo u te r d es m éc an is m es p er m et ta n t d e co n tr ô le r l’ ac cè s à la r es so u rc e d e fa ço n à ce q u e

La demande d’accès au compte bancaire est exclusive Plusieurs processus peuvent lire en même temps Un seul processus àla fois peut écrire Aucun processus ne peut lire si un est en train d’écrire De nouveaux processus ne peuvent commencer àlire si un processus est en attente pour l’écriture De nouveaux processus ne peuvent commencer àécrire si un processus est en attente pour la lecture April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 20051111

A p p li ca ti o n J a v a T h re a d s A p p li ca ti o n J a v a T h re a d s L ’u ti li sa ti o n d es t h re ad s p er m et d e fa ir e to u rn er p lu si eu rs p ro ce ss u s en m êm e te m p s L ’u ti li sa ti o n d es t h re ad s p er m et d e fa ir e to u rn er p lu si eu rs p ro ce ss u s en m êm e te m p s

importjava.io.*; importjava.lang.*; importjava.lang.Thread.*; classProcessusextendsThread{ Processus(Stringname){ super(name); } publicvoidrun(){ while(true){ System.out.println("Processus"+getName()); } } }importjava.io.*; importjava.lang.*; importjava.lang.Thread.*; classProcessusextendsThread{ Processus(Stringname){ super(name); } publicvoidrun(){ while(true){ System.out.println("Processus"+getName()); } } } April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 20051212

A p p li ca ti o n J a v a T h re a d s A p p li ca ti o n J a v a T h re a d s L es t h re ad s so n t ex éc tu és en p ar al lè le à p ar ti r d u m o m en t o ù il s so n t d ém ar ré s L es t h re ad s so n t ex éc tu és en p ar al lè le à p ar ti r d u m o m en t o ù il s so n t d ém ar ré s

importjava.io.*; importjava.lang.*; classTestProcessus{ publicstaticvoidmain(Stringargs[]){ Processusp1=newProcessus("Platon"); Processusp2=newProcessus("Aristote"); Processusp3=newProcessus("Descartes"); p1.start(); p2.start(); p3.start(); } }importjava.io.*; importjava.lang.*; classTestProcessus{ publicstaticvoidmain(Stringargs[]){ Processusp1=newProcessus("Platon"); Processusp2=newProcessus("Aristote"); Processusp3=newProcessus("Descartes"); p1.start(); p2.start(); p3.start(); } }

(4)

4

April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 20051313

A p p li ca ti o n J a v a E x cl u si o n M u tu e ll e A p p li ca ti o n J a v a E x cl u si o n M u tu e ll e sy n ch ro n iz e d L ’u ti li sa ti o n d u m o t cl ef sy n ch ro n iz ed d an s la d éc la ra ti o n d ’u n e m ét h o d e p er m et q u e ce ll e- ci n e p u is se ê tr e ex éc u té e p ar p lu s d ’u n t h re ad à la f o is w a it () B lo ca g e d ’u n t h re ad n o ti fy () D éb lo ca g e d ’u n t h re ad

sy n ch ro n iz e d L ’u ti li sa ti o n d u m o t cl ef sy n ch ro n iz ed d an s la d éc la ra ti o n d ’u n e m ét h o d e p er m et q u e ce ll e- ci n e p u is se ê tr e ex éc u té e p ar p lu s d ’u n t h re ad à la f o is w a it () B lo ca g e d ’u n t h re ad n o ti fy () D éb lo ca g e d ’u n t h re ad

April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 20051414

A p p li ca ti o n J a v a S y n ch ro n iz e d A p p li ca ti o n J a v a S y n ch ro n iz e d

publicclassBaguette{ privatebooleanlibre; privateStringname; Baguette(Stringname){ libre=true; this.name=name; } synchronizedvoidprendre(Stringph){ } synchronizedvoidrendre(Stringph){ } }publicclassBaguette{ privatebooleanlibre; privateStringname; Baguette(Stringname){ libre=true; this.name=name; } synchronizedvoidprendre(Stringph){ } synchronizedvoidrendre(Stringph){ } } April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 20051515

A p p li ca ti o n J a v a W a it e t N o ti fy A p p li ca ti o n J a v a W a it e t N o ti fy

synchronizedvoidprendre(Stringph){ while(!libre){ try{ wait(); }catch(InterruptedExceptione){ System.out.println(e); } } libre=false; } synchronizedvoidrendre(Stringph){ notify(); libre=true; }synchronizedvoidprendre(Stringph){ while(!libre){ try{ wait(); }catch(InterruptedExceptione){ System.out.println(e); } } libre=false; } synchronizedvoidrendre(Stringph){ notify(); libre=true; } April 5, 2005April 5, 2005IFT2880 -Nicolas Gorse -Avril 2005IFT2880 -Nicolas Gorse -Avril 20051616

D é m o n st ra ti o n C in q P h il o so p h e s D é m o n st ra ti o n C in q P h il o so p h e s B a se Im p la n ta ti o n d u p ro b lè m e d es c in q p h il o so p h es so u s fo rm e d e 3 cl as se s Ja v a. L es f ic h ie rs s o n t fo u rn is s u r le s it e w eb d an s la s ec ti o n d ém o n st ra ti o n d e ce tt e se m ai n e B u t d e l ’e x e rc ic e L e m o d èl e d o n n é g ar an ti l ’e x cl u si o n m u tu el le m ai s n e g ar an ti n i l’ in te r- b lo ca g e, n i la f am in e M o d if ie z le c o d e d e fa ço n à im p la n te r le s so lu ti o n s év it an t l’ in te r- b lo ca g e et l a fa m in e

B a se Im p la n ta ti o n d u p ro b lè m e d es c in q p h il o so p h es so u s fo rm e d e 3 cl as se s Ja v a. L es f ic h ie rs s o n t fo u rn is s u r le s it e w eb d an s la s ec ti o n d ém o n st ra ti o n d e ce tt e se m ai n e B u t d e l ’e x e rc ic e L e m o d èl e d o n n é g ar an ti l ’e x cl u si o n m u tu el le m ai s n e g ar an ti n i l’ in te r- b lo ca g e, n i la f am in e M o d if ie z le c o d e d e fa ço n à im p la n te r le s so lu ti o n s év it an t l’ in te r- b lo ca g e et l a fa m in e

Références

Documents relatifs

For p > 5 and p / ∈ 2 N , the push- forward of the uniform measure on p-angulations (or indeed of any regular critical Boltzmann distribution on maps) by the

More precisely, we prove that in the whole subcritical regime, the expected size of the cluster of the origin is finite, and furthermore we obtain bounds for the origin to be

L’amplificateur de tension peut être représenté sous la forme d’un quadripôle faisant apparaître un modèle utilisant une source contrôlée de tension, associée à une

Los molinillos «Precision + » de Cole & Mason, rigurosamente probados en colaboración con el Laboratorio de Aromas de la Universidad de Nottingham, representan un nuevo nivel

Leiserson : « Space−efficient scheduling of multithreaded computations » SIAM Journal of computing, vol

Pour les yeux, coudre la feutrine et ajouter un bouton (pour donner plus de fantaisie à votre poulette, vous pouvez mettre 2 boutons de couleurs différentes et broder des cils

[r]

-une fonction : perfusion, métabolisme, neurotransmission, mort cellulaire -une pathologie/lésion : dépôts amyloïdes, tumeurs, infection, hypoxie En médecine nucléaire, le traceur