Examsys2 lmd epreuve 2013 2014cor

Université de Chlef Département Informatique Filière ème Année Licence TSW Examen semestriel Module de Systèmes d ? exploitation ? Corrigé Mars Exercice points Soit X Y et Z des variables numériques P et P sont deux processus dont les codes sont les suivants Processus P Debut X X Fin Processus P Debut Si X Alors Y Y sinon Y Y Finsi Z Z Y Fin Question Expliquez quel problème peut-on avoir si les deux processus s'exécutent simultanément Réponse Si les deux processus s'exécutent simultanément il y'a un problème d'accès concurrents à la variable partagée X On peut avoir un résultat incohérent si le processus P tente de modi ?er cette variable alors que le processus P tente de son coté de la consulter points Question Corrigez le problème en utilisant des sémaphores Réécrivez le code des deux processus Réponse La solution doit assurer l'accès en exclusion mutuelle à la variable partagée X On utilise un sémaphore mutex initialisé à Processus P Debut Wait mutex X X Signal mutex Fin Processus P Debut Wait mutex Si X Alors Signal mutex Y Y Sinon Signal mutex Y Y Finsi Z Z Y Fin points Page CExercice points On reprend le problème de synchronisation du Producteur-Consommateur avec bu ?er circulaire et de taille limitée N mais on suppose qu'il y'a maintenant deux producteurs P et P et un seul consommateur C Le producteur P a une particularité il produit et dépose deux messages à la fois si toutefois il y'a des places libres dans le bu ?er Travail à faire Proposez un schéma de synchronisation de ce problème Ecrivez le code des processus P P et C Soignez vos déclarations Réponse Déclarations In Entier Init à indice du dernier élément déposé dans le bu ?er Out Entier Init à indice de l'élément prêt à être prélevé par le Consommateur Mutex Sémaphore init à assurant l'accès en exclusion mutuelle à la variable partagée In Empty Sméphore Init à N permettant de bloquer les producteur si le bu ?er est plein Full sémaphore Init à permettant de bloquer le consommateur s'il n'ya aucune case pleine dans le bu ?er points Processus Producteur Début Cycle Produire un message dans ZoneP Wait Empty Wait mutex Bu ?er In ZoneP In In mod N Signal mutex Signal Full Fin Cycle Fin Processus Producteur Début Cycle Produire un message dans ZoneP et ZoneP Wait Empty Wait Empty Wait mutex Bu ?er In ZoneP In In mod N Bu ?er In ZoneP In In mod N Signal mutex Signal Full Signal full Fin Cycle Fin Processus Consommateur Début Cycle Wait Full ZoneC Bu ?er Out Out Out mod N Signal Empty Consommer le message de ZoneC Fin Cycle Fin points Page C

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise
Partager