SlideShare une entreprise Scribd logo
1  sur  60
Systèmes
d'exploitation
Mémoire Virtuelle
Margaret Hamilton
• Américain
• MIT
• Apollo 11
2
Pirates of Silicon Valley
Questions?
• Qui a construit le premier ordinateur pour
Apple?
• Qu'est-ce que est considéré comme l'un des
plus stupide erreurs dans l'histoire de
l'ordinateur?
• Lequel des personnages avez-vous le plus
aimé?
Questions?
• Qui a construit le premier ordinateur pour Apple?
– Steve Wozniak
• Qu'est-ce que est considéré comme l'un des plus
stupide erreurs dans l'histoire de l'ordinateur?
– Les bénéfices sont dans le matériel
– La vente de DOS
– Computers? Why would ordinary people use computers
for?
• Lequel des personnages avez-vous le plus aimé?
– votre choix
Contenu
• pagination
• faute de page
• pagination en demande
• copy-on-write
• swap
• mappage de fichier
6
Bibliographie pour aujourd'hui
• Modern Operating Systems
– Chapitre 4
• 4.4
• 4.5
• 4.6
• Operating Systems Concepts
– Chapitre 9
• 9.1 – 9.4
• 9.6
• 9.7
7
PAGINATION
8
Pagination
• La mémoire est divise en pages
– en général 4 KB
• Pages
– Virtuelles (pages)
– Physique (cadres - frames)
• Tableau de pages
– un processus a un tableau de pages
• Adresse
– adresse physique = page index + décalage
9
Tableau de pages
10
Transformation d’adresse
11
Transformation d’adresse
• Pour accède un adresse
– accès aux tableau (en mémoire)
– accès en mémoire
• Double accès
– lente
12
Translation Lookaside Buffer (TLB)
• Mémoire cache spécialisé
– 256 entrées
• Enregistre par processus
• Changement de contexte
– change le tableau de pages curent
– TLB flush (sauf la partie de noyau)
13
Transformation d’adresse avec TLB
14
Protection
15
Entrée de tableau de pages
• Numéro de cadre
• Droit d’accès
– aucune
– lire
– écrire
• Valable
16
exemple sur x86
Partage de mémoire
17
Taille de tableau de memoire
• 32 bits - 4 GB Mémoire
– taille de page = 4 KB
– 220 pages de mémoire
– entrée de tableau de mémoire = 4 B
• Taille 4 * 220 = 4 MB / processus
• 64 bits?
18
Pagination hiérarchique
19
MÉMOIRE VIRTUELLE
20
Memorie Virtuelle
• Séparation entre
– Espace physique (RAM)
– Espace logique (mémoriel vue par un processus)
21
Avantages es désavantages
• Partage de mémoire
• Toutes les adresses sont disponibles
• Utilisation de plus de mémoire que disponible
• Double accès au mémoire
– tableau et adresse effective
• Support matériel
• Le SE doit avoir un component spéciale
22
Espace d’adresse simplifie
23
FAUTE DE PAGE
24
Faute de Page
• Accès a un page
– non mappé
– invalide
– sans droits d’accès
• Exception de CPU
– est exécuté le handler d’exception
25
Exemples de fautes de page
• non mappe
– page en demande
– swap
• invalide
– la page virtuelle n’est pas alloué
• sans droits d’accès
– read-only
– page de SE
– copy-on-write
26
Faute de page
27
PAGE EN DEMANDE
28
Etapes de allocation de mémoire
1. Allocation de page virtuelle
– entre dans le tableau de pages
2. Allocation de page physique
– entre dans le tableau de cadres (frames)
3. Mappage de page
– relier la page et le cadre
29
Allocation de mémoire
• réservation (malloc)
– allocation de page virtuelle (sans cadre en RAM)
– marqué invalide
• commettre (premier accès, *p = … ou … = *p)
– faute de page mineur
– allocation de cadre physique (frame) en RAM
– relier la page et le cadre
– marqué valide
30
SWAP
31
Swap
• Nous pouvons utiliser plus de mémoire que la
RAM disponible
• Une partie de pages sont mémorise sure un
autre système de stockage
– HDD
– SSD
• Peut être lente
32
Swap en Windows et Linux
• Windows
– C:pagefile.sys
• Linux
– Partition différentes
33
Swap
34
Remplacement de page
35
Les pages déposé en swap?
• FIFO
• LRU
– Least Recently Used
• Second Chance
– mieux FIFO
36
FIFO
• queue de pages
• la premier page dans la queue est déposé en
swap (swapped out)
• la page chargée du swap est placée à la fin de
queue (swapped in)
37
Exemple
38
L’ anomalie de Belady
39
LRU
• l’idée idéal: remplace la page qui ne va être
utilise pour le plus long temps
• attache sur les pages la date de dernier
d’accès
• la page avec le pus vieux date d’accès est
dépose en swap
40
Exemple
41
Difficulté d’implémentation
• Le matériel doit ajoute la date de dernier
accès
– avec une implémentation en logiciel le temps
d’accès est 10x
• Beaucoup de mémoire pour mémorise la date
d’accès
42
Second Chance
• Page de mémoire a deux paramètres (bits)
– R – Référencé (read ou write)
• Queue de pages
– Si en page a R = 0, la page est déposé en swap
– Si en page a R = 1, R este fait 0 et la page este
placée a la fin de la queue
43
Exemple
44
NRU - Not Recently Used
• Page de mémoire a deux paramètres (bits)
– R – Référencé (read)
– M – Modifie (write)
• Nous choisissons la page qui a la classe
minimale de round robin
45
Classe R M
1 (probabilité minimale d’être utilisé) 0 0
2 0 1
3 1 0
4 (probabilité maximale d’être utilisé) 1 1
Page residente
• la page se trouve en RAM
• RSS de processus
– Resident Set Size (les pages qui sont présente en
RAM)
• Allocation résidente
– La page ne peut être déposé en swap
• mémoire de noyau
46
Linux
int mlock(const void *addr, size_t len);
int munlock(const void *addr, size_t len);
addr – multiple de page
len – multiple de page
47
Swap Trashing
• Le système a besoin de beaucoup de temps
pour
– Déposé de pages dans le swap
– Prendre de pages depuis le swap
48
COPY-ON-WRITE
49
Nouveau Processus - UNIX
• fork: créer un nouveau processus (enfant)
(presque identique au processus parent)
– copie de mémoire
• exec: chargement d'informations d'un
exécutable dans la mémoire du processus
enfant
– mémoire nouveau
50
Copy on write - fork
• seule le tableau de pages est copiée
• toutes le pages sont marqué READ-ONLY
– le deux processus partage la mémoire
• Si en processus voit écrire
– faute de page
– la page de mémoire este copie
• Le deux processus ont de pages différentes
51
Exemple
52
Exemple
53
Mappage de fichiers
• une partie d'un fichier est mappée sur une
adresse mémoire
• accès aux fichiers uniquement par accès à la
mémoire
• écrire dans le fichier n'est pas immédiat
54
Utilisation
chargement des exécutables et des
bibliothèques
55
Exemple
56
Linux
void *mmap(void *addr, size_t len, int prot,
int flags, int fd, off_t offset);
int munmap(void *addr, size_t len);
int msync(void *addr, size_t len, int flags);
• PROT_NONE Pages may not be accessed.
• PROT_READ Pages may be read.
• PROT_WRITE Pages may be written.
• PROT_EXEC Pages may be executed.
57
Exemple
int fd = open ("fichier.dat", "rw");
char *p = NULL;
if (fd >= 0) {
p = mmap (NULL, 4096, PROT_WRITE, MAP_SHARED, fd, 0);
if (p!=NULL) {
strcpy (p, "sde");
msync (p, 4096, M_SYNC);
munmap (p, 4096);
}
close (fd);
}
58
Mot clés
• Adresse logique
• Adresse physique
• Pagination
• TLB
• Tableau de pages
• Faute de page
• Demande de page
• Swap
• Remplacement de
pages
• FIFO
• LRU
• Second Chance
• NRU
• Copy on write
• Mappage de mémoire
59
Questions
60

