L3 Informatique - Systèmes d exploitation



Documents pareils
Partie 7 : Gestion de la mémoire

Happy birthday ZSet High performance computing dans ZSet

LA mémoire principale est le lieu où se trouvent les programmes et les

Atelier : Virtualisation avec Xen

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Cours Programmation Système

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination

KoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel

Ordinateurs, Structure et Applications

Initiation à la sécurité

Chapitre IX : Virtualisation

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Comment tester la vitesse d un réseau Ethernet

<Insert Picture Here> Solaris pour la base de donnés Oracle

IV- Comment fonctionne un ordinateur?

Concept de machine virtuelle

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

GESTION DE LA MEMOIRE

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME

FreeNAS Shere. Par THOREZ Nicolas

Cloner un disque dur

Windows XP niveau 2. D. Hourquin, Médiapôle St Ouen l'aumône

Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1

PPE 1 PRISE EN MAIN DE VMWARE VSPHERE 5.5 & CONFIGURATION D UNE MACHINE VIRTUELLE

Virtual Box Mettez un PC dans votre... PC

CH.3 SYSTÈMES D'EXPLOITATION

Unix/Linux I. 1 ere année DUT. Université marne la vallée

1. Présentation du TP

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse

DOCKER MEETUP. Christophe Labouisse

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Exécutif temps réel Pierre-Yves Duval (cppm)

Analyse de performance, monitoring

SRS DAY: Problématique liée à la virtualisation

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

Windows 10 Technical Preview

TD 1 - Installation de système UNIX, partitionnement

2011 Hakim Benameurlaine 1

Linux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers

ESXi: Occupation RAM avec VM_Windows et VM_Linux. R. Babel, A. Ouadahi April 10, 2011

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Clients et agents Symantec NetBackup 7

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Administration de Parc Informatique TP07 : Installation de Linux Debian

Systemes d'exploitation des ordinateurs

Virtualisation & Sécurité

SYS MEM. Gestion de la mémoire. Table des matières. IUT - Département Informatique. ASR2-Système. 1.1 Motivation

Sauvegarde et restauration d'un système d'exploitation Clonezilla

Comment faire reconnaître l espace disque ajouté à votre OS?

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Structure fonctionnelle d un SGBD

Manuel de l utilitaire Computer Setup (F10) HP Compaq Business Desktops Modèles d220 et d230

Fonctionnalités d Acronis :

INSTALLATION MICRO-SESAME

A -Systèmes de fichiers 1 - FAT vs NTFS

Système et réseaux (SR1) Gestion des utilisateurs

1 Mesure de la performance d un système temps réel : la gigue

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Introduction aux Systèmes et aux Réseaux

Itium XP. Guide Utilisateur

Red Hat Enterprise Virtualization 3.0 Instructions d'installation et informations importantes

Systèmes d exploitation

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

Virtualisation sous Linux L'age de raison. Daniel Veillard

Procédure de restauration F8. Série LoRdi 2012 à Dell V131 V3360 L3330

Boîtier disque dur SATA 3,5 pouces Fonction économie d énergie

Métriques de performance pour les algorithmes et programmes parallèles

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Dispositif e-learning déployé sur les postes de travail

Segmentation d'images à l'aide d'agents sociaux : applications GPU

Programmation C. Apprendre à développer des programmes simples dans le langage C

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

IFT Systèmes d exploitation - TP n 1-20%

Exigences système Edition & Imprimeries de labeur

Aperçu rapide de PC BSD 1.2.

Que souhaitent les Administrateurs Système?

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

La Comptabilité UNIX System V Acctcom

Chi rement des postes PC / MAC / LINUX

Manuel de System Monitor

Installation et Réinstallation de Windows XP

Windows Internet Name Service (WINS)

Manuel d utilisation de ndv 4

Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur

MANUELS NUMÉRIQUES PROCÉDURE DE TÉLÉCHARGEMENT

Transcription:

L3 Informatique - Systèmes d exploitation Gestion de la mémoire D. Béchet Denis.Bechet@univ-nantes.fr Université de Nantes Faculté des Sciences et Techniques 2, rue de la Houssinière BP 92208 44322 Nantes cedex 3, France http://www.sciences.univ-nantes.fr/info/perso/permanents/bechet L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 1/43

Ressource importante Mémoire Ressource hiérarchisée mémoire cache : très rapide, peu importante, gérée par le matériel mémoire principale : rapide, importante, gérée par le SE mémoire secondaire (disques durs) : lente, très importante, gérée par le SE Gestion par le gestionnaire de la mémoire du SE But : offrir un espace d adressage indépendant aux processus : la mémoire virtuelle L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 2/43

Mémoire virtuelle Processus 1 Processus 2 Processus 3 Processus 4 Mémoire virtuelle Mémoire virtuelle Mémoire virtuelle Mémoire virtuelle Système d exploitation Mémoire réelle Disque dur L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 3/43

Gestion de la mémoire Type de gestionnaires Avec ou sans échange avec la mémoire secondaire (swaping sur disque dur) Avec ou sans pagination Avec ou sans segmentation L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 4/43

Monoprogrammation 1 seul processus, pas d échange, pas de pagination : exemple MS-DOS 0xFFF... Programme utilisateur Système d exploitation en ROM Gestionnaire de périphériques en ROM Programme utilisateur 0 Système d exploitation en RAM Programme utilisateur Système d exploitation en RAM L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 5/43

Monoprogrammation 1 seul processus, pas d échange, pas de pagination Le SE charge le programme en mémoire puis l exécute appel système EXIT : le SE reprend la main lorsque le programme se termine appel système EXEC : le programme utilisateur demande au SE de charger et exécuter un autre programme qui remplace le programme courant L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 6/43

Partitions de taille fixe Partitionnement à priori de la mémoire en n zones (éventuellement de tailles différentes) plusieurs processus, pas d échange, pas de pagination exemple mainframe d IBM sous OS/360 Files d attente multiples 800K 800K Partition 4 Partition 4 Partition 3 600K 500K File d attente unique Partition 3 600K 500K Partition 2 Partition 2 Partition 1 Système d exploitation en RAM 300K 200K 0 Partition 1 Système d exploitation en RAM 300K 200K 0 L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 7/43

Réservation par les processus Les programmes déclarent la taille dont ils ont besoin au chargement Le SE cherche une zone libre de taille suffisante plusieurs processus, pas d échange, pas de pagination exemple MINIX (ancêtre de Linux) Système d exploitation en RAM Processus 1 Système d exploitation en RAM 0 1 0 1 0 1 0 1 Processus 3 Processus 3 Processus 3 0 1 0 1 0 1 Processus 2 Processus 2 Processus 2 Processus 2 Processus 1 Processus 1 Processus 4 Système Système Système Système d exploitation d exploitation d exploitation d exploitation en RAM en RAM en RAM en RAM L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 8/43

Problèmes liés à la multiprogrammation Réallocation : un processus doit pouvoir être chargé à n importe quelle adresse mémoire Translation des adresses globales lors du chargement du programme en mémoire Utilisation des modes d adressage relatif à un registre (pile/instruction/registre de segment) Protection : interdire à un processus l accès à l espace mémoire des autres processus et du système d exploitation registres de protection : base + limite bits de protection des pages de la mémoire L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 9/43

Problème d espace mémoire Système à temps partagé : la mémoire disponible peut être insuffisante à un moment donné 1. Interdire de nouveaux processus (exemple MINIX) 2. Placer certains processus en mémoire secondaire pour libérer de l espace mémoire en attendant que la charge mémoire diminue. Les processus swapés ne sont pas exécutables 3. Placer des bouts de la mémoire des processus en mémoire secondaire : mécanisme de la mémoire virtuelle. Les processus sont partiellement exécutables L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 10/43

