Rattrapage 2020 2021 GIM Correction
Télécharger le Rattrapage 2020 2021 GIM Correction en pdf
Page 1 : Système d’exploitationExamen Session RattrapageI. Ben Amor, S. Bouzidi, T. Gherbi, J.A. Lorenzo, S.Yassa.ING1-GI-GMAnnée 2020–2021Modalités֊Durée : 2 heures.֊Vous devez rédiger votre copie à l’aide d’un stylo à encre exclusivement.֊Toutes vos affaires sacs, vestes, trousse, etc. doivent être placées à l’avant de la salle.֊Aucun document n’est autorisé.֊La calculatrice est autorisée.֊Aucune question ne peut être posée aux enseignants, posez des hypothèses en cas de doute.֊Aucune sortie n’est autorisée avant une durée incompressible d’une heure.֊Aucun déplacement n’est autorisé.֊Aucun échange, de quelque nature que ce soit, n’est possible.QCM à répondre sur votre copie et non pas sur ce sujet 5 pointsa Le Système d’Exploitation...❏ est une couche matérielle qui gère le logiciel de présentation.❏ est responsable du partage des ressources matérielles de l’ordinateur.❏ est stocké dans le secteur 0 du MBR.❏ Aucune des réponses n’est valide.b Un appel système...❏ constitue une interface entre l’interface graphique et la ligne de commande.❏ s’exécute au niveau utilisateur.❏ entre dans le kernel.❏ Aucune des réponses n’est valide.c La commande parted...❏ est un outil de partitionnement.❏ permet d’étendre la taille du système de fichiers d’une partition.❏ permet d’entrer dans le mode de récupération du système d’exploitation.❏ Aucune des réponses n’est valide.1
Page 2 : d Un tableau alloué avec malloc sera stocké dans❏ la région du code text segment.❏ la région des données data segment.❏ la pile stack.❏ le tas heap.e Pour créer une image à partir d’un conteneur Docker en exécution nous utiliserons❏ docker build❏ docker ps❏ docker commit❏ docker-composeQuestions de cours 5 pointsa.Décrire le processus de démarrage de Linux.b.Expliquer la différence entre l'allocation contiguë et l'allocation chaînée de fichiers, enprécisant les avantages et inconvénients de chacune.c.Que contient le MBR Master Boot Record ?d.Expliquez le rôle de la zone de swap.e.Expliquez comment un processus peut devenir zombie.Exercice 1 : Programmation de processus 4 2+2 points 1- Combien de processus sont créés par le programme suivant ? Expliquez. include unistd.h include stdio.hint main int pid, i;for i=0; i2; i++pid = fork;if pid 0printf"echec de fork\n";exit-1;return 0 ;2- Ecrire un programme qui crée un processus fils. Ce dernier envoie à son père la valeur 20. Lepère utilise waitpid pour attendre son fils, récupère la valeur envoyée par le fils et l'affiche.2
Page 3 : Exercice 2: Le système de fichiers 2 pointsConsidérons un système de fichiers de type Unix dans lequel l'information concernant les blocsde données de chaque fichier est accessible à partir du i-noeud.Supposons que :●Le système de fichiers utilise des blocs de données de taille fixe 2K 2048 bytes.●L’i-noeud de chaque fichier ou répertoire contient 12 pointeurs directs sur des blocs dedonnées, 1 pointeur indirect simple, 1 pointeur indirect double et 1 pointeur indirecttriple.●Chaque pointeur numéro de bloc est représenté sur 4 bytes.a Quelle est la plus grande taille de fichier que peut supporter ce système de fichiers?b Considérons un fichier de taille 1 MByte 1024 KB. Combien de blocs de données pointéspar les blocs d’indirection sont-ils nécessaires pour représenter ce fichier sur le disque ?Exercice 3: Gestion de processus - Ordonnancement 2 pointsSoient quatre processus prêts A, B, C et D avec les temps d’arrivée au système et les tempsd’exécution indiqués dans le tableau ci-dessous:ProcessusTemps d’exécutionTemps d’arrivéeA30B31C23D27En supposant que le temps de commutation est nul, calculer :— le temps de séjour de chaque processus.— le temps moyen de séjour.— le temps d’attente : temps de séjour - temps d’exécution.— le temps moyen d’attente.— le nombre de changements de contexteen utilisant les techniques :1. First-come, first-served FCFS.2. Round-robin avec un quantum de 2.Pour chaque technique, dessiner la séquence des processus qui s’exécutent à chaque moment.3
Page 4 : Exercice 4 : Mémoire virtuelle 2 pointsDans une architecture hypothétique où les adresses virtuelles sont sur 14 bits, les 4 bits à gauchedans l’adresse dénotent la page et les 10 bits à droite dénotent le déplacement par rapport audébut de la page offset. En sachant que les premières entrées de la table des pagescorrespondance « pages virtuelles – cadres réelles » sont :0123Transformez les deux adresses virtuelles suivantes exprimées en notation binaire, en adressesphysiques qui sont sur 13 bits.●101010101010●14
Page 5 : Corrigé de l’examenQCM: 5 points●Le Système d’Exploitation...❏est responsable du partage des ressources matériels de l’ordinateur.●Un appel système...❏entre dans le kernel.●La commande parted...❏ est un outil de partitionnement.●Un tableau alloué avec malloc sera stocké dans❏ le tas heap.●Pour créer une image à partir d’un conteneur Docker en exécution nous utiliserons❏ docker commitQuestions de cours: 5 points●Décrire le processus de démarrage de Linux chap3, page 8●Expliquer la différence entre l'allocation contiguë et l'allocation chaînée de fichiers, enprécisant les avantages et inconvénients de chacune. réponse dans chap2, pages 17, 18●Que contient le MBR Master Boot Record? réponse en chap 2, page 24●Expliquez le rôle de la zone de swap?●Expliquez comment un processus peut devenir zombie?Exercice 1 : Programmation de processus 4 points1- Combien de processus sont créés par le programme suivant ? Expliquez. réponse 42- Ecrire un programme qui crée un processus fils. Ce dernier envoie à son père la valeur 20. Lepère utilise waitpid pour attendre son fils, récupère la valeur envoyée par le fils et l'affiche. include unistd.h include stdio.hint main int pid, status;pid = fork;if pid 0printf"echec de fork\n";exit-1;5
Page 6 : else if pid 0 // partie du pèrewaitpidpid, &status;printf "Valeur envoyee par l'enfant : d\n", WEXITSTATUSstatus; else // partie enfantexit20;return 0 ;Exercice 2: Le système de fichiers 2 pointsa Chaque pointeur numéro de bloc est représenté sur 4 bytes. Donc chaque bloc de donnéespeut contenir 512 pointeurs car 2K/412 2k pour direct, 512 2K pour indirect simple, 512² 2K pour indirect double,256³ 2K pour indirect Triple.La plus grande taille de fichier est :Taille maximale = 12 + 512 + 512² + 512³ 2K = 268960792 KBytes 256,5 Gob Pour un fichier contenant 1 MB 1024 KB, on remarque que :1024 KB = 512 2 KBIl faudra donc 512 blocs pour conserver les données de ce fichier.L’i-noeud ne dispose que de 12 blocs directs 512 - 12 = 500, il va donc falloir utiliser lespointeurs indirects pour conserver le reste des données. Nous aurons besoin des i-noeuds dupointeur indirect simple. En effet, il nous restera 500 blocs qui seront tous stockés sur la partiepointée par le pointer d’indirection simple, car 500 est inférieur à 512. Donc la réponse est 500blocs.Exercice 3: Gestion de processus - ordonnancement 2 points1. FCFS0 1 2 3 4 5 67 8 9 10 11 12 1314 15 16 17 18AAABBBCCDDA arrive B arrive C arriveD arriveQueue :t = 0 - A dans CPUt = 1 - B, A dans CPUt = 2 - B, A dans CPUt = 3 - C, B dans CPUt =4 - C, B dans CPUt =5 - C, B dans CPUt =6 - C dans CPUt =7 - D, C dans CPUt =8 - D dans CPU6
Page 7 : ProcessusTemps séjourTemps d’attenteA3 - 0 = 33 - 3 = 0B6 - 1 = 55 - 3 = 2C8 - 3 = 55 - 2 = 3D10 - 7 = 33 - 2 = 1Tmoyensejour = 3+5+5+3 / 4 = 4 unités de tempsTmoyenattente = 0+2+3+1 / 4 = 1,5 unités de temps4 changements de contexte en comptant le changement initial2. RR Q=20 1 2 3 4 5 67 8 9 10 11 12 1314 15 16 17 18AABBACCBDDA arrive B arrive C arriveD arriveQueue :t = 0 - A dans CPUt = 1 - B, A dans CPUt = 2 - A, B dans CPUt = 3 - C, A, B dans CPUt = 4 - B, C, A dans CPUt = 5 - B, C dans CPUt = 6 - B, C dans CPUt = 7 - D, B dans CPUt = 8 - D dans CPUProcessusTemps séjourTemps d’attenteA5 - 0 = 55 - 3 = 2B8 - 1 = 77 - 3 = 4C7 - 3 = 44 - 2 = 2D10 - 7 = 33 - 2 = 1Tmoyensejour = 5+7+4+3 / 4 = 4,75 unités de tempsTmoyenattente = 2+4+2+1 / 4 =2,25 unités de temps6 changements de contexte en comptant le changement initial7
Page 8 : Exercice 4 : Mémoire virtuelle 2 points●0010 1010101010 : la page demandée est 0010 en binaire →donc 2, le déplacement étant1010101010.Le cadre correspondant à 2 est 7, ce qui donne 111 en binaire.L’adresse physique correspondant est 111 1010101010●0000 0000000001 : la page est 0. Le cadre correspondant étant 3, ce qui donne 011 en binaireL’adresse physique correspondant est 011 0000000001.8