Contenu connexe

Tendances

Tendances (20)

SdE 1 - Introduction
SdE 1 - IntroductionSdE 1 - Introduction
SdE 1 - Introduction
 
SdE 9 - Threads
SdE 9 - ThreadsSdE 9 - Threads
SdE 9 - Threads
 
Systemes d'explotation: Threads
Systemes d'explotation: ThreadsSystemes d'explotation: Threads
Systemes d'explotation: Threads
 
SdE 4 - Processus
SdE 4 - ProcessusSdE 4 - Processus
SdE 4 - Processus
 
SdE 3 - System de fichiers
SdE 3 - System de fichiersSdE 3 - System de fichiers
SdE 3 - System de fichiers
 
SdE2 4 - Processus
SdE2 4 - ProcessusSdE2 4 - Processus
SdE2 4 - Processus
 
SdE 10 - Threads
SdE 10 - ThreadsSdE 10 - Threads
SdE 10 - Threads
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortie
 
SdE 4: Processus
SdE 4: ProcessusSdE 4: Processus
SdE 4: Processus
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoire
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
SdE 2 - Introduction
SdE 2 - IntroductionSdE 2 - Introduction
SdE 2 - Introduction
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)
 
Formation Linux lpi 101
Formation Linux lpi 101 Formation Linux lpi 101
Formation Linux lpi 101
 
