Вы находитесь на странице: 1из 21

ECOLE NORMALE SUPÉRIEURE DE L’ENSEIGNEMENT

TECHNIQUE

DÉPARTEMENT GÉNIE ELECTRIQUE

Filière d’Ingénieur de Génie électrique-4èmeSemestre :


Elément de Module : 411

Contrôle Continu de la Session Normale

Faite le : 15/07/20

Réalisé par : Encadré par :


BENMANSOUR Kaouthar

Prof. N. ZIDANE

Année universitaire : 2019/2020


1 - Élément de base du système
1-1 - Généralité
1. Définition et dissociation des notions suivantes :
a. Appel système :
Les appels systèmes constituent l'interface du système d'exploitation et sont les points d'entrées
permettant l'exécution d'une fonction du système. Les appels système sont directement appelables
depuis un programme. De plus c’est 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.
b. Commutation de contexte
Le passage du mode utilisateur au mode superviseur constitue une commutation de contexte : elles
s'accompagnent d'une opération de sauvegarde du contexte utilisateur. Lorsque l'exécution de la
fonction système est achevée, le programme repasse du mode superviseur au mode utilisateur. Il y a
de nouveau une opération de commutation de contexte avec restauration du contexte utilisateur
sauvegardé lors de l'appel système.
c. Interruption
C'est une commutation de contexte provoqué par un signal géré par le matériel. Ce signal est
lui-même un événement qui peut être :
 interne au processus et résultant de son exécution,
 extérieur indépendant de cette exécution.
L’ interruption est délivrée par l'unité d'échange à destination du processeur lorsqu'elle est
prête à délivrer ou recevoir une nouvelle donnée. Le processeur, à la prise en compte de cette
interruption, va exécuter la routine associée qui lit la donnée présente dans RD (Registre de
données) ou met dans RD la donnée suivante à écrire. Le processeur n’a pas besoin de scruter
le registre d'état RE de l'unité d'échange pour savoir si celle-ci est prête à lire ou écrire. Le
processus reste le seul à pouvoir accéder à la mémoire centrale et doit gérer l'entrée sortie
dans le sens où il doit se charger des transferts mémoire centrale – registre de données.
d. Programme
Entité purement statique associée à la suite des instructions qui la composent. Une chaîne de
production transforme un programme écrit en langage de haut niveau en un programme dit
exécutable (langage machine). Ce programme exécutable à l'issue de l'édition des liens est
stocké sur le disque. Puis au chargement, il est placé en mémoire centrale pour pouvoir être
exécuté. A chaque étape d'exécution d’un programme, le contenu des registres du compteur
ordinal évolue. De même le contenu de la mémoire centrale peut être modifié : Écriture ou
lecture.
Les programmes sont exécutés en mode utilisateur. Ce mécanisme les oblige à faire appel au
système d'exploitation pour certaines opérations à risque qui nécessite de passer en mode
noyau. Ces opérations sont des appels système. Ce mécanisme représente une protection
fondamentale, située au cœur du système. Tous les accès aux ressources et aux données sont
ainsi nécessairement contrôlés par le système d'exploitation.

e. Processus
Entité dynamique associée à la suite des actions réalisées par un programme. Le processus est
l'image de l'état du processeur et de la mémoire au cours de l'exécution d'un programme.
Un processus est un programme en cours d’exécution auquel est associé un environnement
processeur (CO, PSW, RSP, registres généraux) et un environnement mémoire appelés
contexte du processus.
Un processus est une abstraction de données définies par 2 parties : un état et un
comportement. Il est l’instance dynamique d’un programme et incarne le fil d’exécution de
celui-ci dans un espace d'adressage protégé (ensemble des instructions et des données
accessibles en mémoire).
f. Processus léger (Thread)
Un processus léger (thread) est par nomination plus léger à gérer et sa gestion peut être
personnalisée.
La commutation de contexte est plus simple entre processus légers.
États uniques pour chaque processus léger :
 Identificateur de processus léger ;
 Etat des registres ;
 Pile ;
 Masques de signaux (décrivent à quels signaux le processus léger répond) ;
 Priorité ;
 Données privées au processus léger.

