Vous êtes sur la page 1sur 2

Exercices classiques sur les smaphores e

Novembre 2008

Producteur & consommateur

Deux processus partagent une mmoire tampon circulaire de taille xe. Le e producteur produit des objets quil place dans le tampon nest pas plein. Le consommateur retire des objets quand le tampon nest pas vide. (a) Dcrire un jeu de smaphores pour grer cette situation. e e e (b) Ecrire un algorithme avec les fonctions P et V de Dijkstra. (c) Ecrire les codes des processus en langage C sous linux.

Feux de circulations

Un syst`me de feux bicolores (rouge, vert) r`gle la circulation dun carrefour e e a ` deux voies perpendiculaires en changeant de couleurs toute les 180 secondes. Une voiture peut sengager dans le carrefour quand le feu est vert et si le carrefour est vide. Ecrire un algorithme fond sur trois processus correspondant ` un changee a ment de couleur des feux , la taverse dune voie et la traverse de lautre e e voie. Ecrire les codes des processus en langage C sous linux.

Lecteurs & rdacteurs e

On suppose une base de donnes utilise par des lecteurs et des rdacteurs. e e e Les lecteurs et les rdacteurs de cette base de donnes satisfont aux contraintes e e suivantes : plusieurs lecteurs doivent pouvoir lire la base de donnes en mme temps e e ; si un rdacteur est en train de modier la base de donnes, aucun autre e e utilisateur (ni rdacteur, ni mme lecteur) ne doit pouvoir y accder. e e

Donner une solution qui donne la priorit aux lecteurs et sappuie sur trois e smaphores et une variable, ` savoir : e a Un smaphore ML ect, initialis ` 1 qui permet de protger la variable e e a e Lect. Il sagit donc dun mutex. Un smaphore MR ed, initialis ` 1 qui permet de bloquer les tches de e e a rdaction. Il sagit donc ` nouveau dun mutex. e a Un smaphore Red, initialis ` 1 qui permet aussi de bloquer les tches de e ea rdaction. e Une variable Lect qui compte le nombre de lecteurs.

Le diner des cinq Philosophes

Cinq philosophes se trouvent autour dune table. Chacun des philosophes a devant lui un plat de spaghetti et deux fourchettes. Un philosophe na que trois tats possibles : e penser pendant un temps indtermin, e e tre aam (pendant un temps dtermin et ni sinon il y a famine), e e e e manger pendant un temps dtermin et ni. e e Des contraintes extrieures simposent ` cette situation : e a quand un philosophe a faim, il va se mettre dans ltat aam et attendre e e que les fourchettes soient libres ; pour manger, un philosophe a besoin de deux fourchettes : celle qui se trouve ` gauche de sa propre assiette, et celle qui se trouve ` gauche de a a celle de son voisin de droite (cest-`-dire les deux fourchettes qui entourent a sa propre assiette) ; si un philosophe narrive pas ` semparer dune fourchette, il reste aam a e pendant un temps dtermin, en attendant de renouveler sa tentative. e e Le probl`me consiste ` trouver un ordonnancement des philosophes tel quils e a puissent tous manger, chacun ` leur tour. a

Vous aimerez peut-être aussi