SdE2 - Introduction
SdE2 - IntroductionSdE2 - Introduction
SdE2 - Introduction
 
ALF - Introduction
ALF - IntroductionALF - Introduction
ALF - Introduction
 
Initiation Linux
Initiation LinuxInitiation Linux
Initiation Linux
 

Similaire à Systemes d'explotation: Mémoire Virtuelle

gestion MEMEMOIRE SYSTEME D EXPLOITATION
gestion MEMEMOIRE SYSTEME D EXPLOITATIONgestion MEMEMOIRE SYSTEME D EXPLOITATION
gestion MEMEMOIRE SYSTEME D EXPLOITATION
sbailaanmydriss
 
OCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gc
OCTO Technology
 
A la queue leu leu
A la queue leu leuA la queue leu leu
A la queue leu leu
nautilebleu
 

Similaire à Systemes d'explotation: Mémoire Virtuelle (14)

gestion MEMEMOIRE SYSTEME D EXPLOITATION
gestion MEMEMOIRE SYSTEME D EXPLOITATIONgestion MEMEMOIRE SYSTEME D EXPLOITATION
gestion MEMEMOIRE SYSTEME D EXPLOITATION
 
Explication - Gestion de la mémoire.pptx
Explication - Gestion de la mémoire.pptxExplication - Gestion de la mémoire.pptx
Explication - Gestion de la mémoire.pptx
 
Sysadmin Day #5
Sysadmin Day #5Sysadmin Day #5
Sysadmin Day #5
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 
XebiConFr 15 - À la découverte des mécanismes internes de Cassandra
XebiConFr 15 - À la découverte des mécanismes internes de Cassandra XebiConFr 15 - À la découverte des mécanismes internes de Cassandra
XebiConFr 15 - À la découverte des mécanismes internes de Cassandra
 
Cours 70 410 - J4
Cours 70 410 - J4Cours 70 410 - J4
Cours 70 410 - J4
 
Architectures de bases de données Distribué
Architectures de bases de données DistribuéArchitectures de bases de données Distribué
Architectures de bases de données Distribué
 
Web sémantique et Web de données, et si on passait à la pratique ?
Web sémantique et Web de données, et si on passait à la pratique ?Web sémantique et Web de données, et si on passait à la pratique ?
Web sémantique et Web de données, et si on passait à la pratique ?
 
OCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gc
 
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
 
internet presentation to understand deployment.pptx
internet presentation to understand deployment.pptxinternet presentation to understand deployment.pptx
internet presentation to understand deployment.pptx
 
Découverte d'UNIX - ISIMA
Découverte d'UNIX - ISIMADécouverte d'UNIX - ISIMA
Découverte d'UNIX - ISIMA
 
A la queue leu leu
A la queue leu leuA la queue leu leu
A la queue leu leu
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop Performances
 

Plus de Alexandru Radovici

Plus de Alexandru Radovici (19)

SdE2 - Pilot Tock
SdE2 - Pilot TockSdE2 - Pilot Tock
SdE2 - Pilot Tock
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - Introduction
 
MDAD 6 - AIDL and Services
MDAD 6 - AIDL and ServicesMDAD 6 - AIDL and Services
MDAD 6 - AIDL and Services
 
MDAD 5 - Threads
MDAD 5 - ThreadsMDAD 5 - Threads
MDAD 5 - Threads
 
MDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recyclingMDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recycling
 
MDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI ApplicationsMDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI Applications
 
MDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android FrameworkMDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android Framework
 
MDAD 1 - Hardware
MDAD 1 - HardwareMDAD 1 - Hardware
MDAD 1 - Hardware
 