2. Les fonctions principales d’un système d’exploitation


. Construction au-dessus du matériel d'une machine virtuelle (plus facile d'emploi
et plus conviviale).
. Prise en charge de la gestion de plus en plus complexe des ressources et partage
de celle-ci.
On trouve aussi ;
 La gestion des processus

 La gestion de la mémoire centrale

 La gestion des fichiers

 La gestion des périphériques

 La gestion des entrées/sorties (dialogue Homme/Machine)

Ces fonctionnalités peuvent être structurées sous la forme de plusieurs couches superposes
allant de la plus proche du matériel vers la plus proche de l'utilisateur.
3. Les instructions, lesquelles ne devraient être autorisées qu’en mode
noyau sont :
a. Désarmer toutes les interruptions.
c. Ecrire l’horloge donnant la date.
d. Changer la carte de l’espace d’adressage
Ces choix doivent être limitées au mode noyau.

1-2 - Explication du mécanisme d’interruption


Un programme s’exécute correctement sur le processeur, lorsqu’une interruption de type 3
(déclenchée par une unité périphérique) survient. 1002 est l’adresse de la prochaine instruction du
programme lambda qui devait s’exécuter dans le processeur. 0017 est l’adresse de la routine
associée à l’interruption de type n°3.
1-Décrivez la table des vecteurs d’interruption.
2- Description du mécanisme d’interruption ci-dessus, n’oubliez pas le retour
d’interruption.
1 - Le processeur exécute le programme.
2 - L'interruption n°3 survient, déclenchée par une unité périphérique.
3 - Le processeur arrête alors l'exécution du programme.
4 - Le processeur sauvegarde le contexte du processeur en mémorisant notamment l'adresse
de la prochaine instruction à exécuter dans le programme (ici 1002).
5 - Puis le processeur détermine grâce à une table appelée la table des vecteurs
d'interruptions, l'adresse de la routine associée à l'interruption n°3. : ici 0017.
6 – Le processeur charge alors le CO (Compteur Ordinal) avec cette adresse, exécute la
routine d'interruption
7 – La routine se termine par l'instruction machine RTI (return Interrupt). Cette instruction
restaure le contexte sauvegardé lors de la prise en compte de l'interruption : le CO est
chargé avec l'adresse 1002
8 - le programme reprend son exécution là où il avait été interrompu.

1-3 Explication d’une représentation d’un système préemptif


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 – Ordonnancement
2-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

o FCFS (First come First served)


a. le temps de séjour de chaque processus
Processus Temps de séjour
P1 5-0=5
P2 10-0=10
P3 19-0=19
P4 33-0=33
P5 34-0=34

b. le temps d’attente de chaque processus


Processus Temps d’attente
P1 5-5=0
P2 10-5=5
P3 19-9=10
P4 33-14=19
P5 34-1=33

c. le temps moyen de séjour


5+10+19+33+34
T ms= =20.2
5
d. le temps moyen d’attente
0+5+10+19+33
T ma= =13.4
5
e. diagramme de Gantt
Nom de la tâche Durée Début Fin Prédécesseurs
P1 5 ut 00 :00 00 :05
P2 5 ut 00 :05 00 :10 1
P3 9 ut 00 :10 00 :19 2
P4 14 ut 00 :19 00 :33 3
P5 1 ut 00 :33 00 :34 4

P1 P2 P3 P4 P5
0 5 10 19 33 34

o Plus court d’abord


a. le temps de séjour de chaque processus
Processus Temps de séjour
P5 1-0=1
P1 6-0=6
P2 11-0=11
P3 20-0=20
P4 34-0=34

b. le temps d’attente de chaque processus


