Td5 corrigé: synchronisation processus avec sémaphores - tél

Télécharger PDF

Correction:

Obtenir le pack complet des cours, TDs, examens sur Systèmes d’Exploitation!

Vous souhaitez maîtriser Systèmes d’Exploitation ? Ne cherchez plus, nous avons le pack bien choisi pour vous.

pack complet des cours, TDs, TPs et examens exercices sur Systèmes d’Exploitation

Accédez à une collection complète des supports de cours, des travaux dirigés (TDs) corrigés, TPs avec solution, examens...

Télécharger pack

Institut Supérieur d’Informatique Université de Tunis el Manar MME. LILIA SFAXI TD5 : Synchronisation des processus avec des Sémaphores (2) Systèmes d’Exploitation Avancés – 1

ère année ING. Année Universitaire : 2011/2012 TD5 : Synchronisation des processus avec des Sémaphores (2) MME. LILIA SFAXI

2011/2012 1 TD5 : Synchronisation des processus avec des Sémaphores (2) Systèmes d’Exploitation Avancés

Exercice 1

Tirage d’examens On se propose de modéliser le système de tirage d’examen mis en place à l’ISI. L’ISI met en place une salle réservée pour le tirage d’examens (où sont faites les photocopies du sujet d’examen), dans laquelle opère un seul agent, Mr. K. Pour garantir la confidentialité du sujet, seuls sont présents lors du tirage, l’agent K et l’enseignent responsable du module, Mr. E. On supposera les hypothèses suivantes : • A tout moment de la journée, l’agent est ou bien en train de tirer un examen (un seul examen à la fois), ou bien en attente non active d’un nouvel examen à tirer. • Un enseignant qui souhaite faire le tirage de son sujet d’examen, doit se présenter devant la salle de tirage : – Si l’agent K est libre (c.à.d en attente d’un nouveau sujet à tirer), l’enseignant et l’agent procèdent au tirage. – Si l’agent K est déjà occupé à tirer un autre sujet, l’enseignant :  S’il trouve une chaise libre (il y a quatre chaises en tout) devant la salle de tirage, attend l’agent K (attente non active).  Si toutes les chaises sont occupées, l’enseignant préfère alors partir et revenir plus tard (on considérera dans ce cas qu’il est sorti du système) Il faut remarquer que les quatre chaises devant la salle de tirage ne peuvent être occupées que par des enseignants qui veulent faire des tirages des sujets d’examens. • Une fois le tirage d’un sujet d’examen fini, l’enseignant responsable du module part (sort du système). Pour l’agent K, si d’autres enseignants attendent (sur les chaises), l’un d’entre eux procède avec l’agent K au tirage de son examen. Sinon, l’agent K se met en attente d’un nouvel examen à tirer. On se propose de modéliser ce système en utilisant un processus agentK et un autre processus EnseignantE.

Exercice 2

Trains Deux villes A et B sont reliées par une seule voie de chemin de fer. Les trains peuvent circuler dans le même sens de A vers B ou de B vers A. Mais, ils ne peuvent pas circuler simultanément dans les sens opposés. On considère deux classes de processus: les trains allant de A vers B (Train AversB) et les trains allant de B vers A (Train BversA). Ces processus se décrivent comme suit : TD5 : Synchronisation des processus avec des Sémaphores (2) MME. LILIA SFAXI

2011/2012 2 TrainAversB :Demande d'accèsà lavoie A; Circulationde Avers B; Sortiede lavoie par

B; TrainBversA :Demande d'accèsà lavoie B; Circulationde Bvers A; Sortiede lavoie par

A; Représenter les programmes des deux types de processus.

Exercice 3

Poste (DS 2010-2011) Le tri du courrier à la poste se fait en deux étapes : la première dans le bureau de poste régional, et la deuxième dans le bureau de poste principal. On dénombre quatre bureaux régionaux et un bureau principal. Dans chaque bureau de poste régional, trois agents procèdent au tri (fonction trier_courrier_régional). Si l'un des agents termine avant les autres, il doit les attendre (fonction attendre). Une fois que tous les agents ont terminé, un unique agent doit être désigné pour se rendre au bureau de poste principal (fonction designer_transporteur). Au bureau de poste principal, les quatre agents régionaux désignés pour transporter le courrier doivent procéder au tri final (fonction trier_courrier_principal). Le courrier n'est enfin expédié (fonction expédier_courrier) que si tous ces agents ont fini leur tri. L'expédition sera faite par un unique agent (choisi par la même fonction designer_transporteur). Un processus représente un agent de la poste. On se propose de synchroniser ces processus avec les sémaphores. On définit les constantes suivantes : Constante Valeur Rôle nb_reg 3 Nombre de fonctionnaires dans un bureau régional nb_princ 4 Nombre de fonctionnaires dans un bureau principal Chaque réponse doit être précédée par une partie initialisations qui doit définir les variables partagées et les sémaphores utilisés. 1. Donner le code de la méthode attendre (num, nbAgentTotal) qui va permettre à un agent de numéro num d'attendre les autres s'il n'est pas le dernier (le nombre d' agents total à attendre est nbAgentTotal). 2. Donner le code de la méthode désigner_transporteur(num, nbAgentTotal) qui va choisir un unique agent comme transporteur. L'agent choisi sera le dernier agent parmi les nbAgentTotal agents ayant appelé la fonction désigner_transporteur. Les agents qui ne sont pas choisis quitteront la poste (fonction exit() ). 3. Donner le code de la fonction principale agent(num) qui définit le comportement de chaque agent.

Partagez vos remarques, questions ou propositions d'amélioration ici...

Enregistrer un commentaire (0)
Plus récente Plus ancienne

Publicité 1

Publicité 2