MDAD 0 - Introduction
MDAD 0 - IntroductionMDAD 0 - Introduction
MDAD 0 - Introduction
 
SdE 11 - Reseau
SdE 11 - ReseauSdE 11 - Reseau
SdE 11 - Reseau
 
SdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionSdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de execution
 
ALF 6 - Parser
ALF 6 - ParserALF 6 - Parser
ALF 6 - Parser
 
ALF 5 - Parser
ALF 5 - ParserALF 5 - Parser
ALF 5 - Parser
 
ALF 4 - Grammaires
ALF 4 - GrammairesALF 4 - Grammaires
ALF 4 - Grammaires
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et LexerALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
ALF 1 - Automates finis
ALF 1 - Automates finis ALF 1 - Automates finis
ALF 1 - Automates finis
 
DAPM 1 - Introduction
DAPM 1 - IntroductionDAPM 1 - Introduction
DAPM 1 - Introduction
 
ALF 1 - Introduction
ALF 1 - IntroductionALF 1 - Introduction
ALF 1 - Introduction
 

Dernier

Dernier (14)

Fiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciationFiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciation
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptx
 
Texte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigéesTexte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigées
 
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
 
Exemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste AuditExemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste Audit
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre française
 
Àma Gloria.pptx Un film tourné au Cap Vert et en France
Àma Gloria.pptx   Un film tourné au Cap Vert et en FranceÀma Gloria.pptx   Un film tourné au Cap Vert et en France
Àma Gloria.pptx Un film tourné au Cap Vert et en France
 
Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptx
 
rapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfrapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdf
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbaines
 
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfPowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
 