Processus Temps de séjour
P5 1-1=0
P1 6-5=1
P2 11-5=6
P3 20-9=11
P4 34-14=20

c. le temps moyen de séjour


1+ 6+11+20+34
T ms= =14.4
5
d. le temps moyen d’attente
0+1+6+11+ 20
T ma= =7.6
5

e. diagramme de Gantt
Nom de la tâche Durée Début Fin Prédécesseurs
P5 1 ut 00 :00 00 :01
P1 5 ut 00 :01 00 :06 5
P2 5 ut 00 :06 00 :11 1
P3 9 ut 00 :11 00 :20 2
P4 14 ut 00 :20 00 :34 3

P1 P2 P3 P4 P5
0 1 6 11 20 34

o Tourniquet avec un quantum de temps égal à 3 unités


a. le temps de séjour de chaque processus
Processus Temps de séjour
P5 13-0=13
P1 15-0=15
P2 17-0=17
P3 26-0=26
P4 34-0=34

b. le temps d’attente de chaque processus


Processus Temps de séjour
P5 13-1=12
P1 15-5=10
P2 17-5=12
P3 26-9=17
P4 34-14=20

c. le temps moyen de séjour


13+15+17+26+ 34
T ms= =21
5
d. le temps moyen d’attente
12+10+ 12+17 +20
T ma= =14.2
5
e. diagramme de Gantt
Nom de la tâche Durée Début Fin Prédécesseurs
P1 3 ut 00 :00 00 :03
P2 3 ut 00 :03 00 :06 1
P3 3 ut 00 :06 00 :09 2
P4 3 ut 00 :09 00 :12 3
P5 1 ut 00 :12 00 :13 4
P1 2 ut 00 :13 00 :15 5
P2 2 ut 00 :15 00 :17 1
P3 3 ut 00 :17 00 :20 2
P4 3 ut 00 :20 00 :23 3
P3 3 ut 00 :23 00 :26 4
P4 8 ut 00 :26 00 :34 3

P1 P2 P3 P4 P5 P1 P2 P3 P4 P3 P4
0 3 6 9 12 13 15 17 20 23 26 34

2. Nous considérons 5 processus numérotés de P1 à P5 dont les caractéristiques


sont résumées dans le tableau suivant :

o FCFS (First come First served)


a. le temps de séjour de chaque processus
Processus Temps de séjour
P1 2-0=2
P2 8-0=8
P3 18-0=18
P4 22-0=22
P5 34-0=34
b. le temps d’attente de chaque processus
Processus Temps d’attente
P1 2-2=0
P2 8-6=2
P3 18-10=8
P4 22-4=18
P5 34-12=22

c. le temps moyen de séjour


2+ 8+18+22+34
T ms= =16.8
5
d. le temps moyen d’attente
0+2+8+18+22
T ma= =10
5
e. diagramme de Gantt
Nom de la tâche Durée Début Fin Prédécesseurs
P1 2 ut 00 :00 00 :02
P2 6 ut 00 :02 00 :08 1
P3 10 ut 00 :08 00 :18 2
P4 4 ut 00 :18 00 :22 3
P5 12 ut 00 :22 00 :34 4

P1 P2 P3 P4 P5
0 2 8 18 22 34

o . Plus court d’abord


a. le temps de séjour de chaque processus
Processus Temps de séjour
P1 2-0=2
P4 6-0=6
P2 12-0=12
P3 22-0=22
P5 34-0=34

b. le temps d’attente de chaque processus


Processus Temps de séjour
P1 2-2=0
P4 6-4=2
P2 12-6=6
P3 22-10=12
P5 34-12=22

c. le temps moyen de séjour


