Vous êtes sur la page 1sur 8

TRAVAUX DIRIGES Numéro 1

SR3
Chapitre 1 : Introduction aux SE

1- Qu’est-ce que la multiprogrammation ?

2- Sur les premiers ordinateurs, chaque octet de données lu ou écrit était géré par l’UC.
Quelles conséquences cela a-t-il sur la multiprogrammation ?

3- Plusieurs objectifs guident la conception d’un système d’exploitation, comme la bonne


utilisation des ressources, la robustesse, la gestion du temps, etc. Donnez en exemple
deux objectifs qui peuvent être en contradiction avec un autre ?

4- Considérez un ordinateur doté de deux processeurs, chacun disposant de deux threads


(hyperthreading). Supposez que trois programmes, P0, P1 et P2, sont lancés ave des
temps d’exécution de 5, 10 et 20 ms. Combien de temps mettre cet ordinateur pour
exécuter globalement ces trois programmes ? Considérez que ces programmes sont
100% en mémoire, qu’il n’y a pas de blocage pendant l’exécution et qu’il n’y a pas de
changement de processeur une fois qu’il est assigné

.
5- Un ordinateur possède un pipeline à quatre niveaux. Chaque niveau met le même temps
(1ns) à s’exécuter. Combien d’instructions par seconde cette machine peut-elle
exécuter ?

6- Considérez un ordinateur qui dispose d’un système de cache, d’une mémoire centrale et
d’un disque. Son système d’exploitation met en œuvre la mémoire virtuelle. Il faut 2 ns
pour accéder à un mot dans le cache, 10 ns pour accéder à un mot en mémoire centrale
et 10 ms pour accéder à un mot sur le disque. Sachant que le taux de succès du cache
est de 95%, et celui de la mémoire centrale de 99%, quel est le temps moyen d’accès à
un mot ?

7- Qu’est-ce qu’une instruction de déroutement ? Expliquer son utilisation dans les


systèmes d’exploitation ?

8- Quelle est la différence majeure entre un déroutement et une interruption ?

9- Pourquoi une table de processus est-elle nécessaire dans un système à temps partagé ?
Est-elle également requise dans un système personnel où un seul processus existe, avec
accès à toute la machine durant l’exécution ?

10- Quel est le rôle d’un appel système dans système d’exploitation ?

11- On dit qu’un système d’exploitation est portable s’il peut être porté (installé) sur une
machine ou sur une autre sans modification. Expliquez pourquoi il est impossible de
concevoir un système d’exploitation qui soit totalement portable. Décrivez deux
couches de haut niveau à concevoir pour avoir un Système d’exploitation à haut degré
de portabilité.

Chapitre 2 : Gestion des processus

1- Sur tous les ordinateurs actuels, au moins une partie du gestionnaire d’interruptions écrit
en langage d’assemblage. Pourquoi ?

2- Lorsqu’une interruption ou un appel système transfèrent le contrôle au système


d’exploitation, on utilise généralement une zone de la pile du noyau distincte de la pile
du processus interrompu. Pourquoi ?
3- Lorsque plusieurs jobs s’exécutent en parallèle, ils peuvent se terminer plus vite que
s’ils s’exécutent en série. Supposons que deux jobs qui nécessitent chacune 10 min de
temps UC démarrent simultanément. Combien de temps cela va-t-il prendre s’ils
s’exécutent en parallèle en supposant qu’il y ait 50 % de temps d’attente E/S ?

4- Si un processus multithread fait un fork, un problème se produit si le fils récupère une


copie de tous les threads du parent. Supposons que l’un ds threads d’origine ait été dans
l’attente des entrées clavier, un dans chaque processus. Ce problème peut-il se produire
dans les processus monothreads ?

5- Pour quel raison un thread céderait-il volontairement le processeur en appelant


thread_yield ? Après tout, étant donné qu’il n’y a pas d’interruption d’horloge
périodique, il risque de ne plus jamais récupérer le temps processeur ?

6- Un thread peut-il être préempté pendant une interruption d’horloge ? si oui pour qu’elle
raison ? Sinon pourquoi ?

7- Quel est le principal intérêt d’implémenter les threads dans l’espace utilisateur ? Et quel
en est le l’inconvénient majeur ?