Systemes d'explotation: Mémoire Virtuelle

  • 4. Questions? • Qui a construit le premier ordinateur pour Apple? • Qu'est-ce que est considéré comme l'un des plus stupide erreurs dans l'histoire de l'ordinateur? • Lequel des personnages avez-vous le plus aimé?
  • 5. Questions? • Qui a construit le premier ordinateur pour Apple? – Steve Wozniak • Qu'est-ce que est considéré comme l'un des plus stupide erreurs dans l'histoire de l'ordinateur? – Les bénéfices sont dans le matériel – La vente de DOS – Computers? Why would ordinary people use computers for? • Lequel des personnages avez-vous le plus aimé? – votre choix
  • 6. Contenu • pagination • faute de page • pagination en demande • copy-on-write • swap • mappage de fichier 6
  • 7. Bibliographie pour aujourd'hui • Modern Operating Systems – Chapitre 4 • 4.4 • 4.5 • 4.6 • Operating Systems Concepts – Chapitre 9 • 9.1 – 9.4 • 9.6 • 9.7 7
  • 9. Pagination • La mémoire est divise en pages – en général 4 KB • Pages – Virtuelles (pages) – Physique (cadres - frames) • Tableau de pages – un processus a un tableau de pages • Adresse – adresse physique = page index + décalage 9
  • 12. Transformation d’adresse • Pour accède un adresse – accès aux tableau (en mémoire) – accès en mémoire • Double accès – lente 12
  • 13. Translation Lookaside Buffer (TLB) • Mémoire cache spécialisé – 256 entrées • Enregistre par processus • Changement de contexte – change le tableau de pages curent – TLB flush (sauf la partie de noyau) 13
  • 16. Entrée de tableau de pages • Numéro de cadre • Droit d’accès – aucune – lire – écrire • Valable 16 exemple sur x86
  • 18. Taille de tableau de memoire • 32 bits - 4 GB Mémoire – taille de page = 4 KB – 220 pages de mémoire – entrée de tableau de mémoire = 4 B • Taille 4 * 220 = 4 MB / processus • 64 bits? 18
  • 21. Memorie Virtuelle • Séparation entre – Espace physique (RAM) – Espace logique (mémoriel vue par un processus) 21
  • 22. Avantages es désavantages • Partage de mémoire • Toutes les adresses sont disponibles • Utilisation de plus de mémoire que disponible • Double accès au mémoire – tableau et adresse effective • Support matériel • Le SE doit avoir un component spéciale 22
  • 25. Faute de Page • Accès a un page – non mappé – invalide – sans droits d’accès • Exception de CPU – est exécuté le handler d’exception 25
  • 26. Exemples de fautes de page • non mappe – page en demande – swap • invalide – la page virtuelle n’est pas alloué • sans droits d’accès – read-only – page de SE – copy-on-write 26
  • 29. Etapes de allocation de mémoire 1. Allocation de page virtuelle – entre dans le tableau de pages 2. Allocation de page physique – entre dans le tableau de cadres (frames) 3. Mappage de page – relier la page et le cadre 29
  • 30. Allocation de mémoire • réservation (malloc) – allocation de page virtuelle (sans cadre en RAM) – marqué invalide • commettre (premier accès, *p = … ou … = *p) – faute de page mineur – allocation de cadre physique (frame) en RAM – relier la page et le cadre – marqué valide 30
  • 32. Swap • Nous pouvons utiliser plus de mémoire que la RAM disponible • Une partie de pages sont mémorise sure un autre système de stockage – HDD – SSD • Peut être lente 32
  • 33. Swap en Windows et Linux • Windows – C:pagefile.sys • Linux – Partition différentes 33
  • 36. Les pages déposé en swap? • FIFO • LRU – Least Recently Used • Second Chance – mieux FIFO 36
  • 37. FIFO • queue de pages • la premier page dans la queue est déposé en swap (swapped out) • la page chargée du swap est placée à la fin de queue (swapped in) 37
  • 39. L’ anomalie de Belady 39
  • 40. LRU • l’idée idéal: remplace la page qui ne va être utilise pour le plus long temps • attache sur les pages la date de dernier d’accès • la page avec le pus vieux date d’accès est dépose en swap 40
  • 42. Difficulté d’implémentation • Le matériel doit ajoute la date de dernier accès – avec une implémentation en logiciel le temps d’accès est 10x • Beaucoup de mémoire pour mémorise la date d’accès 42
  • 43. Second Chance • Page de mémoire a deux paramètres (bits) – R – Référencé (read ou write) • Queue de pages – Si en page a R = 0, la page est déposé en swap – Si en page a R = 1, R este fait 0 et la page este placée a la fin de la queue 43
  • 45. NRU - Not Recently Used • Page de mémoire a deux paramètres (bits) – R – Référencé (read) – M – Modifie (write) • Nous choisissons la page qui a la classe minimale de round robin 45 Classe R M 1 (probabilité minimale d’être utilisé) 0 0 2 0 1 3 1 0 4 (probabilité maximale d’être utilisé) 1 1
  • 46. Page residente • la page se trouve en RAM • RSS de processus – Resident Set Size (les pages qui sont présente en RAM) • Allocation résidente – La page ne peut être déposé en swap • mémoire de noyau 46
  • 47. Linux int mlock(const void *addr, size_t len); int munlock(const void *addr, size_t len); addr – multiple de page len – multiple de page 47
  • 48. Swap Trashing • Le système a besoin de beaucoup de temps pour – Déposé de pages dans le swap – Prendre de pages depuis le swap 48
  • 50. Nouveau Processus - UNIX • fork: créer un nouveau processus (enfant) (presque identique au processus parent) – copie de mémoire • exec: chargement d'informations d'un exécutable dans la mémoire du processus enfant – mémoire nouveau 50
  • 51. Copy on write - fork • seule le tableau de pages est copiée • toutes le pages sont marqué READ-ONLY – le deux processus partage la mémoire • Si en processus voit écrire – faute de page – la page de mémoire este copie • Le deux processus ont de pages différentes 51
  • 54. Mappage de fichiers • une partie d'un fichier est mappée sur une adresse mémoire • accès aux fichiers uniquement par accès à la mémoire • écrire dans le fichier n'est pas immédiat 54
  • 55. Utilisation chargement des exécutables et des bibliothèques 55
  • 57. Linux void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); int munmap(void *addr, size_t len); int msync(void *addr, size_t len, int flags); • PROT_NONE Pages may not be accessed. • PROT_READ Pages may be read. • PROT_WRITE Pages may be written. • PROT_EXEC Pages may be executed. 57
  • 58. Exemple int fd = open ("fichier.dat", "rw"); char *p = NULL; if (fd >= 0) { p = mmap (NULL, 4096, PROT_WRITE, MAP_SHARED, fd, 0); if (p!=NULL) { strcpy (p, "sde"); msync (p, 4096, M_SYNC); munmap (p, 4096); } close (fd); } 58
  • 59. Mot clés • Adresse logique • Adresse physique • Pagination • TLB • Tableau de pages • Faute de page • Demande de page • Swap • Remplacement de pages • FIFO • LRU • Second Chance • NRU • Copy on write • Mappage de mémoire 59