SlideShare une entreprise Scribd logo
Systèmes
d'exploitation
Mémoire Virtuelle
Larry Page
• Américain
• Stanford
• Google
2
Contenu
• pagination
• faute de page
• pagination en demande
• copy-on-write
• swap
• mappage de fichier
3
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
4
PAGINATION
5
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
6
Tableau de pages
7
Transformation d’adresse
8
Transformation d’adresse
• Pour accède un adresse
– accès aux tableau (en mémoire)
– accès en mémoire
• Double accès
– lente
9
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)
10
Transformation d’adresse avec TLB
11
Protection
12
Entrée de tableau de pages
• Numéro de cadre
• Droit d’accès
– aucune
– lire
– écrire
• Valable
13
exemple sur x86
Partage de mémoire
14
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?
15
Pagination hiérarchique
16
MÉMOIRE VIRTUELLE
17
Memorie Virtuelle
• Séparation entre
– Espace physique (RAM)
– Espace logique (mémoriel vue par un processus)
18
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
19
Espace d’adresse simplifie
20
FAUTE DE PAGE
21
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
22
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
23
Faute de page
24
PAGE EN DEMANDE
25
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
26
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
27
SWAP
28
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
29
Swap en Windows et Linux
• Windows
– C:pagefile.sys
• Linux
– Partition différentes
30
Swap
31
Remplacement de page
32
Les pages déposé en swap?
• FIFO
• LRU
– Least Recently Used
• Second Chance
– mieux FIFO
33
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)
34
Exemple
35
L’ anomalie de Belady
36
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
37
Exemple
38
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
39
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
40
Exemple
41
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
42
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
43
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
44
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
45
COPY-ON-WRITE
46
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
47
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
48
Exemple
49
Exemple
50
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
51
Utilisation
chargement des exécutables et des
bibliothèques
52
Exemple
53
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.
54
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);
}
55
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
56
Questions
57

Contenu connexe

Tendances

Tendances (19)

SdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiersSdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiers
 
SdE - Introduction
SdE - IntroductionSdE - Introduction
SdE - Introduction
 
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 3 - System de fichiers
SdE 3 - System de fichiersSdE 3 - System de fichiers
SdE 3 - System de fichiers
 
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
 
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 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 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
SdE 4: Processus
SdE 4: ProcessusSdE 4: Processus
SdE 4: Processus
 
Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2)
 
Formation Linux lpi 101
Formation Linux lpi 101 Formation Linux lpi 101
Formation Linux lpi 101
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
SdE2 - Introduction
SdE2 - IntroductionSdE2 - Introduction
SdE2 - Introduction
 
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)
 
SdE 2 - Introduction
SdE 2 - IntroductionSdE 2 - Introduction
SdE 2 - Introduction
 

Plus de Alexandru Radovici (20)

SdE2 - Pilot Tock
SdE2 - Pilot TockSdE2 - Pilot Tock
SdE2 - Pilot Tock
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 
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

support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...ABDELHADI ENNAIR
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfGERESO
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?sashaflor182
 
Cahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfCahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfTOP AUTO CIV
 
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesSOLIANAEvelyne
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxMartin M Flynn
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Technologia Formation
 
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24BenotGeorges3
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016ImnaTech
 
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...zidani2
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptxSAIDALI701276
 

Dernier (11)

support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdf
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?
 
Cahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfCahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdf
 
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
 
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016
 
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptx
 

SdE 8 - Memoire Virtuelle

  • 2. Larry Page • Américain • Stanford • Google 2
  • 3. Contenu • pagination • faute de page • pagination en demande • copy-on-write • swap • mappage de fichier 3
  • 4. 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 4
  • 6. 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 6
  • 9. Transformation d’adresse • Pour accède un adresse – accès aux tableau (en mémoire) – accès en mémoire • Double accès – lente 9
  • 10. 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) 10
  • 13. Entrée de tableau de pages • Numéro de cadre • Droit d’accès – aucune – lire – écrire • Valable 13 exemple sur x86
  • 15. 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? 15
  • 18. Memorie Virtuelle • Séparation entre – Espace physique (RAM) – Espace logique (mémoriel vue par un processus) 18
  • 19. 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 19
  • 22. 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 22
  • 23. 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 23
  • 26. 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 26
  • 27. 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 27
  • 29. 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 29
  • 30. Swap en Windows et Linux • Windows – C:pagefile.sys • Linux – Partition différentes 30
  • 33. Les pages déposé en swap? • FIFO • LRU – Least Recently Used • Second Chance – mieux FIFO 33
  • 34. 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) 34
  • 36. L’ anomalie de Belady 36
  • 37. 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 37
  • 39. 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 39
  • 40. 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 40
  • 42. 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 42 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
  • 43. 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 43
  • 44. 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 44
  • 45. 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 45
  • 47. 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 47
  • 48. 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 48
  • 51. 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 51
  • 52. Utilisation chargement des exécutables et des bibliothèques 52
  • 54. 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. 54
  • 55. 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); } 55
  • 56. 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 56