Le blocage
L’inter blocage
L’ordonnancement
Avec ou sans priorité
Processus – Processus Léger
Version 1.0
Last update: 13/08/2018
Use: internal
Author: Cyril Alexandre Pachon
1OSS – LABS – CORRECTION
Systèmes d’exploitation
SOMMAIRE
Page 2 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
SOLUTION
Appel système : Une fonction fournie par un noyau système. Le système contrôle de façon sécurisée les applications.
Le rôle du noyau est de gérer les ressources et de donner aux programmes une interface uniforme pour l'accès à ces
ressources. Des appels systèmes :
1. open, read, write et close manipulations sur les systèmes de fichiers,
2. alloc, free pour allouer et désallouer de la mémoire.
Commutation de contexte : consiste à sauvegarder l'état d'un processus ou d'un processus léger et à restaurer l'état
d'un autre processus (léger).
Programme : Ensemble d’instruction permettant une réalisation
Processus : Système organisé qui utilise des ressources (machines, informations) pour exécuter une tâche.
Thread ou processus léger, est similaire à un processus, ne contenant que des informations propre au thread
SOLUTION
Un système d’exploitation doit proposer une machine virtuelle aux utilisateurs. Il doit également gérer les
périphériques d’E/S et les autres ressources systèmes.
3. Parmi ces instructions, lesquelles ne devraient être autorisées qu’en mode noyau ?
a. Désarmer toutes les interruptions.
b. Lire l’horloge donnant la date.
c. Ecrire l’horloge donnant la date.
d. Changer la carte de l’espace d’adressage
SOLUTION
Les choix a, c, d doivent être limités au mode noyau.
Page 3 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
SOLUTION
Mode utilisateur
Mode Noyau
Services exécutifs
Noyau Gestionnaire Gestionnaire Gestionnaire
d’entrées/sorties de mémoire de
processus
Pilote de périphériques
Matériel
SOLUTION
Noyau : Ensemble de routines (fonctions fondamentales) gérant le microprocesseur. Il coordonne le travail des
modules de l’exécutif. Avec le noyau, les entrées/sorties sont prises en charges par le processeur. Le noyau permet
alternance des processus = ordonnanceur chapitre suivant.
SOLUTION
Les interruptions sont définies pour les situations ou un programme est en cours de traitement, et qu’une demande
extérieure au programme, nécessite un traitement urgent.
SOLUTION
Interruption : aléas survenant au cours d'une exécution dans un microprocesseur,
Page 4 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
Les interruptions externes sont liées aux périphériques pour contrôler leur comportement par le processeur : Les
interruptions (IT) peuvent résulter d'une demande d'E/S, de la présence de données (un caractère due à une touche du
clavier), l'ouverture d’un lecteur de disque (qui provoque l'arrêt de l'unité).
Les interruptions internes sont faites par le fonctionnement de la machine, elles permettent la diffusion
d'information entre deux composants différents, ou d'activer un composant.
L’IT Horloge : laisse exécuter un programme normalement jusqu'à expiration d'un délai préfixé.
L’IT de débordements (Overflow) pour limiter les valeurs des entiers, des réels, des mantisses, des
exposants,...
L’IT de protection de la mémoire pour limiter les adressages hors zones métriques définies (zones
interdites), …
L’IT de code d’opération inconnu pour stopper l’exécution d’une instruction dont le code n'existe pas
(c'est souvent une donnée...). (Pour cette architecture se sont les Traps)
L’IT des pannes matérielles comme la coupure de courant impliquant la sauvegarde immédiate des
données importantes sur disque en utilisant les condensateurs qui assurent une autonomie de quelques
secondes.
3. Dans quelles situations les interruptions vont-elles être efficaces et rendre services à l’utilisateur ?
SOLUTION
Un programme boucle indéfiniment, l’intervention extérieure (par exemple Cltr C) est une interruption pour le
système pour stopper le processus sur le processeur.
Erreur d’algorithme dans le processus en (par exemple une division par 0). Le processus doit être détruit, car son
exécution est anormale. Dans les langages de programmation, cette erreur peut être traitée par le programmeur,
avec un traitement sécurisé.
Lors d’un problème sur un périphérique. Par exemple, s’il manque du papier pour une impression (le processus
en cours est soit une routine interne d’impression, soit une demande d’impression d’un utilisateur), il faut une
interruption pour faire une demande de recharge de papier.
Certains processus évoluent en temps-réel. Il faut donc des systèmes d’interruption pour contrôler et maitriser
les erreurs.
SOLUTION
sans interruptions (activation explicite) : le programme comporte des instructions de test pour éviter les erreurs
relatives à des interruptions.
avec interruptions (activation matériel) : Les programmes peuvent avoir des modules différents, imbriqués ou
liés sans tenir comptes des erreurs. La protection se fait par les routines d’interruption qui protègent la machine.
Page 5 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
SOLUTION
Page 6 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
SOLUTION
Ce schéma illustre le déroulement des opérations d'ordonnancement avec deux processus P0 et P1.
1 - Initialement le processus P0 est élu et s'exécute.
2- Le processus P1 est dans l'état prêt.
3 - Le processus P0 fait un appel système : il y a commutation de contexte avec changement de protection pour aller
exécuter le code de l'appel système (passage en mode superviseur) au cours duquel le processus P0 se bloque.
4 - Il y a une opération d'élection et le processus P1 est élu : le contexte processeur associé au processus P0 est
sauvegardé dans le PCB du processus P0 (PCB0) et le processeur est chargé avec le PCB du processus 1 (PCB1).
5 - Le processus P1 commence alors son exécution.
6 - Au cours de cette exécution, le processus P0 obtient la ressource demandée au cours de son appel système et
dont l'indisponibilité l'avait bloqué, et donc repasse dans l'état prêt.
7 - Une interruption survient : il y a commutation de contexte avec changement de protection pour aller exécuter le
code de l'interruption (passage en mode superviseur).
8 - A la fin du traitement de l'interruption, une opération d'ordonnancement est lancée : le processus P0 est de
nouveau élu : le contexte processeur associé au processus P1 est sauvegardé dans le PCB du processus P1 (PCB1) et le
processeur est chargé avec le PCB du processus 0 (PCB0).
2 TP2 – ORDONNANCEMENT
2.1 TP2-1 – POLITIQUES D’ORDONNANCEMENT
1. Nous considérons 5 processus numérotés de P1 à P5 dont les caractéristiques sont résumées dans le
tableau suivant :
Processus Date d’arrivée Temps d’exécution
P1 0 5
P2 0 5
P3 0 9
P4 0 14
P5 0 1
Page 7 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
SOLUTION
-POLITIQUE : Premier arrivé, premier servi
: ORDE : P1, P2, P3, P4, P5
: Temps d’attente P1=0, P2=5, P3=10, P4= 19, P5=33
: Temps de séjour P1=5, P2=10, P3=19, P4=33, P5=34
: Temps moyen de séjour (5+10+19+33+34)/5 = 20,2
: Temps moyen d’attente (0+5+10+19+33)/5 = 13,4
: Tableau de Gantt :
Temps T18 T19 T20 T21 T22 T23 T24 T25 T26 T27 T28 T29 T30 T31 T32 T33
Processus 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
: Taux : 100%
Temps T18 T19 T20 T21 T22 T23 T24 T25 T26 T27 T28 T29 T30 T31 T32 T33
Processus 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4
: Taux : 100%
Temps T18 T19 T20 T21 T22 T23 T24 T25 T26 T27 T28 T29 T30 T31 T32 T33
Processus 2 3 3 4 4 3 3 4 4 3 4 4 4 4 4 4
: Taux : 100%
Page 8 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
Temps T18 T19 T20 T21 T22 T23 T24 T25 T26 T27 T28 T29 T30 T31 T32 T33
Processus 3 3 4 4 4 3 3 3 4 4 4 4 4 4 4 4
: Taux : 100%
2.Nous considérons 5 processus numérotés de P1 à P5 dont les caractéristiques sont résumées dans le
tableau suivant :
Processus Date d’arrivée Temps d’exécution
P1 0 2
P2 0 6
P3 0 10
P4 0 4
P5 0 12
Exécutez les politiques d’ordonnancement :
FCFS (First come First served) ou FIFO (First in First out)
1 Exprimez le temps de séjour de chaque processus
2 Exprimez le temps d’attente de chaque processus
3 Exprimez le temps moyen de séjour
4 Exprimez le temps moyen d’attente
5 Exprimez par un diagramme de Gantt (un tableau d’ordonnancement)
6 Combien de changement de contexte
SOLUTION
-POLITIQUE : Premier arrivé, premier servi
: ORDE : P1, P2, P3, P4, P5
: Temps d’attente P1=0, P2=2, P3=8, P4= 18, P5=22
: Temps de séjour P1=2, P2=8, P3=18, P4=22, P5=34, (8 = 2 + 6, 18 = 8 + 10, …)
: Temps moyen de séjour (2+8+18+22+34)/5 = 16,8
: Temps moyen d’attente (0+2+8+18+22)/5 = 10
Temps T18 T19 T20 T21 T22 T23 T24 T25 T26 T27 T28 T29 T30 T31 T32 T33
Processus 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5
5 changements de contextes. Nous supposons initialement que le processeur n’était pas en train de traiter le
processus P1. Donc Init P1 P2 P3 P4 P5.
Page 9 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
Temps T18 T19 T20 T21 T22 T23 T24 T25 T26 T27 T28 T29 T30 T31 T32 T33
Processus 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5
5 changements de contextes. Nous supposons initialement que le processeur n’était pas en train de traiter le
processus P1. Donc Init P1 P2 P3 P4 P5.
SOLUTION
-POLITIQUE : Par priorité
: ORDE : P4, P2, P3, P1, P5
: Temps d’attente P1=20, P2=4, P3=10, P4= 0, P5=22
: Temps de séjour P1=22, P2=10, P3=20, P4=4, P5=34,
: Temps moyen de séjour (22+10+20+4+34)/5 = 18
: Temps moyen d’attente (20+4+10+0+22)/5 = 11.2
Temps T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 T17
Processus 4 4 4 4 2 2 2 2 2 2 3 3 3 3 3 3 3 3
Temps T18 T19 T20 T21 T22 T23 T24 T25 T26 T27 T28 T29 T30 T31 T32 T33
Processus 3 3 1 1 5 5 5 5 5 5 5 5 5 5 5 5
5 changements de contextes. Nous supposons initialement que le processeur n’était pas en train de traiter le
processus P4. Donc Init P4 P2 P3 P1 P5.
Page 10 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
Temps T18 T19 T20 T21 T22 T23 T24 T25 T26 T27 T28 T29 T30 T31 T32 T33
Processus 2 2 3 3 5 5 3 3 5 5 3 3 5 5 5 5
16 changements de contextes Nous supposons initialement que le processeur n’était pas en train de traiter le
processus P1. Donc Init P1 P2 P3 P4 P5 P2 P3 P4 P5 P2 P3 P5 P3 P5 P3 P5.
En respectant un ordre différent pour les processus :
Temps de séjour moyen = 20.8
Temps moyen d’attente = 14
2. Nous considérons 5 processus numérotés de P1 à P5 dont les caractéristiques sont résumées dans le
tableau suivant :
Processus Date d’arrivée Temps d’exécution Priorité
P1 2 2 1
P2 4 6 4
P3 5 3 2
P4 0 4 5
P5 0 7 3
Le 1 est la priorité la plus forte et le 5 la plus faible
Donnez l’ordre de service des processus et le temps de réponse moyen obtenu dans le cas :
1. D’un ordonnancement par priorité non préemptif
2. D’un ordonnancement par priorité préemptif
3. D’un ordonnancement par tourniquet avec un quantum de temps égal à 2 unités
SOLUTION
D’un ordonnancement par priorité non préemptif
P5 (7) P1(2) P3(3) P2(6) P4(4)
Temps moyen d’attente : (5 + 0 + 4 + 18 + 8)/5
(P5(0) + P1(5) +P3(4) + P2(8) + P4(18)) / 5 = 7 UT
Temps de séjour
7 + 9 +12 + 18 + 22 / 5 = 13,6 UT
Page 11 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
Les processus P3 et P4 suivent un fonctionnement de tourniquet. Le processeur est donné au processus pour un
quantum de temps égal à 1 UT.
Les caractéristiques de P3 et P4 sont les suivantes :
1. Donnez quelles sont toutes les ressources partagées par les processus ?
SOLUTION
Deux ressources : Un disque et un processeur.
Page 12 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
2. Expliquez dans le détail les deux systèmes de fonctionnement de P1, P2 d’une part de P3, P4 d’autre
part.
SOLUTION
P1 et P2 : Pour la ressource processeur, Les processus peuvent être interrompus par un autre processus du même
système premier arrivé premier servi ayant une priorité supérieure. Ils ne sont pas interrompus par d’autre catégorie de
processus. Pour la ressource disque nous n’avons pas de priorité et tous les processus sont dans la même file d’attente.
P3 et P4 : Pour la ressource processeur, les processus fonctionnent en tourniquet donc celui qui attend la ressource
en premier aura son quantum de 1UT. Si celui qui attend en premier n’a toujours pas eu son quantum au moment ou un
autre arrive dans la file d’attente, il reste prioritaire. Le plus ancien est toujours prioritaire. Pour la ressource disque nous
n’avons pas de priorité tous les processus sont dans la même file d’attente.
3. Donnez le temps total de gestion du processus P1 à savoir son temps de calcul + son temps d’entrées /
sorties + ses temps d’attentes. Détaillez.
SOLUTION
Le plus simple est de faire les diagrammes de Gantt de chaque processus. Nous sommes dans un mécanisme de
répartition Elu, Prêt, En attente (avec En attente = attente d’E/S puis cycle d’E/S sur le disque pour retourner dans
l’état Prêt). Donc, au début de l’ordonnancement, soit le processus est Elu, soit il est dans la file des Prêt. Dès que le
processus a fini sa phase de calcul, il passe dans l’état En attente (pour effectuer sa phase d’E/S). Le processus le plus
prioritaire est P1 qui prend directement le processeur, car il arrive en date 0 en même temps que P2 qui se place dans
la file des Prêt. Puis tous les autres processus (P3, P4) se placent dans la file des Prêt en arrivant à des dates décalées
et que le processeur est utilisé par P2. Puis les cycles fonctionnement commencent :
P1 Elu
Prêt
E/S D
Attente E/S D
P2 Elu
Prêt
E/S D
Attente E/S D
P3 Elu
Prêt
E/S D
Attente E/S D
P4 Elu
Prêt
E/S D
Attente E/S D
Le diagramme est numéroté de T0 T1 T2 … T34
Ne pas oublier que la gestion du disque se fait sur l’ancienneté et non pas sur la priorité, c’est pour cela qu’à T13, P3
passe avant P1 pour l’E/S du disque lorsque P2 quitte le disque (à ce moment P1 se met dans la file de En attente d’E/S du
disque).
Pour la gestion du tourniquet, pas de priorité entre les deux processus, ils ont donc tous les deux un quantum de 1UT.
Au Temps T20, P4 passe avant P3, car c’est l’ancienneté d’attente dans la file des Prêt qui prime et comme P4 attend
depuis plus longtemps que P3 (il en tête dans la file), il passe Elu.
Temps Elu : 3 + 4 + 1 = 8 UT
Temps d’E/S D : 5 + 4 = 9 UT
Page 13 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
4. Donnez le temps total de gestion du processus P2 à savoir son temps de calcul + son temps d’entrées /
sorties + ses temps d’attentes. Détaillez.
SOLUTION
Temps de calcul : 3 + 7 + 1 = 11 UT
Temps d’E/S D : 5 + 5 = 10 UT
Temps d’attente Prêt + E/S : 3 + (2 + 1) = 6 UT
Total : 11 + 10 + 6 = 27 UT
5. Donnez le temps total de gestion du processus P3 à savoir son temps de calcul + son temps d’entrées /
sorties + ses temps d’attentes. Détaillez.
SOLUTION
Temps de calcul : 1 + 1 + 1 + 1 + 1 + 1 = 6 UT
Temps d’E/S : 4 UT
Temps d’attente Prêt + E/S + Prêt : (4) + (6) + (5 + 1 + 2 + 1 + 1) = 20 UT
Total : 6 + 4 + 20 = 30 UT
6. Donnez le temps total de gestion du processus P4 à savoir son temps de calcul + ses temps d’attentes.
Détaillez.
SOLUTION
Temps de calcul : 1 + 1 + 1 + 1 + 1 + 1 + 1 + 3 = 10 UT
Temps d’attente Prêt : 2 + 4 + 7 + 2 + 1 + 2 + 1 + 1 = 20 UT
Total : 10 + 20 = 30 UT
Nous n’avons pas de Temps d’E/S à calculer car il n’en comporte pas dans le comportement deP4, donc pas de point
à attribuer.
7. Donnez le temps moyen d’attente pour les entrées / sorties disque, justifiez votre résultat.
SOLUTION
5 + (2 + 1) + 6 + 0 = 14 UT
Temps moyen pour 4 processus = 14/4 UT ou 3.5 UT
SOLUTION
0 + 3 + (4 + 5 + 1 + 2 + 1 + 1) + (2 + 4 + 7 + 2 + 1 + 2 + 1 + 1) = 37 UT
Temps moyen pour 4 processus = 37/4 UT ou 9.25 UT
SOLUTION
100% :
8 + 11 + 6 + 10 = 35 UT comme nous sommes numérotés de T0 à T34 nous avons bien 35UT 100%
Page 14 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
SOLUTION
La monoprogrammation met en mémoire qu'un seul programme. Ce programme a toute la mémoire (même s'il ne
l'utilise pas entièrement). L’ordonnancement est :
a. Chargement du programme,
b. Lancement de l’exécution,
c. attendre la fin de l’exécution,
d. Libération.
SOLUTION
La multiprogrammation est l’échange rapide du processeur entre plusieurs processus en mémoire. Elle sert
essentiellement à occuper le processeur pendant qu’un ou plusieurs processus exploitent l’E/S. La multiprogrammation
nécessite un mécanisme de protection pour lutter contre les erreurs. Le mécanisme doit protéger les utilisateurs et le
système contre les utilisateurs eux-mêmes, mais non perturber le système. Le système est réputé fiable.
3. Pourquoi une table de processus est-elle nécessaire dans un système à temps partagé ?
SOLUTION
La table de processus sert à stocker l’état du processus suspendu, qu’il soit prêt ou bloqué.
4. Une table de processus, est-elle également requise dans un système personnel où un seul processus existe,
avec accès à toute la machine durant son exécution ?
SOLUTION
Elle n’est pas nécessaire dans un système à processus unique, puisque celui-ci n’est jamais suspendu.
Page 15 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
SOLUTION
trn 1; C1, C2 : ENTIER
P1 P2
NC1: a2 (action quelconque 2) NC2: b2 (action quelconque 2)
C1 0; C2 0;
L1: a3 (action quelconque 3) L2: b3 (action quelconque 3)
si (C2 = 0) alors si (C1 = 0) alors
a4 (action quelconque 4) b4 (action quelconque 4)
si (trn = 1) alors si (trn = 2) alors
aller à L1; aller à L2;
sinon sinon
a6 (action quelconque 6) b6 (action quelconque 6)
C1 1; C2 1;
a8 (action quelconque 8) b8 (action quelconque 8)
ATT1 : tant que (trn = 2) faire; ATT2 : tant que (trn = 1) faire;
aller à NC1; aller à NC2;
fin si; fin si;
Page 16 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
sinon sinon
a5 (action quelconque 5) b5 (action quelconque 5)
crit1 ; crit2 ;
a7 (action quelconque 7) b7 (action quelconque 7)
trn 2 ; trn 1 ;
C1 1 ; C2 1 ;
aller à NC1; aller à NC2;
fin si ; fin si ;
C’est l’algorithme de Dekker
L’arbre des appels est le suivant en fonction des actions des C1, C2 et trn :
Page 17 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
PROCEDURE attendre()
DEBUT
VAR compteur 0 ;
Tantque (compteur /= 1000)
FAIRE
compteur compteur +1
Fin Tantque
Fin PROCDURE
Dans le code précédent verrou est l’adresse d’une variable partagée entre plusieurs processus. Expliquez si les
sections critiques des processus élus seront protégées ? Donnez un exemple d’exécution à l’aide de deux processus
nommés P1 et P2 pour affirmer vos explications ?
SOLUTION
Comme il est noté dans la question verrou est une variable partagée car nous faisons référence à son adresse.
Il ne s’agit pas de copie mais de la même variable.
Le problème est que le test de la variable verrou et de son affectation à la valeur OCCUPE s’entrelace avec l’exécution
d’autres processus (ce n’est pas atomique) donc pas de protection efficace des sections critiques.
Soit P1 et P2 utilisant EntrerDansSection, SortirDeSection. Nous pouvons faire le déroulement suivant :
P1 | P2
SI (verrou = LIBRE) |
| SI (verrou = LIBRE)
verrou OCCUPE |
Les processus P1 et P2 exécuteront leurs sections critiques sans exclusion. Donc ce programme ne garantit pas
l’exclusion mutuelle.
Page 18 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
Si tous les philosophes prennent en même temps leur fourchette i, il y a inter blocage.
SOLUTION
Semaphore mutex sem(1)
Fonction Philosophe i
Penser();
prendre_fourchette(i);
manger();
poser_fourchette(i);
Fonction Prendre_fourchette(i)
P(mutex);
état[i]FAIM;
test(i);
V(mutex);
P(s[i]); /* philosophe bloqué */
Fonction Poser_fourchette(i)
P(mutex);
état[i]PENSE;
test(GAUCHE);
test(DROITE);
V(mutex);
Page 19 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
Var
n : entier;
tous_présent : condition;
Procédure arriver;
Début
nn+1;
tous_présent.signaler;
fin;
Début
n0;
fin
SOLUTION
Moniteur Producteur/Consommateur
Var
Plein : booléen ;
Buffer : Caractère ;
Pr, Co : Condition
Buffer C,
Plein Vrai;
Co.Signaler ;
Fin
C Buffer;
Page 20 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
Plein Faux ;
Pr.Signaler
Fin
Début /* Initialisation */
Plein Faux
Fin
Processus Producteur
Début
Répéter
Construire(Message) ; /* instance de Producteur(C : caractère) */
Produire(Message) ;
Fin
Processus Consommateur
Début
Répéter
Consommer(Message) ; /* instance de Consommer(C : caractère) */
Afficher(Message) ;
Fin
4 TP4 – ARCHITECTURE
4.1 TP4-1 – GENERALITES
Que fait le système d’exploitation lors d’une pagination ?
SOLUTION
1. Le SE maintient une liste de toutes les cases disponibles.
2. La taille des programmes s’exprime en termes de case. Pour un programme de n cases le SE doit trouver n
cases disponibles.
3. La translation des adresses se fait par l’intermédiaire d’une translation maintenue par le SE
4. Par contre la fragmentation interne n’est pas résolue.
SOLUTION
FIFO :
T 1 2 3 4 5 6 7 8 9 10 11
bloc 4 6 7 9 4 10 7 12 4 7 11
Case :
1 4 4 4 4 4 10 10 10 10 10 11
2 6 6 6 6 6 6 12 12 12 12
3 7 7 7 7 7 7 4 4 4
4 9 9 9 9 9 9 7 7
Défaut de pages D D D D D D D D D
Page 21 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
LRU :
T 1 2 3 4 5 6 7 8 9 10 11
bloc 4 6 7 9 4 10 7 12 4 7 11
Case :
1 4 4 4 4 4 4 4 4 4 4 4
2 6 6 6 6 10 10 10 10 10 11
3 7 7 7 7 7 7 7 7 7
4 9 9 9 9 12 12 12 12
Défaut de pages D D D D D D D
LRU :
t 1 2 3 4 5 6 7 8 9 10 11
bloc 3 5 6 8 3 9 6 12 3 6 10
Case :
1 3 3 3 8 8 8 6 6 6 6 6
2 5 5 5 3 3 3 12 12 12 10
3 6 6 6 9 9 9 3 3 3
Défaut de pages D D D D D D D D D D
Pour 4 cases :
FIFO :
t 1 2 3 4 5 6 7 8 9 10 11
bloc 3 5 6 8 3 9 6 12 3 6 10
Case :
1 3 3 3 3 3 9 9 9 9 9 10
2 5 5 5 5 5 5 12 12 12 12
3 6 6 6 6 6 6 3 3 3
4 8 8 8 8 8 8 6 6
Défaut de pages D D D D D D D D D
LRU :
t 1 2 3 4 5 6 7 8 9 10 11
bloc 3 5 6 8 3 9 6 12 3 6 10
Case :
1 3 3 3 3 3 3 3 3 3 3 3
2 5 5 5 5 9 9 9 9 9 10
3 6 6 6 6 6 6 6 6 6
4 8 8 8 8 12 12 12 12
Défaut de pages D D D D D D D
Page 22 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
1. Représentez sur un dessin les structures allouées (table des segments, tables des pages) et la mémoire
centrale correspondant à l’allocation décrite.
SOLUTION
Mémoire centrale :
1
2 Page 3 S1B
3
4 Page 1 S1A
5 Page 2 S1A
6 Page 1 S3A
7
8
9
10 Page 2 S2A
11 Page 2 S1B
12
13
14
15 Page 1 S2B
Page 23 sur 24
© SUPINFO International University – http://www.supinfo.com
1OSS – LABS – CORRECTION
Systèmes d’exploitation
vNuméro de case
Taille Table de pages 0
16 1 11
8 1 2
0
1 15
0
2. Soit l’adresse logique <S1A,page 1,12> . Quelle adresse réelle lui correspond-elle ?
SOLUTION
Adresse logique < S1A, page 1, 12> = adresse réelle < 16Ko, 12> = 4 * 4 Ko + 12 = 16396, car Page 1 en case 4 de la
Mémoire Centrale.
3. Soit l’adresse logique <S2B,page 2,10> . Quelle adresse réelle lui correspond-elle ?
SOLUTION
Adresse logique <S2B, page 2, 10>. La page 2 du segment 2 du processus B n’est pas en mémoire centrale. Il se
produit un défaut de page. Nous pouvons supposer que la page manquante est chargée dans la première case libre, c'est-
à-dire la case 1. Il s’ensuit alors que l’adresse physique correspondante est 10.
4. Dans ce même contexte, donnez pour chacune des adresses linéaires suivantes, son équivalent en adresse
virtuelle, puis son adresse physique correspondante :
a. 4 098 pour le processus A
b. 8 212 pour le processus B
SOLUTION
Processus A : La mémoire est segmentée paginée et la taille des pages du processus A est égale à 4 Ko (même taille
que la mémoire centrale), soit 2 pages pour le segment S1A (8Ko = 2 * 4Ko), 3 pages pour le segment S2A (12Ko = 3 * 4Ko)
et 1 page pour le segment S3A (4Ko).
4098 pour le processus A : adresse virtuelle <S1, page 2, déplacement 2> = adresse réelle <case 5, déplacement 2> = =
5 * 4Ko + 2 = 5 * 4096 + 2 = 16386 octets
Processus B : La mémoire est segmentée paginée et la taille des pages du processus B est égale à 4 Ko (même taille
que la mémoire centrale), soit 4 pages pour le segment S1B (16ko = 4 * 4Ko) et 2 pages pour le segment S2B (8Ko = 2 * 4
Ko).
Pour l’adresse linéaire 8212 de B, nous avons : 8212 div 4096 + 1 = 3
Dans la table des segments, la page 3 se trouve dans le segment S1B et correspond à la page 3.
Le déplacement est de : 8212 mod 4096 = 20. Nous avons donc l'adresse virtuelle suivante : <segment S1B, page 3,
déplacement 20>
D'après la table des segments, la page est valide et correspond à la case 2. L'adresse réelle est donc : <case 2,
déplacement 20>
8212 pour le processeur B : adresse virtuelle <S1, page 3, déplacement 20> = adresse réelle <case 2, déplacement
20> = 2 * 4Ko + 20 = 2 * 4096 + 20 = 8212 octets
Page 24 sur 24
© SUPINFO International University – http://www.supinfo.com