• Aucun résultat trouvé

Module de « Systèmes d’exploitation2 » Corrigé

N/A
N/A
Protected

Academic year: 2022

Partager "Module de « Systèmes d’exploitation2 » Corrigé"

Copied!
2
0
0

Texte intégral

(1)

Page 1 / 2

Université de Chlef Mars 2014

Département Informatique

Filière : 3ème Année Licence TSW

Examen semestriel

Module de « Systèmes d’exploitation2 »

Corrigé

Exercice 1 : (07 points)

Soit X, Y et Z des variables numériques. P1 et P2 sont deux processus dont les codes sont les suivants : Processus P1

Debut

X := X+1 Fin

Processus P2 Debut

Si X > 50 Alors Y := Y +1 sinon

Y:= Y/2 Finsi;

Z := Z + Y Fin

Question 1 : 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 P1 tente de modifier cette variable alors que le processus P2 tente de son coté de la consulter.

(3 points)

Question 2 : 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é à 1.

Processus P1 Debut

Wait(mutex) X := X+1 Signal(mutex) Fin

Processus P2 Debut

Wait (mutex) Si X > 50 Alors Signal(mutex) Y := Y +1 Sinon

Signal(mutex) Y:= Y/2 Finsi;

Z := Z + Y Fin

(4 points)

(2)

Page 2 / 2 Exercice 2 : (13 points)

On reprend le problème de synchronisation du Producteur-Consommateur avec buffer circulaire et de taille limitée N, mais on suppose qu'il y'a maintenant deux producteurs P1 et P2 et un seul consommateur C. Le producteur P2 a une particularité : il produit et dépose deux messages à la fois (si toutefois, il y'a des places libres dans le buffer).

Travail à faire : Proposez un schéma de synchronisation de ce problème. Ecrivez le code des 3 processus P1, P2 et C.

Soignez vos déclarations.

Réponse : Déclarations :

In : Entier (Init à 0) indice du dernier élément déposé dans le buffer

Out : Entier (Init à 0) indice de l'élément prêt à être prélevé par le Consommateur

Mutex : Sémaphore (init à 1) assurant l'accès en exclusion mutuelle à la variable partagée In.

Empty : Sméphore (Init à N) permettant de bloquer les producteur si le buffer est plein.

Full : sémaphore (Init à 0) permettant de bloquer le consommateur s'il n'ya aucune case pleine dans le buffer.

(3 points)

Processus Producteur1 Début

Cycle

Produire un message dans ZoneP

Wait(Empty);

Wait(mutex)

Buffer[In] :=ZoneP ; In :=In+1 mod N Signal(mutex) Signal(Full) Fin Cycle Fin.

Processus Producteur2 Début

Cycle

Produire un message dans ZoneP1 et ZoneP2

Wait(Empty);

Wait(Empty);

Wait(mutex)

Buffer[In] :=ZoneP1 ; In :=In+1 mod N Buffer[In] :=ZoneP2 ; In :=In+1 mod N Signal(mutex) Signal(Full) Signal(full) Fin Cycle Fin.

Processus Consommateur Début

Cycle

Wait(Full)

ZoneC :=Buffer[Out] ; Out :=Out+1 mod N ; Signal(Empty) ;

Consommer le message de ZoneC

Fin Cycle Fin.

(3 points)

Références

Documents relatifs

Solutions possibles : Interrompre l’un des deux processus au hasard, interrompre le processus totalisant le plus grand temps d’exécution, le plus petit temps d’attente. (1 point)

Exercice 2 (05 points) : On utilise un système à mémoire paginée pour lire les enregistrements d’un fichier qui contient 1000 enregistrements (numérotés de 0 à 999). Une

On reprend le problème de synchronisation du Producteur-Consommateur avec buffer circulaire et de taille limitée N, mais on suppose qu'il y'a maintenant

On considère le problème de synchronisation "Producteur/Consommateur" avec buffer limité, mais le nombre de producteurs est égal à 2 alors qu'il n'ya qu'un

La différence est que dans le modèle lecteur/rédacteur, on ne peut trouver qu’un seul rédacteur à la fois entrain d’occuper la ressource partagée (fichier) alors que dans

Chaque fichier a son propre inode qui contient des métadonnées pour la description du fichier : l'identifiant du propriétaire , l'identifiant du groupe

Question 4 : Dans la méthode de communication de la "Mémoire partagée", lorsqu'n processus Pi envoie un message à un autre processus Pj, dites comment ce dernier peut-il

Supposons qu'un processus P a besoin d'abord du processeur pendant X unité de temps, ensuite du lecteur de bande magnétique pendant Y unités de temps et enfin de