2+ 6+12+22+34
T ms= =15.2
5
d. le temps moyen d’attente
0+2+6+12+22
T ma= =8.4
5
e. diagramme de Gantt
Nom de la tâche Durée Début Fin Prédécesseurs
P1 2 ut 00 :00 00 :02
P4 4 ut 00 :02 00 :06 1
P2 6 ut 00 :06 00 :12 2
P3 10 ut 00 :12 00 :22 3
P5 12 ut 00 :22 00 :34 4

P1 P4 P2 P3 P5
0 2 6 12 22 34

2-2 – Politiques d’ordonnancement avec Priorité


1. Nous considérons 5 processus numérotés de P1 à P5 dont les caractéristiques
sont résumées dans le tableau suivant :

Le 5 est la priorité la plus forte et le 1 la plus faible

o 1. Par priorité constante


o a-le temps de séjour de chaque processus

Processus Temps de séjour


P4 4-0=4
P2 10-0=10
P3 20-0=20
P1 22-0=22
P5 34-0=34

o b-le temps d’attente de chaque processus

Processus Temps de séjour


P4 4-4=0
P2 10-6=4
P3 20-10=10
P1 22-2=20
P5 34-12=22

o c-le temps moyen de séjour

4+ 10+20+22+34
T ms= =18
5
o d-le temps moyen d’attente

0+4 +10+20+22
T ma= =11.2
5

o e-diagramme de Gantt

Nom de la tâche Durée Début Fin Prédécesseurs


P4 4 ut 00 :00 00 :04
P2 6 ut 00 :04 00 :10 4
P3 10 ut 00 :10 00 :20 2
P1 2 ut 00 :20 00 :22 3
P5 12 ut 00 :22 00 :34 1

P4 P2 P3 P1 P5

0 4 10 20 22 34

o 1. Plus court d’abord


a. le temps de séjour de chaque processus
Processus Temps de séjour
P1 8-0=0
P4 12-0=0
P2 20-0=20
P3 30-0=30
P5 34-0=34

b. le temps d’attente de chaque processus


Processus Temps de séjour
P1 8-2=6
P4 12-4=8
P2 20-6=14
P3 30-10=20
P5 34-12=22

c. le temps moyen de séjour


8+12+20+30+34
T ms= =20.8
5
d. le temps moyen d’attente
0+8+14 +20+22
T ma= =14
5
e. diagramme de Gantt

Nom de la tâche Durée Début Fin Prédécesseurs


P4 2 ut 00 :00 00 :02
P2 2 ut 00 :02 00 :04 4
P3 2 ut 00 :04 00 :06 2
P1 2 ut 00 :06 00 :08 3
P5 2 ut 00 :08 00 :10 1
P4 2 ut 00 :10 00 :12 5
P2 2 ut 00 :12 00 :14 4
P3 2 ut 00 :14 00 :16 2
P5 2 ut 00 :16 00 :18 3
P2 2 ut 00 :18 00 :20 5
P3 2 ut 00 :20 00 :22 2
P5 2 ut 00 :22 00 :24 3
P3 2 ut 00 :24 00 :26 5
P5 2 ut 00 :26 00 :28 3
P3 2 ut 00 :28 00 :30 5
P5 4 ut 00 :30 00 :34 3

P4 P2 P3 P1 P5 P4 P2 P3 P5 P2 P3 P5 P3 P5 P3 P5
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
34

3 - Communication Inter Processus


3-1 - Généralité
1. la multiprogrammation
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..
2. une table de processus est nécessaire dans un système à temps partagé
Car Le planificateur alloue à tour de rôle et à chaque processus un quota de temps du
CPU (10 – 100 ms). Le processus en cours peut s'interrompre pour des raisons internes
(ex : accès a un périphérique, fin du processus, etc) ou parce que le quota de temps
alloué s'est écoulé. Dans le second cas il est remis dans la queue des processus prêts.
La table de processus sert à stocker l’état du processus suspendu, qu’il soit prêt ou
bloqué.
3. Une table, est-elle également requise dans un système personnel où un
seul processus existe, avec accès à toute la machine durant son
exécution ?
Non une table ne peut pas être requise dans un système personnel où un seul processus existe,
avec accès à toute la machine durant son exécution. puisque celui-ci n’est jamais suspendu.