8- Dans un système comprenant des threads, trouve-t-on une pile par threads ou une pile
par processus lorsqu’il s’agit de threads utilisateur ? Que se passe-t-il lorsque l’on utilise
des threads noyau ? expliquez ?

9- Cinq jobs sont en attente d’exécution. Leurs délais d’exécution sont respectivement de
9, 6, 3, 5, et X minutes. Dans quel ordre faut-il les exécuter pour réduire le temps de
réponse moyen ? Votre réponse dépendra de X.

10- Cinq jobs de traitement par lots, de A à E arrivent dans un centre informatique
pratiquement au même instant. Leurs délais d’exécution respectifs sont de 10, 6, 2, 4 et
de 8 minutes. Leurs priorités respectivement sont de 3, 5, 2,1 et de 4.
Pour chacun des algorithmes d’ordonnancement suivants, déterminez le délai de
rotation moyen des processus. Ignorez la surcharge engendrée par les changements de
processus.
 Round-robin ;
 Ordonnancement par priorités ;
 Premier arrivé, premier servi (exécutez dans l’ordre 10, 6, 2, 4, 8) ;
 Job le plus court en premier.

Pour (a), partez du principe que le système est multiprogrammé et que chaque job
récupère une partie équitable de temps processeur. Pour (b) à (d), supposez qu’un seul
job est exécuté à la fois, jusqu’à ce qu’il se termine. Tous les jobs sont entièrement
dépendants e l’UC.

11- Un processus s’exécutant sur CTSS a besoin de 30 Quanta pour s’achever. Combien de
fois doit-il être échangé, en comptant la toute première fois (avant sa première
exécution) ?

12- Un système temps réel ave tolérance a quatre événements périodiques, avec des périodes
de 50, 100, 200, et 250 ms chacun. Supposons que les quatre événements aient besoin
respectivement de 35, 20, 1à, et de x ms de temps processeur. Quelle est la valeur de x
la plus important pour laquelle il est possible d’ordonnancer le système ?

13- Expliquez pourquoi on exploite souvent l’ordonnancement à deux niveaux ?

14- Un système temps réel doit gérer deux communications vocales qui toutes les 5 ms
consomment 1ms d’UC ainsi qu’un flux vidéo à 25 trames par seconde, le traitement de
chaque trame nécessite 20 ms d’UC. Est-il possible d’ordonnancer un tel système ?

15- Les mesures prélevées sur un système donné ont montré que la durée moyenne
d’exécution d’un processus était de T avant que ne se produise un blocage sur les E/S.
Un changement de processus a besoin d’un délai S que l’on peut considérer comme une
perte de temps. Pour un algorithme de type tourniquet ave un quantum Q, donnez une
formulé pour exprimer l’efficacité de l’UC pour chacun des cas suivant
 Q=8
 Q>T
 Q<S<T
 Q=S
 Q proche de 0

Chapitre 3 : La gestion de la mémoire

1- Un système de va –et-vient élimine la fragmentation externe grâce au compactage.


Supposons une distribution aléatoire de nombreux vide et de nombreuses zones de
données et un temps de lecture ou d’écriture de 10 ns pour un mot mémoire de 32 bits.
Combien de temps processeur sera nécessaire pour compacter 128 Mo ? Pour simplifier,
nous supposons que le mot d’adresse 0 fait partie d’une zone vide et que le mot le plus
haut dans la mémoire contient une donnée valide.

2- Dans ce problème, vous devez comparer l’espace de stockage nécessaire pour


mémoriser la mémoire libre, d’une part avec une table de bits, d’autre part avec une liste
chainée. La mémoire de 128 est allouée par unité de n octets. Pour la liste chainée, nous
supposons que la mémoire est constituée de segments de 64 Ko en alternance avec des
zones vides de taille identique. Nous admettons également que chaque nœud de cette
liste nécessite une adresse mémoire de 32 bits, une longueur de 16 bits pour a prochaine
nœud. Quelle est la taille de stockage nécessaire pour chaque méthode ? Laquelle est la
meilleure ?