Echange sur mémoire secondaire (swap) 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Processus 3 Processus 3 Processus 3 Processus 3 Processus 3 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Processus 2 Processus 2 Processus 2 Processus 2 0 1 0 1 0 1 0 1 Processus 1 0 1 0 1 0 1 0 1 Processus 1 Processus 1 Processus 1 0 1 0 1 Processus 4 Processus 4 Processus 4 0 1 Système Système Système Système Système Système Système Système d exploitation d exploitation d exploitation d exploitation d exploitation d exploitation d exploitation d exploitation en RAM en RAM en RAM en RAM en RAM en RAM en RAM en RAM Le processus 1 est placé en attente sur le disque Nécessite un mécanisme de réallocation dynamique (registres base + limite) L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 11/43

Mémoire virtuelle Pagination : adresse = numéro de page + déplacement Segmentation : adresse = base d un segment + déplacement L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 12/43

Pagination Indirection : adresse linéaire adresse physique Espace virtuel de 64K Adresses linéaires X X X X X 7 X 5 6 3 X X 2 1 3 0 Pages virtuelles de 4K Pages physiques de 4K Mémoire réelle de 32K Adresse physique 28K 32K 24K 28K 20K 24K 16K 20K 12K 16K 8K 12K 4K 8K 0 4K L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 13/43

Pagination Indirection : adresse linéaire adresse physique MMU : memory management unit (unité de gestion mémoire) Table des pages : tableau donnant pour chaque page virtuelle : si la page virtuelle correspond ou non à une page physique dans ce cas, le numéro de la page physique les droits d accès (lecture/modification/exécution) d autres informations: page accédée, modifiée, etc L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 14/43

Table des pages Espace virtuel de 64K Adresses linéaires X X X X X 7 X 5 6 3 X X 2 1 3 0 Pages virtuelles de 4K Pages physiques de 4K Mémoire réelle de 32K Adresse physique 28K 32K 24K 28K 20K 24K 16K 20K 12K 16K 8K 12K 4K 8K 0 4K 1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 Table des pages 0 000 000 000 000 000 111 000 101 110 011 000 000 010 001 011 110 000 110 110 110 000 000 101 101 001 000 001 000 Page absente 000 000 000 000 Page présente Page physique numéro 7 accès en lecture ou en modification accès en lecture ou en exécution accès en exécution L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 15/43

Pagination Indirection : adresse linéaire adresse physique Adresse physique 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0x3C31 Table des pages 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0x6C31 Adresse linéaire virtuelle L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 16/43

Table des pages à deux niveaux Double indirection : adresse linéaire adresse physique Adresse physique 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0x88A7EC31 Table des pages de 2ième niveau Table des pages de 2ième niveau numéro 00110000 numéro 1101100110 Table des pages de 1er niveau 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0xD9B66C31 Adresse linéaire virtuelle L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 17/43

Table des pages Utilisée par le matériel (MMU). Un registre du MMU contient l adresse de la table des pages de 1er niveau Le SE gère les tables Chaque processus possède sa propre table des pages = chaque processus a son propre espace virtuel Entrée d une table (suivant le type de CPU) : 1. bit présent/absent 2. numéro de la page physique 3. bits de protections : accès en lecture, modification, exécution, mode utilisateur/noyau 4. bits modifié et accédé mis à 1 par le MMU lorsque la page est modifiée ou accédée 5. bit d inhibition du cache (par exemple pour l accès direct à la mémoire vidéo) L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 18/43

Gestion de l espace virtuel des processus Le SE offre un espace virtuel à tous les processus Le SE accepte toutes les demandes de création/modification de l espace virtuel utilisateur par les processus en mode utilisateur : Création initiale des zones du code, des données et de la pile (lors d un execve()) Chargement des librairies dynamiques (à la fin du execve()) Extension du tas vers le haut (brk() et indirectement malloc()) Mémoire partagée avec les fonctions IPC shmat() et shmdt() Projection de fichier avec les fonctions mmap() et munmap()... L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 19/43

Remplacement des pages Si la mémoire physique n est pas suffisante, le SE décide de libérer des pages physiques en plaçant leur contenu en mémoire secondaire = fichier/partition de swap sur le disque dur Une processus accédant à une page placée sur disque engendre une exception : un défaut de page Le SE doit alors recharger la page manquante depuis le disque (en plaçant éventuellement une autre page physique dans la mémoire secondaire) et relancer le processus qui a créé l exception L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 20/43

