Exécution de processus en multiprogrammation - Examen corrige
?16,41666667. 13,694396. 0,2960957. 0,29046. V2src10_hrc09_525.yuv ......
Alignement spatial: Processus utilisé pour évaluer et corriger les décalages
spatiaux ...... Les comparaisons Ctd permettent de corréler la tième image traitée
avec ...
part of the document
PROCESSUS
Exécution de processus en multiprogrammation
On considère un système monoprocesseur dans lequel les processus partagent un disque comme seule ressource (autre que le processeur). Cette ressource n'est accessible qu'en accès exclusif et non requérable, c'est-à-dire qu'une commande disque lancée pour le compte d'un processus se termine normalement avant de pouvoir en lancer une autre. Un processus peut être en exécution, en attente d'entrée-sortie ou en attente du processeur.
A- Expliquer le schéma suivant représentant les états possibles d'un processus et les transitions entre ces états. Expliquer pourquoi certaines transitions ne sont pas possibles.
INCLUDEPICTURE "../../../../../../Administrateur/Bureau/exercices-algo/4_4_%20Exécution%20de%20processus%20en%20multiprogrammation_fichiers/physiq14.gif" \* MERGEFORMAT
B- En fait l'état bloqué se divise en deux états : attente de la ressource disque et attente de la fin d'exécution de l'opération. Les demandes d'entrées-sorties sont gérées à l'ancienneté, et l'allocation du processeur est faite selon la priorité affectée au processus, et représentée par une valeur entière. Le processus prioritaire est celui qui a la plus grande valeur et si deux processus ont même priorité, cest le plus ancien dans la file dattente des processus prêts.
Nous considérons les 4 processus dont le comportement est le suivant (la priorité au démarrage est indiquée entre parenthèses) :
P1 (100) Calcul pendant 40 ms
Lecture disque pendant 50 ms
Calcul pendant 30 ms
Lecture disque pendant 40 ms
Calcul pendant 20 ms
P2 (99) Calcul pendant 30 ms
Lecture disque pendant 80 ms
Calcul pendant 80 ms
Lecture disque pendant 20 ms
Calcul pendant 10 ms
P3 (98) Calcul pendant 40 ms
Lecture disque pendant 40 ms
Calcul pendant 10 ms
P4 (97) Calcul pendant 80 ms
B.1- Les 4 processus sont lancés en même temps et gardent leur priorité initiale pendant toute leur exécution. Établir le chronogramme des 4 processus sur le diagramme suivant. Vous noircirez les cases correspondant à l'état du processus, comme cela a été fait pour le début du processus P1, à titre d'exemple.
P1 INCLUDEPICTURE "../../../../../../Administrateur/Bureau/exercices-algo/4_4_%20Exécution%20de%20processus%20en%20multiprogrammation_fichiers/physiq15.gif" \* MERGEFORMAT
P2 INCLUDEPICTURE "../../../../../../Administrateur/Bureau/exercices-algo/4_4_%20Exécution%20de%20processus%20en%20multiprogrammation_fichiers/physiq16.gif" \* MERGEFORMAT
P3 INCLUDEPICTURE "../../../../../../Administrateur/Bureau/exercices-algo/4_4_%20Exécution%20de%20processus%20en%20multiprogrammation_fichiers/physiq16.gif" \* MERGEFORMAT
P4 INCLUDEPICTURE "../../../../../../Administrateur/Bureau/exercices-algo/4_4_%20Exécution%20de%20processus%20en%20multiprogrammation_fichiers/physiq16.gif" \* MERGEFORMAT
B.2- Les 4 processus sont lancés en même temps, mais leur priorité est variable. Chaque fois qu'un processus quelconque quitte l'état bloqué, on recalcule la priorité de chaque processus selon la formule suivante :
Priorité Nouvelle = Priorité Initiale - (Temps processeur utilisé) / 10
Établir le chronogramme des 4 processus sur le diagramme suivant.
P1 INCLUDEPICTURE "../../../../../../Administrateur/Bureau/exercices-algo/4_4_%20Exécution%20de%20processus%20en%20multiprogrammation_fichiers/physiq16.gif" \* MERGEFORMAT
P2 INCLUDEPICTURE "../../../../../../Administrateur/Bureau/exercices-algo/4_4_%20Exécution%20de%20processus%20en%20multiprogrammation_fichiers/physiq16.gif" \* MERGEFORMAT
P3 INCLUDEPICTURE "../../../../../../Administrateur/Bureau/exercices-algo/4_4_%20Exécution%20de%20processus%20en%20multiprogrammation_fichiers/physiq16.gif" \* MERGEFORMAT
P4 INCLUDEPICTURE "../../../../../../Administrateur/Bureau/exercices-algo/4_4_%20Exécution%20de%20processus%20en%20multiprogrammation_fichiers/physiq16.gif" \* MERGEFORMAT
C- Donner le temps total de lexécution de ces 4 processus dans les trois cas suivants :
C1 L'activation des 4 processus est demandée à l'instant initial et ils s'exécutent en monoprogrammation dans l'ordre P1, P2, P3 puis P4,
C2 Gestion de B.1,
C3 Gestion de B.2.
D- Comparer les temps de réponse moyens dans les trois cas C1, C2, C3
E- Donner le taux dutilisation du processeur dans les 3 cas C1, C2 et C3
Exercice 2
Donner et comparer les assignations produites par les algorithmes FIFO, PCTE, tourniquet avec un quantum de 1, PCTER dans lexemple suivant :
Ordre darrivée des tâches :
T1 T2 T3 T4 T5 T6 T7
________________________________________
durée 7 4 6 1 2 4 1
date darrivée 0 0 1 1 1 2 2
Exercice 3
Sur un ordinateur, lordonnanceur gère lordonnancement des processus par un tourniquet avec un quantum de 100 ms, sachant que le temps nécessaire à une commutation de processus est de 10 ms, calculer le temps dexécution moyen pour :
T1 T2 T3 T4 T5 T6 T7
________________________________________
durée 700 400 600 100 200 400 100
date darrivée 0 0 100 100 150 200 200
Si lon définit le rendement du processeur comme le rapport temps pendant lequel lUC exécute les processus/temps total de traitement, calculer le rendement en ce cas.
Exercice 4
Un SE utilise 3 niveaux de priorité (numérotés par ordre croissant). Le processus se voit affecter un niveau fixe. Une file de processus est attachée à chaque niveau. Chaque file est gérée par un tourniquet avec un quantum de 0,5. Un tourniquet de niveau n nest activé que si toutes les files de niveau supérieur est vide.
Que peut-il se passer ?
Donner lassignation pour :
T1 T2 T3 T4 T5 T6 T7
________________________________________
durée 7 4 6 1 2 4 1
date darrivée 0 0 1 1 1 2 2
priorité 2 3 1 2 3 1 2
Maintenant on suppose que la priorité nest pas fixe. Toutes les 2 unités de temps, tout processus nayant pas disposé de lUC monte dun niveau alors que ceux en ayant disposé 2 fois en descendent. Donner la nouvelle assignation.
GESTION DE LA MEMOIRE
Exercice 1
Allocation par partitions variables
Soit un système qui utilise l'allocation par partitions variables. On parle aussi d'allocation par zones quand la taille des zones allouées est variable, ou d'allocations par blocs quand la taille des blocs alloués est fixe.
L'allocation se fait selon le choix first fit. C'est-à-dire que la première zone rencontrée dont la taille est supérieure ou égale à la taille du processus à charger est celle qui est allouée au processus.
On considère à l'instant t l'état suivant de la mémoire centrale :
INCLUDEPICTURE "../../../../../../Administrateur/Bureau/Exercice-SE/Programmation%20systèmes%2007_fichiers/progsys07_01.png" \* MERGEFORMAT
Représenter l'évolution de la mémoire centrale en fonction de l'arrivée des évènements suivants :
1 - Arrivée du programme G (20 K)2 - Départ du programme B3 - Arrivée du programme H (15 K)4 - Départ du programme E5 - Arrivée du programme I (40 K)
Exercice 2
Pagination
Soit la liste des pages virtuelles référencées aux instants t = 1, 2, ..., 11 :
3 5 6 8 3 9 6 12 3 6 10
La mémoire centrale est composée de 4 cases initialement vides.
Représentez l'évolution de la mémoire centrale au fur et à mesure des accès pour chacune des deux politiques de remplacement de pages FIFO et LRU. Notez les défauts de pages éventuels.
Un programme a besoin de 5 pages virtuelles numérotées 0 à 4. Au cours de son déroulement, il utilise les pages dans l'ordre suivant : 012301401234
Question :
S'il reste 3 pages libre en mémoire, indiquer la séquence des défauts de page, sachant que l'algorithme de remplacement est FIFO,
Même question avec 4 pages disponibles en mémoire. Observation ?
Soit la table de pages suivante :
INCLUDEPICTURE "../../../../../../Administrateur/Bureau/Exercice-SE/B_%20Dupouy%20Exercices%20Systemes%20d'exploitation_fichiers/Exercices_BCI4.gif" \* MERGEFORMAT
Sachant que les pages virtuelles et physiques font 1K octets, quelle est l'adresse mémoire correspondant à chacune des adresses virtuelles suivantes codées en hexadécimal : 142A et 0AF1
Exercice 3
Temps d'accès effectif
Sur un système qui a recours à la mémoire paginée à la demande, il faut 200 ns pour satisfaire une requête mémoire si la page reste en mémoire. Si tel n'est pas le cas, la requête prend 7 ms si un cache libre est disponible ou si la page à extraire n'a pas été modifiée. Il faut par contre 15 ms si la page à extraire a été modifiée.
Quel est le temps d'accès effectif si le taux de défaut de page est de 5 % et que, 60 % du temps, la page à remplacer a été modifiée ?
Exercice 4
Lalgorithme LRU est théoriquement excellent à la fois pour le cache du système de fichiers et pour le remplacement de page en mémoire virtuelle. Cependant, de nombreux systèmes dexploitation lutilisent uniquement pour le système de fichiers et préfèrent des algorithmes de « compromis », donnant des taux de fautes de pages plus élevés que LRU, pour gérer les pages de mémoire virtuelle. Pouvez-vous expliquer les raisons de ce choix, et pourquoi LRU est utilisable pour le cache du système de fichiers ?
Exercice 5
Soit un système disposant de 16 Mo de mémoire physique, utilisant une taille de page de 1 Mo. Quatre processus, numérotés de 1 à 4, tournent sous ce système, dans cet ordre. Chacun de ces processus peut demander laccès et retenir jusquà 8 pages, numérotées de 1 à 8. Pendant lexécution, chacun deux demande un accès à des pages mémoires, suivant le tableau ci-après :
Numéro de pageProcessus 11234565512341234Processus 22342342323232323Processus 31234123412221661Processus 45656116618885151
Supposons que les processus soient ordonnés par lalgorithme du tourniquet avec un quantum de temps tel quil y ait 4 accès mémoire par quantum. Est-il possible dexécuter les processus sans quaucun deux soit suspendu ?
Exercice 6 : Fragmentation
Quel est le problème principal de la fragmentation ?
Que risque-t-il de se passer pour la mémoire libre, vis-à-vis de la fragmentation, quand on alloue des blocs de mémoire ? Quel problème cela pose-t-il ?
Existe-il un problème de fragmentation avec les partitions de tailles fixes ?
Peut-on autoriser une zone de données à être séparée en mémoire ? Quel effet cela a-t-il sur lefficacité du système ?
SYNCHRONISATION ET COMMUNICATION
Synchronisation : le coiffeur
Une illustration classique du problème de la synchronisation est celui du salon de coiffure.
Dans le salon de coiffure, il y a un coiffeur C, un fauteuil F dans lequel se met le client pour être coiffé et N sièges pour attendre.
S'il n'a pas de clients, le coiffeur C somnole dans le fauteuil F.
Quand un client arrive et que le coiffeur C dort, il le réveille, C se lève. Le client s'assied dans F et se fait coiffer.
Si un client arrive pendant que le coiffeur travaille :
si un des N sièges est libre, il s'assied et attend,
sinon il ressort.
En considérant que vous êtes devant un système dexploitation, décrivez les différents éléments ci-dessus présentés.
La SCNF a reçu un grand nombre de réclamations pour un problème lié aux réservations et qui se produisait par grande affluence. Chaque train a un nombre limité de places. Supposons quun voyageur décide de changer de train. Sil commence par annuler la réservation pour le premier train et que le second soit plein, il risque de ne plus retrouver de place dans le train quil vient dannuler. Cela peut arriver si un autre voyageur réserve pour le premier train dans lintervalle. La SNCF souhaite donc mettre en place un système de permutation de réservation, permettant à un voyageur de changer de billet sans perdre son trajet initial.
Décrire par vos propres expressions la solution à implémenter.
Ordonnancement
Soit TS le temps de service d'un travail, c'est à dire le temps écoulé entre la soumission du travail et sa fin. On considère un système de traitement séquentiel (batch) dans lequel quatre travaux arrivent dans l'ordre suivant :
NO du travail Instant d'arrivée Durée
1 0 8
2 1 4
3 2 9
4 3 5
Donner le TS moyen dans le cas où l'on adopte la politique PAPS (Premier Arrivé, Premier Servi, ou encore FCFS, Fist Come Fisrt Served )
Donner le TS moyen dans le cas où l'on adopte la politique préemptive : PCA (le plus court d'abord, ou encore SJN, Shortest Job Next)
Voici ci-dessous une représentation. Expliquez ce dessin (1/2 page)
INCLUDEPICTURE "../../../../../../Administrateur/Mes%20documents/langage%20C/Gestion%20de%20la%20mémoire%20centrale_fichiers/gestio00.gif" \* MERGEFORMAT
On dispose dune machine équipée dun système de page à la demande. Lespace mémoire centrale disponible pour les processus est de 800Ko. Un défaut de page entraîne le blocage du processus en attente de page pendant en moyenne 50 millisecondes.
Les caractéristiques moyennes des programmes de linstallation sont les suivantes :
Lorsquun programme est exécuté seul, dans 800 Ko de Mémoire, il ny a pas de défaut de page, il utilise 40 secondes dUnité Centrale, et attend ses entrées-sorties pendant 60 secondes.
Lorsquil est exécuté dans un espace mémoire réduit, les nombres de défaut de page sont les suivants :
Espace mémoire 100 Ko 200 Ko 400 Ko
Défauts de page 10000 2500 1000
On répartit équitablement lespace mémoire centrale disponible entre 2, puis 4 et ensuite 8 processus. Donner dans chaque cas le taux dattente pour entrées-sorties, et en déduire le taux dactivité du processeur.
Quels commentaires cela vous suggère-t-il, selon que vous preniez le point de vue de lutilisateur, ou le point de vue du chef dexploitation ?
Les compatibles PC sont équipés de microprocesseurs de la famille 8088/286. Lors de la mise sous tension, ces microprocesseurs forcent le compteur ordinal à une valeur prédéfinie (0FFFF0 en hexadécimal), et exécutent donc linstruction située à cet endroit en mémoire.
Expliquer comment, à votre avis, les constructeurs réussissent à obtenir que, lors de la mise en route par lutilisateur, le compatible PC charge automatiquement le système MS-DOS depuis une disquette ou depuis le disque dur.
La solution adoptée pour résoudre a), ne permettrait-elle pas déviter de charger MS-DOS ? Quel est lintérêt alors de ce chargement ?
Linux a un noyau monolithique. Vrai ou Faux ?
Quelle est la réponse juste parmi les réponses ci-dessous ?
Le pseudo-parallélisme cest lorsque le processeur exécute un programme pendant un instant puis un autre pendant une durée dexécution assez petite.
Le pseudo-parallélisme cest lexécution simultané deux programme sur le même processeur.
Le pseudo-parallélisme cest lexécution des processus dun programme sur plusieurs processeurs
Quand on parle defficacité, pour un ordonnanceur, à quoi se réfère-t-on ?
Donnez un exemple où un processus a besoin davoir accès aux fonctionnalités du système dexploitation. Pourquoi passe-t-on par le système dexploitation pour faire de telles actions, et pourquoi le processus ne les fait-il pas directement ? Comment invoque-t-on une fonctionnalité du système dexploitation ?
Le graphe dallocation de ressources pour un système à un moment donné est le suivant :
R1 R2 R3
R5 R4
Y a-t-il risque dinterblocage en ce moment ? Si oui, justifier. Si non, modifier ce graphe en ajoutant une flèche pour que le risque dinterblocage existe.
On considère un système composé de quatre ressources identiques qui sont partagées par trois processus. Chacun des processus utilise, au plus deux ressources. Montrez quun deadlock est impossible dans un tel système.
Six étudiants viennent voir lenseignant Nicolas. Nicolas dispose dune heure pour discuter avec les étudiants et passer dun étudiant à un autre lui prend une minute. La table suivante donne lordre darrivée des étudiants et le temps dont ils ont besoin. Les étudiants arrivent tous au même moment.
EtudiantOrdre darrivéeTemps requisE1145 minE2215 minE3310 minE445 minE556 minE6620 min
Sachant que Nicolas ne peut consacrer en tout quune heure à lensemble des étudiants, quels est lalgorithme dordonnancement qui lui permettra de traiter le plus détudiants complètement. Justifier votre réponse par un diagramme de Gant.
premier arrivé, premier servi
le plus court dabord
tourniquet (quantum=5mn, lintervalle de 1 min reste valable même si Nicolas reste avec le même étudiant pendant 2 quantums de suite).
Un ordonnancement de type tourniquet peut utiliser différents quantums. Donner une raison dutiliser un petit quantum ainsi quune raison dutiliser un grand quantum.
On choisit un quantum de telle manière quil soit plus long que nimporte quel processus. Quel sera leffet résultant de ce choix ?
Considérons maintenant que Nicolas a tout son temps. Donner le diagramme de Gantt et le temps moyen dexécution pour un ordonnancement de type tourniquet avec priorités. Chaque fois quun étudiant quitte le professeur à la fin de son quantum de temps, on recalcule sa priorité. Priorité Nouvelle = Priorité Initiale - (Temps processeur utilisé) / 10
Voici le nouveau table au darrivée et de priorité des étudiants.
EtudiantDate arrivéeTemps requisPrioritéE1045 min1E2515 min2E3510 min3E6520 min1E4105 min2E5106 min2
Interruption
Quel est lintérêt des interruptions pour le système dexploitation ? Pouvez-vous donner un exemple dinterruption logiciel ?
Le simulateur Nachos, bien que très réaliste sur de nombreux aspects, introduit tout de même plusieurs simplifications par rapport aux systèmes dexploitations réels. En particulier, la protection des régions de code nécessitant un accès en exclusion mutuelle seffectue dans Nachos en masquant les interruptions pendant toute la durée du traitement (au moyen de linstruction interrupt->SetLevel(IntOff)). En voici une illustration avec le code de la primitive Semaphore::V() :
HYPERLINK "http://3.bp.blogspot.com/_LxUaQO3IvbY/TLOAXwbn9rI/AAAAAAAABDc/Bfyq-LDKndM/s1600/se7.PNG" INCLUDEPICTURE "http://3.bp.blogspot.com/_LxUaQO3IvbY/TLOAXwbn9rI/AAAAAAAABDc/Bfyq-LDKndM/s400/se7.PNG" \* MERGEFORMATINET
Expliquez pourquoi, sur une machine multiprocesseur, une telle stratégie ne fonctionnerait pas.
Quel mécanisme de bas niveau peut-on utiliser dans les noyaux pour protéger laccès à des portions de code très courtes ? Décrivez précisément une situation o`u cette utilisation peut conduire à de très mauvaise performances (pensez à des processus sexécutant sur le même processeur).
Expliquez comment, en utilisant conjointement le mécanisme précédent et le masquage des interruptions, on pourrait résoudre ce problème (on ne demande pas décrire du code précis).
PAGE
PAGE 5