3- Considérons un système de va—et-vient dans lequel la mémoire est constituée par une
succession de zones vides dans l’ordre suivant : 10 Ko, 4Ko, 20 Ko, 18 Ko, 7Ko, 9Ko,
12Ko, 15Ko. Quelle zone sera prise pour les requêtes de segments successives
suivantes :
 12 Ko ;
 10 Ko ;
 9 Ko

Pour la première zone libre (first fit) ? Répondez également à cette question pour le
meilleur ajustement (best fit), le plus grand résidu (worst fit ) et la zone suivante (next
fit).

4- Pour chacune des adresses virtuelles décimales suivantes, donnez le numéro de page
virtuelle et le déplacement pour des pages de 4 Ko et de 8Ko : 20000, 32768 et 60000.

5- Soit le programme C suivant :


Int X[N]
Int step = M ;
For (int i = 0 ; i < N ; i += step ) X[i] = X[N]+1 ;

 Si ce programme s’exécute sur une machine avec une taille de pages de 4 Ko et


un TLB à 64 entrées, pour quelles valeurs de M et de N aura-t-on un échec de
TLB à chaque exécution de la boucle interne ?
 La réponse à (a) serait-elle différente si la boucle était répétée de nombreuses
fois ? Expliquez.

6- Une machine possède un espace d’adressage de 32 bits et des pages de 8 ko. La table
des pages, entièrement matérielle, est constituée d’un mot de 32 bits par entrée.
Lorsqu’un processus démarre, la table des pages est copiée en mémoire principale, à
raison d’un mot toutes les 100 ms (incluant le temps de chargement de la table), quelle
fraction du temps UC est réservée au chargement des tables ?

7- Une machine a des adresses virtuelles sur 48 bits et des adresses physiques sur 32 bits.
 Si les pages font 4 ko, combien d’entrées y a-t-il dans la table des pages pour
une pagination à un niveau ? Expliquez.
 La machine à un TLB de 32 entrées. Imaginons un programme dont les
instructions tiennent sur une page et qui lit séquentiellement des longs entiers
dans un tableau qui s’étend sur des milliers de pages. Le TLB est-il alors un
mécanisme efficace ?

8- Un ordinateur ayant des adresses 32 bits utilise une table des pages à deux niveaux. Les
adresses virtuelles sont trois parties : un champ de 9 bits qui représente le premier
niveau, un champ de 11 bits qui représente le second niveau, et un déplacement. De
quelle taille sont les pages ? Combien en existe-t-il dans l’espace d’adressage ?

9- Supposons qu’une adresse virtuelle de 32 bits soit divisée en 4 champs : a, b, c et d. les


premiers sont utilisées pour une table des pages à trois niveaux. Le quatrième champ, d,
est le déplacement (offset). Le nombre de pages dépend-il de la taille des 4 champs ?

10- Supposons que, pour un certain programme, la suite des références à la mémoire
contienne des répétitions de longues séquences de numéros de pages suivis de temps à
autre par un numéro aléatoire. Par exemple 0, 1, …, 511, 431, 0, 1, …, 511, 332, 0, 1,
… contient la répétition de la suite 0, 1, …, 511 suivie d’une référence aléatoire aux
pages 431 et 332.
 Pourquoi, dans le cas où l’allocation de pages est inférieure à la longueur de la
séquence, les algorithmes de remplacement classiques (LRU, FIFO, horloge)
fonctionneront-ils mal ?
 Si on alloue à ce programme 500 cases mémoire, trouvez un algorithme de
remplacement qui fonctionnerait mieux que le LRU, FIFO ou horloge.

11- Si l’algorithme FIFO est utilisé avec 4 cases mémoires et 8 pages, combien de défauts
de pages produiront avec la chaîne de références 0 1 7 2 3 2 7 1 0 3, si les 4 cases sont
initialement vides ? Refaites l’exercice ave l’algorithme LRU.

12- Combien de temps faudra-t-il pour charger un programme de 64 Ko depuis un disque


dont le temps moyen de recherche est de 10 ms et le temps de rotation de 10 ms, et dont
les pistes font 32 Ko :
 Pour des pages de 2Ko ?
 Pour des pages de 4 Ko ?
On considère que les pages sont aléatoirement réparties sur le disque et que la probabilité
que deux pages soient sur le même cylindre est négligeable.