Statistiques $ for in in a a a a a a a a a a a ; do ls -lr /usr > /dev/null & done [1] 4431... $ top top - 15:17:22 up 7:07, 1 user, load average: 14.86, 4.85, 1.77 Tasks: 107 total, 22 running, 85 sleeping, 0 stopped, 0 zombie Cpu(s): 72.5% us, 26.9% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.7% hi, 0.0% si Mem: 61852k total, 60624k used, 1228k free, 6148k buffers Swap: 88316k total, 12624k used, 75692k free, 4268k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4465 bechet 18 0 2988 1352 1932 R 17.7 2.2 0:09.65 ls 4482 bechet 23 0 3048 1416 1932 R 6.5 2.3 0:02.79 ls... $ free total used free shared buffers cached Mem: 61852 60748 1104 0 3660 3084 -/+ buffers/cache: 54004 7848 Swap: 88316 19540 68776 L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 21/43

Statistiques $ cat /proc/1/status Name: init State: S (sleeping) SleepAVG: 90% Tgid: 1 Pid: 1 PPid: 0 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: VmSize: 1408 kb VmLck: 0 kb VmRSS: 496 kb VmData: 148 kb VmStk: 4 kb VmExe: 28 kb VmLib: 1204 kb Threads: 1... L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 22/43

Espace virtuel d un processus $ cat /proc/1/maps 08048000-0804f000 r-xp 0 03:08 375383 /sbin/init 0804f000-08050000 rw-p 00006000 03:08 375383 /sbin/init 08050000-08071000 rw-p 08050000 00:00 0 4-40014000 r-xp 0 03:08 1011854 /lib/ld-2.3.3.so 40014000-40015000 rw-p 00013000 03:08 1011854 /lib/ld-2.3.3.so 40015000-40016000 rw-p 40015000 00:00 0 4002b000-40144000 r-xp 0 03:08 1011907 /lib/tls/libc-2.3.3.so 40144000-40148000 rw-p 00118000 03:08 1011907 /lib/tls/libc-2.3.3.so 40148000-4014b000 rw-p 40148000 00:00 0 bffff000-c rw-p bffff000 00:00 0 ffffe000-fffff000 ---p 0 00:00 0 L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 23/43

Espace virtuel avec IPC $ lecteur_shm & [1] 15175 $ cat /proc/15175/maps 08048000-08049000 r-xp 0 03:02 1567263 /home/bechet/cours/c/lec 08049000-0804a000 rw-p 0 03:02 1567263 /home/bechet/cours/c/lec 4-40014000 r-xp 0 03:08 1011854 /lib/ld-2.3.3.so 40014000-40015000 rw-p 00013000 03:08 1011854 /lib/ld-2.3.3.so 40015000-40016000 rw-p 40015000 00:00 0 4002b000-40144000 r-xp 0 03:08 1011907 /lib/tls/libc-2.3.3.so 40144000-40148000 rw-p 00118000 03:08 1011907 /lib/tls/libc-2.3.3.so 40148000-4014b000 rw-p 40148000 00:00 0 4014b000-40164000 r--s 0 00:06 1376259 /SYSV000186ac (deleted) bfffe000-c rw-p bfffe000 00:00 0 ffffe000-fffff000 ---p 0 00:00 0 L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 24/43

Espace virtuel avec maps $ lecteur_proj & [1] 15325 $ cat /proc/15325/maps 08048000-08049000 r-xp 0 03:02 1567267 /home/bechet/cours/c/lec 08049000-0804a000 rw-p 0 03:02 1567267 /home/bechet/cours/c/lec 4-40014000 r-xp 0 03:08 1011854 /lib/ld-2.3.3.so 40014000-40015000 rw-p 00013000 03:08 1011854 /lib/ld-2.3.3.so 40015000-40016000 rw-p 40015000 00:00 0 40016000-40017000 r--s 0 03:02 1567272 /home/bechet/cours/c/ess 40017000-40018000 rw-p 40017000 00:00 0 4002b000-40144000 r-xp 0 03:08 1011907 /lib/tls/libc-2.3.3.so 40144000-40148000 rw-p 00118000 03:08 1011907 /lib/tls/libc-2.3.3.so 40148000-4014b000 rw-p 40148000 00:00 0 bfffd000-c rw-p bfffd000 00:00 0 ffffe000-fffff000 ---p 0 00:00 0 L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 25/43