3-2 – Un algorithme
1. L’algorithme du graphe précédent

int c1,c2,trn=1 ; int c1,c2,trn=2 ;


{ {
nc1: nc2:
c1=0 ; c2=0 ;
a3 : b3 :
if (c2= =0) if (c1= =0)
{ {
if (trn= =1) if (trn= =2)
{ {
a3 ; b3 ;
} }
Else Else
{ {
c1=1; c2=1;
} }
While (trn == 2) While (trn == 2)
{ {
nc1; nc2;
} }
Else Else
{ {
crit1; crit2;
trn = 2; trn = 1;
c1=1; c2=1;
nc1; nc2;
} }
} }
2. l’arbre des appels d’ algorithme précédent

3-3 - Comment éviter les privations et les blocages Le problème des


philosophes :
5 philosophes sont réunis autour d'une table pour manger des spaghettis. Chaque
philosophe doit utiliser 2 fourchettes pour manger. Et si il ne peut pas manger il pense. 2
Philosophes peuvent manger en même temps et 3 philosophes pensent. Il faut éviter les
famines (c'est-à-dire chaque philosophe doit manger à tour de rôle).
Les fonctions que vous avez et que vous devez décrire sont Penser() et Manger().
fonction test(k) :

si c[k] = 1 et c[k+1] != 2 et c[k-1] !=2

alors

c[k] :=2

V(sempriv[k]) /* on libere le philosophe de son attente */

fonction philosopher(i) :

penser()

P(mutex) ; /* pour proteger le tableau c */

c[i] := 1 ; /* i a faim puisqu’il a fini de penser */

test(i) ; /* il regarde si il peut manger ;

si oui, V(sempriv[i]) est fait */

V(mutex) ; /* pour que les voisins puissent rendre les fourchettes s’ils les avaient*/

P(sempriv[i]) ; /* Si le V est fait, ¸ca continue et il mange. Sinon il attend qu’un voisin le r´eveille en lib´erant les
fourchettes */

manger()

P(mutex) ; /* on va dire a tout le monde que l’on a fini de manger */

c[i] := 0 ; /* on pose les couverts */

test (i-1) ; /* on regarde si les voisins peuvent manger maintenant que l’on */

test(i+1) ; /* a pos´e les couverts et on fait leur V(sempriv[i]) si oui */

v(mutex)

3-4 – Appel système


Sachant que l’appel système Fork est utilisé pour créer un nouveau processus, appelé
processus enfant, qui s'exécute simultanément avec le processus qui fait l'appel fork ()
(processus parent). Après la création d'un nouveau processus enfant, les deux processus
exécuteront l'instruction suivante après l'appel système fork ()
1) Le père crée des processus fils tant qu’il n’y a pas d’échec. Le père et les processus
créés se transforment en prog.
2) Le processus père tente de créer un fils et rentre dans la boucle. Si la création a
échoué, le processus père se termine (p<0). Sinon il sort de la boucle car l’expression
(i—) devient égale à 0. Il exécute ensuite j+=2 ; i*=2 ; j*=2 ; et enfin, il imprime les
valeurs 0 et 24. Le fils ne rentre dans la boucle car i=1 mais p=0. Il exécute ensuite
j+=2 ; i*=3 ; j*=3 ; et enfin, il affiche les valeurs 3 et 36.

4 – Gestion de la mémoire,
4-1 – Généralités
Que fait le système d’exploitation lors d’une pagination ?
La pagination est une approche pour réduire la fragmentation de la mémoire. L’espace des
adresses logiques d’un processus est ‘paginé’ :
Les pages sont indépendantes en terme d’adressage à l’intérieur de la mémoire et ne sont pas
nécessairement contiguës.
Le SE alloue la mémoire physique chaque fois que la nécessité de loger une page se
présente .
 Le SE maintient une liste de toutes les cases disponibles.
 La taille des programmes s’exprime en termes de case.
 Pour un programme de n cases le SE doit trouver n cases disponibles.
 La translation des adresses se fait par l’intermédiaire d’une translation maintenue par le SE
Par contre la fragmentation interne n’est pas résolue.

4-2 – Evolution de la mémoire centrale


1)
 FIFO

