35 1 734KB
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