Synchronisation et Communication Inter-Processus

Page 1 sur 5Lecteur de document UniversityLib

Synchronisation et Communication Inter-Processus

Systèmes d’exploitation, Programmation Concurrente · lab

Ecole Nationale des Sciences de l’Informatique A. U. : 2014/2015

Systèmes d’exploitation & Programmation Concurrente II2

TP3- Synchronisation et Communication Inter-Processus ========================================================

Exercice 1 (DAG)

Soit le graphe de précédence (Directed Acyclic Graph DAG) suivant des processus P1, P2, P3, P4 et P5. Les nœuds représentent les processus et les liens (flèches) entre eux indiquent l’ordre dans lequel ces processus doivent être exécutés. En particulier un processus ne peut commencer à s’exécuter que si tous ses prédécesseurs ont terminé.

![](data:image/png;base64...)

1. Donnez une implémentation qui permet l’exécution de ces processus dans l’ordre indiqué par le graphe en utilisant un nombre minimal de sémaphores.

Exercice 2

Publicité

On considère le problème classique de synchronisation des Lecteurs/Rédacteurs implémenté ci-dessous. Nous donnons, aussi, pour les lecteurs (Readers –R) et rédacteurs (Writers –W) les temps d’arrivée et temps d’exécution estimé dans la table ci-dessous.

| | | | | | |

| --- | --- | --- | --- | --- | --- |

| Processus Reader | | | | Processus Writer | |

| P(mutex); Nread++ ; if (Nread ==1) P(wrt); V(mutex); ……………. SC: Reading ………………. P(mutex) Nread-- ; if (!Nread) V(wrt); V(mutex); | | | | P(wrt); ………. SC: Writing …………… V(wrt); | |

| Reader –R ou Writer --W | Date d’arrivée | | Temps de traitement estimé | |

| W1 W2 W3 R1 R2 R3 | 1 2 5 0 1 4 | | 2 2 1 1 2 2 | |

1- Expliquez à quoi servent les sémaphores mutex et wrt et rappelez pour chacun sa valeur initiale?

Publicité

2- En utilisant la table précédente, remplir le(s) diagramme(s) de Gantt suivant en précisant les processus en attente, les processus actifs (c’est-à-dire occupant la section critique) ?

![](data:image/png;base64...)

Exercice 3

Proposez une solution multithreadée du problème « dîner des philosophes » en utilisant des verrous mutexs et des variables conditionelles. On suppose que chaque philosophe i est représenté par un thread Ti.

Note : Pour cet exercice, vous n’êtes pas autorisés à utiliser des sémaphores.

Exercice 4

Un stade d’athlétisme peut recevoir les athlètes de trois (3) clubs A, B et C qui viennent s’y entraîner. Pour organiser les entraînements, on impose la règle suivante :

A un instant donné, le stade peut recevoir un nombre quelconque d’athlètes mais de deux clubs au maximum. Par exemple, 5 athlètes du club B et 3 athlètes du Club C peuvent s’entraîner en même temps, mais si un athlète du club A veut accéder au stade, il doit attendre jusqu’à ce que tous les athlètes aient quitté le stade, soit du club B soit du club C.

Publicité

1. On vous demande de proposer un schéma de synchronisation des processus: Processus A, Processus B et Processus C correspondant respectivement à des athlètes des clubs A, B et C, et ce en utilisant des sémaphores. Déclarez clairement vos variables et précisez leurs initialisations.

2. La solution proposée dans 1) présente-t-elle un risque de famine ? justifier votre réponse.

Exercice 5 (IPC - Pipe)

Soit le Considérez le programme C suivant :

![](data:image/x-emf;base64...)

1-Donnez un aperçu sur le programme, en expliquant de façon succincte ce qu’il fait.

2- Dans le programme, on trouve des erreurs de traitement des tubes : une première erreur concerne le traitement des tubes nommés, une deuxième erreur concerne le traitement des tubes anonymes. Trouvez ces deux erreurs, puis expliquez chacune de ces erreurs et corrigez-les.