Département INFormatique 
  CSC4508/M2 : Concepts des systèmes d'exploitation et mise en œuvre sous Unix


    Évaluation



TELECOM & Management SudParis
TELECOM SudParis 2ème année

TP Noté CSC4508/M2 du 19/06/08

(2è session)

Corrigés

Modalités

Durée : 1 heure de préparation et 1 1/2-heure d'oral

Tous documents autorisés.

Préparation

cd votreRepertoireDeTravailPourCSC4508M2
cp ~simatic/Cours/CSC4508/tPNote2008Session2.tgz .
tar xvfz tPNote2008Session2.tgz
cd TPNote2008Session2

Question 1 : Descendance

Le programme Q1/descendance.c prend en argument un entier qui est stocké dans la variable nbGenerations.
Modifiez ce programme pour que ce programme forke un enfant qui, lui-même forke un enfant qui, lui-même, forke un enfant... et ce nbGenerations fois. Voici un exemple de sortie que doit faire votre programme :
$ ./descendance 3
Generation 1 : enfant de pid 5562 ayant pour parent le processus de pid 5561
Generation 2 : enfant de pid 5563 ayant pour parent le processus de pid 5562
Generation 3 : enfant de pid 5564 ayant pour parent le processus de pid 5563

Question 2 : Un tramway (nommé désir ?), le retour en conditionnel

On imagine que le futur tramway qui reliera Évry à Corbeil aura une section de voie unique (nommée SVU dans la suite) sur 2 kilomètres au niveau de TELECOM & Management SudParis.
De ce fait, une société est en charge d'écrire un simulateur de circulation sur les différentes voies. Elle fait appel à vos services pour la conception de la fonction circulationECSurSVU (respectivement circulationCESurSVU) qui gère l'accès à la SVU pour les tramway venant d'Évry (respectivement Corbeil), l'utilisation de cette voie et la sortie de la SVU.
Pour les questions suivantes (qui sont autant d'hypothèses d'utilisation de la SVU), vous devrez donc écrire les algorithmes (pas de code !) des fonctions circulationECSurSVU  et circulationCESurSVU en utilisant les opérations pthread_mutex_lock et pthread_mutex_unlock d'objets mutex thread.

Question 2.1 : Un seul train sur la SVU

Dans cette question, on souhaite qu'à tout instant, il ne puisse y avoir au maximum qu'un tramway sur la SVU.
Écrire les algorithmes (et éventuelles initialisations).

Question 2.2 : Plusieurs trains dans le sens EC sur la SVU

Dans cette question, on souhaite que plusieurs tramways EC puisse circuler simultanément sur la SVU. En revanche, à tout instant, au plus un tramway CE peut circuler sur la SVU. De plus, on ne peut jamais avoir un tramway EC et un tramway CE simultanément sur la SVU.
NB : On veillera à ce qu'il n'y ait jamais de tramway qui attende indéfiniment parce qu'il y a des tramways qui s'engagent constamment sur la SVU, mais dans l'autre sens.
Écrire les algorithmes (et éventuelles initialisations).



Page mise à jour le 19 juin 2008