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 (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 EXPLOITATIONsbailaanmydriss
 
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.pptxAmrCady
 
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 Publicis Sapient Engineering
 
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éABDELKADER ABDOKABOUYA
 
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 ?Antidot
 
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 gcOCTO Technology
 
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)GUSS
 
internet presentation to understand deployment.pptx
internet presentation to understand deployment.pptxinternet presentation to understand deployment.pptx
internet presentation to understand deployment.pptxggcharles592
 
Découverte d'UNIX - ISIMA
Découverte d'UNIX - ISIMADécouverte d'UNIX - ISIMA
Découverte d'UNIX - ISIMALoic Yon
 
A la queue leu leu
A la queue leu leuA la queue leu leu
A la queue leu leunautilebleu
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesSofian Djamaa
 

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 (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

Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 

Dernier (15)

Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 

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