Bloc 4 6 7 9 4 10 7 12 4 7 11
Case1 4 4 4 4 4 10 10 10 10 10 11
Case2 6 6 6 6 6 6 12 12 12 12
Case3 7 7 7 7 7 7 4 4 4
Case4 9 9 9 9 9 9 7 7
Défaut D D D D D D D D D
 LRU
Bloc 4 6 7 9 4 10 7 12 4 7 11
Case1 4 4 4 4 4 4 4 4 4 4 4
Case2 6 6 6 6 10 10 10 10 10 11
Case3 7 7 7 7 7 7 7 7 7
Case4 9 9 9 9 12 12 12 12
Défaut D D D D D D D

2)
 FIFO

Accès 3 5 6 8 3 9 6 12 3 6 10
Case1 3 3 3 8 8 8 6 6 6 6 10
Case2 5 5 5 3 3 3 12 12 12 12
Case3 6 6 6 9 9 9 3 3 3
Défaut D D D D D D D D D D

 LRU
Accès 3 5 6 8 3 9 6 12 3 6 10
Case1 3 3 3 8 8 8 6 6 6 6 6
Case2 5 5 5 3 3 3 12 12 12 10
Case3 6 6 6 9 9 9 3 3 3
Défaut D D D D D D D D D D

4-3 - Une mémoire segmentée paginée


Nous considérons une mémoire segmentée paginée pour laquelle les cases en mémoire
centrale sont de 4 ko. La mémoire centrale compte au total 15 cases numérotées de 1 à 15.
Dans ce contexte, on considère deux processus A et B. Le processus A a un espace
d’adressage composé de trois segments S1A, S2A, S3A qui sont respectivement de 8ko,
12ko, 4ko. Le processus B a un espace d’adressage composé de deux segments S1B, S2B qui
sont respectivement de 16ko, 8ko. Pour le processus A, seules les pages 1 et 2 du segment
S1A, la page 2 du segment S2A et la page 1 du segment S3A sont chargées en mémoire
centrale respectivement dans les cases 4,5,10,6.Pour le processus B, seules les pages 2 et « du
segment S1B et la page 1 du segment S2B sont chargées en mémoire centrale respectivement
dans les cases 11, 2 et 15.
Représentation sur un dessin les structures allouées (table des segments, tables des pages) et
la mémoire centrale correspondant à l’allocation décrite.

 Soit l’adresse logique . Quelle adresse réelle lui correspond-elle ?


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.
 Soit l’adresse logique . Quelle adresse réelle lui correspond-elle ?
Adresse logique . 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.
a. 4 098 pour le processus A
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).
Pour l’adresse linéaire 4098 de A, nous avons : 4098 div 4096 + 1 = 2
D'après la table des segments, la page 2 se trouve dans le segment S1A et correspond à la page
2. Le déplacement est de : 4098 mod 4096 = 2
Nous avons donc l'adresse virtuelle suivante : La page est valide et correspond à la case 5.
L'adresse réelle est : 4098 pour le processus A : adresse virtuelle = adresse réelle = = 5 * 4Ko +
2 = 5 * 4096 + 2 = 16386 octets
b.8 212 pour le processus B
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 : D'après la table des segments, la page est
valide et correspond à la case 2. L'adresse réelle est donc : 8212 pour le processeur B :
adresse virtuelle = adresse réelle = 2 * 4Ko + 20 = 2 * 4096 + 20 = 8212 octets