Examen Théorie Systeme 2I Janvier 2011 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

2I

Théorie Système d’Exploitation 2010-2011

Examen de rattrapage Théorie Système d’Exploitation (Durée 2h) Janvier 2011

Exercice 1 : (9 pts) Partie I : 1. Rappelez la définition et les objectifs de l'ordonnancement des processus. 2. Rappelez les critères de performance des politiques d'ordonnancement. 3. Donnez un exemple de politique d'ordonnancement qui peut créer une situation de famine.

Partie II : Les processus suivants doivent être exécutés sur un ordinateur ayant un seul CPU : Processus 1 2 3 4 5

Date de début d’exécution 0 4 4 7 8

Durée supposée d’exécution 14 12 7 4 7

1. On supposera que le temps de commutation de contexte est négligeable. Donner le diagramme de Gantt et le temps moyen de traitement lorsque l’algorithme d’ordonnancement de processus utilisé par le système d’exploitation utilise la méthode dite du plus court temps d’exécution restant. 2. Même question avec la méthode par quantum (on prendra 4 comme durée d’un quantum)

Précisions : Ces processus ne font pas d'entrées-sorties et leur priorité ne change pas en cours d'exécution. On ne tiendra pas compte du temps de commutation des processus. Les processus sont exécutes sur le même processeur.

Exercice 2 : (5 pts) Soit le programme suivant : /_ prog tube1 . c _/ #inc lude #inc lude #inc lude #inc lude #define LECTURE 0

Hassine Moungla

2I

Théorie Système d’Exploitation 2010-2011

#define ECRITURE 1 int main ( ) { int fd [ 2 ] ; int cpt ; char message [ ] = ”Hello daddy ! ” ; char buf [ 8 ] ; i f ( pipe ( fd ) == −1) { perror (” Erreur a la création du tube ” ) ; exit(1) ; } switch ( f o r k ( ) ) { case −1 : perror (” Erreur a la création du fils ” ) ; exit(2) ; break ; case 0 : if ( write ( fd [ECRITURE] , message , s i z e o f (message ) ) == −1) { perror (” Erreur lors de l’ écriture du message ” ) ; exit(3) ; } close ( fd [LECTURE] ) ; close ( fd [ECRITURE] ) ; break ; default : wait (NULL) ; while (( cpt = read ( fd [LECTURE] , buf , sizeof(buf) − 1 ) ) > 0 ) { buf [cpt] = ’ \ 0 ’ ; printf (” buf contient %s \n” , buf ) ; } close ( fd [ECRITURE] ) ; close ( fd [LECTURE] ) ; } } 1. Décrivez les différentes étapes de l’exécution du programme prog tube1.c 2. Est-ce que le programme prog tube1.c ne se termine ? si non, proposer une modification minimale du code source permettant de résoudre ce problème.

Hassine Moungla

2I

Théorie Système d’Exploitation 2010-2011

Exercice 4 : (6 pts) On considère les deux structures de filiation (chaine et arbre) représentées ci-après. Écrire un programme qui réalise une chaine de n processus, où n est passée en paramètre de l'exécution de la commande (par exemple, n = 3 sur la figure ci-dessus). Faire imprimer le numéro de chaque processus et celui de son père. Même question avec la structure en arbre.

pid, ppid

pid, ppid

pid, ppid

Structure chaine EXIT

pid, ppid

pid, ppid

pid, ppid

pid, ppid

EXIT EXIT

Annexe :

Hassine Moungla

pid, ppid EXIT EXIT

Structure arbre

2I

Théorie Système d’Exploitation 2010-2011 Processus

0 Unité de temps

Hassine Moungla

0 Unité de temps

Hassine Moungla

Théorie Système d’Exploitation 2010-2011

Processus

2I

2I

Théorie Système d’Exploitation 2010-2011 Processus

0 Unité de temps

Hassine Moungla

2I

Théorie Système d’Exploitation 2010-2011 Processus

0 Unité de temps

Hassine Moungla