Content text °EXAMENS Système d'exploitation II FSA AGADIR SMI4.pdf
1/2 UNIVERSITE IBNOU ZOHR, FACULTE DES SCIENCES 2018-2019 DEPARTEMENT INFORMATIQUE AGADIR Systèmes d’Exploitation II – SMI4 (session normale) Durée : 2h00 Exercice 1 (11 pts): Q1- Avec un schéma expliquez la signification des deux appels système suivant : Q2- Donner les affichages possibles de chacun de ces programmes : Q3- Donnez le contenu du fichier « file » à la fin de l’exécution de chacun des codes suivants On suppose, qu’avant chaque exécution, le fichier «file» contient la chaîne de caractères suivante : Bonjour_SMI4 dc=open("file",RDWR) dup2(dc,1) int main(){ int fd; char* buffer= “toto” ; fd=open(“file”, O_WRONLY|O_TRUNC|O_APPEND)) write(fd,buffer,sizeof(buffer)) ; return(0); } int main(){ int fd; char* buffer= “toto” ; fd=open(“file”, O_RDWR)) read(fd,br,5) ; write(fd,buffer,sizeof(buffer)) ; return(0); } int main(){ int fd; char* buffer= “toto” ; char[3] br ; fd=open(“file”, O_RDWR|O_APPEND)) read(fd,br,5) ; write(fd,buffer,sizeof(buffer)) ; return(0); } (a) (b) (c) dc=open("file",RDWR) dup2(1,dc) int main{ pid_tpid; int t; if((pid=fork())==0){ printf(" le fils \n"); }else{ wait(&t); printf(" le père \n"); } return 0, } int main{ pid_tpid; int t; if((pid=fork())==0){ printf(" le fils \n"); }else{ printf(" le père \n"); wait(&t); } return 0, } (a) ....................................................................................... ....................................................................................... ....................................................................................... ....................................................................................... ..... ....................................................................................... ....................................................................................... ....................................................................................... ....................................................................................... ..... .................................................................. .................................................................. .......................................... .................................................................. .................................................................. ............................................... ...................................................... ...................................................... ...................................................... ............ ...................................................... ...................................................... ...................................................... ...................................................... ............ ...................................................... (b) 1/2
1/2 UNIVERSITE IBNOU ZOHR, FACULTE DES SCIENCES 2018-2019 DEPARTEMENT INFORMATIQUE AGADIR Solution Systèmes d’Exploitation II – SMI4 (session normale) Exercice 1 (11 pts): Q1- Avec un schéma expliquez la signification des deux appels système suivant : Q2- Donner les affichages possibles de chacun de ces programmes : Q3- Donnez le contenu du fichier « file » à la fin de l’exécution de chacun des codes suivants On suppose, qu’avant chaque exécution, le fichier «file» contient la chaîne de caractères suivante : Bonjour_SMI4 Q4- C’est quoi le rôle d’un descripteur de fichier ?. dc=open("file",RDWR) dup2(dc,1) int main(){ int fd; char* buffer= “toto” ; fd=open(“file”, O_WRONLY|O_TRUNC|O_APPEND)) write(fd,buffer,sizeof(buffer)) ; return(0); } int main(){ int fd; char* buffer= “toto” ; fd=open(“file”, O_RDWR)) read(fd,br,5) ; write(fd,buffer,sizeof(buffer)) ; return(0); } int main(){ int fd; char* buffer= “toto” ; char[3] br ; fd=open(“file”, O_RDWR|O_APPEND)) read(fd,br,5) ; write(fd,buffer,sizeof(buffer)) ; return(0); } (a) (b) (c) dc=open("file",RDWR) dup2(1,dc) int main{ pid_tpid; int t; if((pid=fork())==0){ printf(" le fils \n"); }else{ wait(&t); printf(" le père \n"); } return 0, } int main{ pid_tpid; int t; if((pid=fork())==0){ printf(" le fils \n"); }else{ printf(" le père \n"); wait(&t); } return 0, } (a) le fils le père 1 er possibilité : 2eme possibilité le fils le père le père le fils .....................toto....................................... .................................................................. ................................................ ............BonjototoMI4............... ...................................................... ...................................................... Bonjour_SMI4....................................... ...toto...................................................... .................................................................. ... (b) 1/2 Redirection de la sortie standard (stdout) vers le fichier « file »
2/2 C’est un entier qui permet de caractériser une entrée dans la t able de descripteur d’un processus. Il permet donc d’identifier et d’utiliser un fichier par un processus. D’une manière plus simple, quand un processus veut manipuler un fichier, il va utiliser un entier qu’on appele descripteur de fichier. Q5- Soit l’appel système : dc=open("file",RDWR). Donner les valeurs possibles de dc. Q6- Dans quel type d’ordonnancement (préemptif ou non-préemptif) on peut observer une transition (commutation) d’un processus depuis l'état actif (élu) vers l'état prêt ?. Justifier votre réponse. Dans l’ordonnancement préemptif car ce type d’ordonnancement autorise d’interompre l’exécution d’un processus (élu) en faveur d’un autre processus (exemple ; cas de processus plus prioritaire, fin de quantum pour RR , SRT ...) . Cette transition n’existe pas dans l’ordonnancement non-préemptif qui à lui un processus s’exécute jusqu’ a la fin sauf si événement bloquant (ex : E/S). Q7- La transition de l’état prêt vers l’état bloqué est-elle possible ? pourquoi ?. Non, l’état bloqué ne peut venir que de l’état actif. Exercice 2 (4 pts) : Soient 5 processus dont les temps d’arrivés et d’exécutions estimés sont données dans la table suivante : processus Temps d’arrivé Temps de traitement P1 0 7 P2 1 4 P3 1 2 P4 2 2 P5 3 1 1- Donnez le diagramme de Gantt pour l’exécution de ces différents processus à l’aide des algorithmes d’ordonnancement suivants : RR (quantum = 2 unité de temps) et SRT. On suppose que le temps de commutation de contexte est négligeable RR : SRT : 2- Pour l’algorithme SRT, calculer le temps moyen de rotation. On suppose que le temps de commutation de contexte est de 0.5.