Espace virtuel d un processus Divisé en pages virtuelles (en général de 4K ou 8K) Chaque page virtuelle est indépendante des autres: Non allouée = l accès engendre une exception Segmentation fault Allouée à de la mémoire privée, à une zone IPC de mémoire partagée ou à une projection d un fichier ou la copie d une zone. Les données sont alors soit non reservées (la page n a pas encore été accédée), soit en mémoire principale ou secondaire (dans la zone de swap ou dans le fichier projeté). Un accès non autorisé engendre une exception Segmentation fault : page non-allouée, tentative de modification sur une page protégée en écriture, etc L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 26/43

Algorithmes de remplacement de pages Quand un défaut de page se produit, le SE doit remplir une page libre avec des zéros ou bien depuis la mémoire secondaire = il doit parfois libérer une page en mémoire physique pour faire de la place Le SE doit choisir une page à libérer Si une page physique n a pas été modifiée (bit modifié à 0), il la libère directement Si la page a été modifiée, il doit d abors la recopier en mémoire secondaire puis il peut la libérer L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 27/43

Algorithme optimal de remplacement Libérer une page qui ne sera plus utilisée ou bien libérer la page qui sera utilisée le plus tard possible = impossible : le SE doit être un devin L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 28/43

Une page récemment non utilisée bit page modifiée : la page a été modifiée bit page accédée : la page a été accédée depuis la dernière remise à zéro du bit Le SE met régulièrement (typiquement 20ms) tous les bits accédés à zéro = permet de connaître les pages récemment utilisées Les pages sont libérées dans l ordre suivant : 1. une page non accédée récemment et non modifiée 2. une page non accédée récemment et modifiée (précédement) 3. une page accédée récemment et non modifiée 4. une page accédée récemment et modifiée (précédement) L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 29/43

Première page entrée, première sortie Algorithme très simple et rapide sur la liste de pages : la page la plus ancienne est libérée Fonctionne même en l absence du bit page accédée L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 30/43

Algorithme de la seconde chance Algorithme similaire au précédent mais qui regarde le bit page accédée de la page la plus ancienne = si la page a été accédée, elle est mise en queue de la liste des pages (avec son bit accédé mis à zéro) et on regarde la page suivante dans la liste L algorithme termine même si toutes les pages ont été accédées car après un tour toutes les pages ont le bit accédé à zéro Mis-en-oeuvre à l aide d une liste circulaire L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 31/43

La page la moins récemment utilisée Idée : les pages les plus référencées les pages les plus utilisées dans le futur proche Idée : les pages les moins récemment utilisées les pages peu ou pas utilisées dans le futur Libérer la page la moins récemment accédée = principe intéressant mais coûteux sauf avec un matériel spécialisé L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 32/43

Page à la demande Pas d allocation non sollicitée : seules les pages effectivement accédées par un processus sont placées dans son espace virtuel Les pages correspondant au code et aux données d un programme ou d une librairie dynamique ne sont pas chargées lors de l initialisation du processus (lors de l appel execve()) mais lorsque le processus y accède Un processus commence sa vie sans avoir de page physique associée à son espace virtuel La première opération d un processus consiste à charger la page correspond au code de démarrage du processus L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 33/43

Copie lors de la première modification Pas de copie lors d un fork() : les pages du processus d origine sont marquées en lecture seule et ne sont copiées dans le processus fils ou père qu à la première modification = patage maximum des pages physiques entre père et fils Projection directe du programme en mémoire même pour les sections modifiables (segment data) = option MAP_PRIVATE de l appel système mmap() L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 34/43

