الرجاء مساعدتي في حل هذين التمرينين وشكرا
EXERCICE N01
Considérons le problème producteur/consommateur vu en cours. Le fonctionnement de ces deux catégories de processus doit satisfaire les contraints suivantes :
• Les producteurs ne déposent pas les objets lorsque le tampon est plein.
• Les consommateurs ne consommateurs pas les objets lorsque le tampon est plein.
• Un seul processus pourra accéder au tampon à un moment donné
• Les objets ne doivent pas être perdu ni consommés deux fois.
Ecrire un programme en utilisant les threads et les sémaphore pour donner une solution au cas de 3 producteurs 1 consommateurs et un seul tampon de taille max =5 (il peut contenir au plus max objet) les producteurs produisent des messages et les déposent dans le tampon. Chaque message déposé dans le tampon est récupéré (consommé) par un seul consommateur.
EXERCICE N 02
Il s’agit de cinq philosophes reunis pour philosopher on au moment du repas un probleme pratique a résordre . en effet le repas est composé de spaghetti qui selon le savoir vivre des ces philosophes se mangent avec deux fourchettes. Or la table n’est dressée qu’avec une seul fourchette par couvert. Les philosophe décident d’adopter le rituel suivant :
• Chaque philosophe prend place à un emplacement fixe
• Tout philosophe qui mange utilise la fourchette de droite et celle de gauche.
• Deux philosophes voisins ne peuvent pas donc manger en même temps.
A tout instant chaque philosophe se trouve dans l’un des trois états suivants :
• Initialement tous les philosophes pensent. Tout philosophe qui pense n’ utilise aucune fourchette.
• Un philosophe qui décide de manger et ne peut satisfaire son désir par manque de fourchette. Ans ce cas il attend jusqu ‘à ce que les deux fourchettes (droit et gauche) soient disponiblees .
• Si les deux fourchettes sont disponibles.
• Si les deux fourchettes sont disponibles alors le philosophe mange. Tout philosophe qui mange cesse de manger au bout d »un temps fini
Travail a faire :
Ecrire un programme bien commenté en utilisant les sémaphores pour que chaque philosophe puisse exercer les deux activités (manger ou penser) sans jamais se retrouver bloqué.
• NB : langage programmation par priorité : C,JAVA ou NET, Pascal.