Extension automatique de la pile Si un processus accède à la page qui se trouve juste sous la pile, le SE suppose que le processus a besoin de plus de place pour la pile = la zone de pile s agrandit automatiquement L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 35/43

Vérrouillage des pages Les processus privilégiés (root) peuvent demander à ce que des zones de leur espace virtuel ne soient pas swapables sur la mémoire secondaire Appel système mlock(adresse, longeur) Applications Algorithmes temps réel (musique/vidéo) Traitement des données confidentielles L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 36/43

Rôle du SE dans la pagination 1. Permettre de définir l espace virtuel d un processus en terme de zone de pages ayant des caractèristiques identiques 2. Gérer les tables des pages des processus 3. Récupérer les défauts de page engendrés par les processus et effectuer le traitement approprié 4. S assurer à chaque instant d un ensemble de pages physiques libres en plaçant éventuellement des pages sur la mémoire secondaire L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 37/43

Gestion des défauts de pages 1. Récupérer l adresse virtuelle qui a déclenché l erreur 2. Déclencher une exception Segmentation fault si l adresse ne correspond à aucune zone de l espace virtuel (attention au cas de l extension automatique de la pile) ou à un accès non autorisé 3. En cas d écriture, si la page est en mode copie à la première modification : la page est recopiée vers une nouvelle page physique qui devient modifiable 4. Si la page n a pas encore été accédée et correspond à une zone initialisée à zéro : une page physique nulle est associée à la page virtuelle 5. Si la page correspond à une projection d un fichier, une page physique est associée à la zone du fichier ainsi qu à l espace virtuel 6. Sinon, la page a été swapée L3 Informatique -et Systèmes il d exploitation faut la- Gestion recharger de la mémoire - Version 2008.0 p. 38/43

Segmentation Historiquement important mais peu utilisé de nos jours où on préfère la pagination Adresse segmentée = Numéro de segment/numéro de registre de ségment + déplacement Segment = Adresse de base + Taille + Droit d accès Adresse physique = Adresse de base du segment + déplacement Valide si déplacement < Taille et les droits d accès sont respectés L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 39/43

Intérêts de la segmentation Moins complexe que la pagination Permet le déplacement de la zone de mémoire physique correspondant à un segment vers une autre zone (pour faire de la place, augmenter la taille d un segment) Réalisable (dans les CPU) avec des registres de segments contenant la base, la taille et les droits du segment Autorise la séparation des informations (code, données, pile) Simplifie la gestion des librairies dynamiques si le matériel autorise l utilisation de nombreux segments en même temps L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 40/43

Windows (2000/XP) et Linux La segmentation possible du Pentium n est pas utilisée (La base de tous les segments est 0) La pagination est présente dans les deux SE Espace virtuel de 4Go (pour le Pentium): 0 à 0x7FFFFFF (XP) ou 0 à 0xBFFFFFF (Linux) pour l espace en mode utilisateur et noyau et 0x8 à 0xFFFFFFFF (XP) ou 0xC à 0xFFFFFFFF pour l espace en mode noyau La partie haute (noyau) est identique pour tous les processus Page à la demande Copie à la première modification Algorithmes de remplacement différents entre les deux SE L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 41/43

Remplacement des pages pour Windows Les processus ont un pool de pages physiques associées variant entre un minimum et un maximum Un thread système se charge de mettre ou d enlever les pages physiques du pool d un processus Deux threads systèmes sont chargés de mettre sur la mémoire secondaire des pages modifiées sorties du pool des processus (swap ou projection de fichier) Un thread système est chargé de swapper toutes les pages des processus inactif depuis un certain temps Les pages physiques qui ne sont pas dans un pool sont modifiée, propres, libres, à zéro ou défectueuses Algorithme local et gobal au processus L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 42/43

Remplacement des pages pour Linux Algorithme global aux processus Le thread système kswapd se charge de la libération des pages Cherche à atteindre un taux de pages libres disponibles Libération des pages sur le principe de la recherche de pages non utilisées récemment L3 Informatique - Systèmes d exploitation - Gestion de la mémoire - Version 2008.0 p. 43/43