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



Documents pareils
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

Partie 7 : Gestion de la mémoire

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

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

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

GESTION DE LA MEMOIRE

Systemes d'exploitation des ordinateurs

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

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

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

Gestion de la mémoire

Cours A7 : Temps Réel

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

Structure fonctionnelle d un SGBD

Architecture des ordinateurs

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

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

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

SYSTÈME DE GESTION DE FICHIERS

Introduction aux SGBDR

Licence Sciences et Technologies Examen janvier 2010

CH.3 SYSTÈMES D'EXPLOITATION

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

NOTIONS DE RESEAUX INFORMATIQUES

Support de cours système d exploitation

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Système de Gestion de Fichiers

Concept de machine virtuelle

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

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Petit guide des sous-réseaux IP

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

Version default Titre : Procédure POURSUITE Date : 07/04/2009 Page : 1/10 Responsable : Clé : U Révision : 496

CHAPITRE 4 LA MÉMOIRE DE L'ORDINATEUR

Chapitre 4 : Les mémoires

Cours Programmation Système

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Optimisation de 4D Server et 4D Web Server. Résumé. 4D Notes techniques

Plus courts chemins, programmation dynamique

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

Systèmes de transmission

Réalisation d un OS 32 bits pour PC(x86)

IV- Comment fonctionne un ordinateur?

Les techniques de multiplexage

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Manuel de System Monitor

Introduction à la Programmation Parallèle: MPI

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

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

environnements SQL Server?

Conventions d écriture et outils de mise au point

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

la virtualisation pour quoi faire?

Chapitre 3 : Système de gestion de fichiers

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

TD 1 - Transmission en bande de passe

Cours d initiation à la programmation en C++ Johann Cuenin

1.1 L EXPLORATEUR WINDOWS

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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

MEMOIRES MAGNETIQUES A DISQUES RIGIDES

Dynamic Host Configuration Protocol

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

Résolution d équations non linéaires

Informatique Générale

GPA770 Microélectronique appliquée Exercices série A

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Logiciel de base. Première année ENSIMAG

Représentation des Nombres

Système de stockage IBM XIV Storage System Description technique

Extrait de Plan de Continuation d'activité Octopuce

Rappels d architecture

Cours de Système : Gestion de Fichiers

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Présentation du système DNS

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Prestations de conseil en SRM (Storage Ressource Management)

Représentation d un entier en base b

«Commande» se rapporte à un bon de commande ou à une commande créée sur un site Internet Interoute.

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Acquisition des données

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Les réseaux cellulaires

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Gestion répartie de données - 1

LES SYSTÈMES DE FICHIERS

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Cours de Systèmes d Exploitation

DNS ( DOMAIN NAME SYSTEM)

Programmation impérative

Transcription:

Systèmes d Exploitation - ENSIN6U3 Gestion de la mémoire Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté des Sciences

Table de matière 1 Généralités 2 Le partage de la mémoire Allocation de mémoire Allocation de la mémoire contiguë Allocation non-contiguë : la pagination Segmentation 3 La mémoire virtuelle Algorithmes de remplacement Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 2 / 61

Table de matière Généralités 1 Généralités 2 Le partage de la mémoire Allocation de mémoire Allocation de la mémoire contiguë Allocation non-contiguë : la pagination Segmentation 3 La mémoire virtuelle Algorithmes de remplacement Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 3 / 61

Généralités Généralités Notion de mémoire La mémoire est une ressource : partageable / non partageable réquisitionnable / non réquisitionnable reutilisable Mémoire d un processus Chaque processus travail dans un mémoire logique qui est vu comme un tableau de cases mémoire. Mémoire logique Cette mémoire logique est dite linéaire car les cases qui la composent sont contiguës. Ces cases sont repérées par des entiers consécutifs qui sont appelés des adresses logiques. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 4 / 61

Généralités Adresses logiques vs. adresses physiques Génération d adresses Lors de l exécution, chaque processus P génère des adresses logiques. A l opposé, les cases de la mémoire physique sont repérées par des adresses physiques. Adresses logiques : privé au le programme, utilisé par l unité centrale. Adresses physiques : accès à la mémoire, instructions de lecture/écriture de/à un registre, la MMU («memory management unit») transforme les adresses logiques en adresses physiques. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 5 / 61

Généralités Catégories de mémoire Organisation de la mémoire Mém. physique contiguë Mém. logique contiguë Correspondance fixe partitions fixes partition unique Mém. physique non contiguë mémoire paginée mémoire virtuelle paginée partitions variables Mém. logique non contiguë mémoire segmentée mémoire segmentée paginée Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 6 / 61

Le partage de la mémoire Table de matière 1 Généralités 2 Le partage de la mémoire Allocation de mémoire Allocation de la mémoire contiguë Allocation non-contiguë : la pagination Segmentation 3 La mémoire virtuelle Algorithmes de remplacement Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 7 / 61

Le partage de la mémoire Allocation de mémoire Allocation de mémoire Correspondance entre adresses La correspondance entre adresses logiques et adresses physiques : statique (établie une seule fois) ; dynamique (variable dans le temps). Gestion de la mémoire physique Partage de données entre processus ; Protection de chaque processus. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 8 / 61

Le partage de la mémoire Système à partition unique (1/2) Allocation de la mémoire contiguë Va-et-vient ou swapping Un seul processus est placé en mémoire à la fois. RL S.E. partition unique mémoire RB Caractéristiques les processus sont tous et toujours à la même adresse physique ; la correspondance logique/physique est réglée lors de la compilation ou du chargement ; la réquisition de la CPU entraîne la sauvegarde de la partition et le chargement d un nouveau processus ; la CPU est inutilisée durant les sauvegardes/récupérations. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 9 / 61

Le partage de la mémoire Système à partition unique (2/2) Allocation de la mémoire contiguë Protection La protection est possible par le jeu des deux registres spécialisées RB (registre de base) et RL (registre limite). Sauvegarde Pour limiter les E/S, le système sauvegarde uniquement les zones de la partition qui ont été modifiées et/ou applique l algorithme des pelures d oignons. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 10 / 61

Les recouvrements Le partage de la mémoire Allocation de la mémoire contiguë Objectifs Limiter la taille de la mémoire occupée par le code du programme. Caractéristiques les programmes de taille importante sont découpés en plusieurs parties indépendantes ; une partie reste systématiquement en mémoire, c est la racine du recouvrement ; les autres parties sont chargées en mémoire à la demande. mémoire physique A B C programme (3 parties) A B configuration 1 A C configuration 2 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 11 / 61

Le partage de la mémoire Système à partitions fixes Allocation de la mémoire contiguë S.E. zone 1 zone 2 mémoire A B C programmes Allocation de la mémoire U.C. A(1) C(2) B(1) programme(zone) Canal. C(2) A(1) B(1) C(2) chargement sauvegarde Chronogramme d'activité Caractéristiques la mémoire est divisée en zones de taille fixe (spécialisation); les processus s exécutent toujours dans la même zone ; pendant les échanges sur la zone 1, un autre processus s exécute sur la zone 2 ; la correspondance logique/physique est réglée lors de la compilation ou du chargement ; protection possible par les registres RB et RL. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 12 / 61

Le partage de la mémoire Système à partitions variables Allocation de la mémoire contiguë RL RB 6 150 0 A 150 A 1 B 151 B 2 3 C D 3 3 < RL oui + 152 153 C D 4 E 154 E 5 F non 155 F déroutement sur erreur d'adressage Caractéristiques les partitions sont allouées et libérées à la demande (création ou fin d un processus) ; le registre de base (RB) pointe sur la partition et le registre limite (RL) en indique la taille. Les processus génèrent des adresses logiques comprises entre 0 et RL-1 ; RB et RL sont utilisés par la CPU pour traduire ces adresses en adresses physiques à chaque accès mémoire. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 13 / 61

Le partage de la mémoire Allocation de la mémoire contiguë Allocation par chaînage des zones libres Zones libres Les zones libres sont placées dans une liste chaînée. Où placer les processus? Il existe plusieurs stratégies de recherche : First-fit : première zone libre suffisamment grande ; Best-fit : meilleur ajustement pour utiliser au mieux les zones libres : il faut parcourir toutes les zones ; il reste des petits résidus inutilisables. Worst-fit : plus grand résidu combat l émiettement. Algorithmes spécialisés. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 14 / 61

Le partage de la mémoire Allocation de la mémoire contiguë Algorithmes d ordonnancement (1/3) First fit Noyau Proc1 + Proc3 Proc2 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 15 / 61

Le partage de la mémoire Allocation de la mémoire contiguë Algorithmes d ordonnancement (1/3) First fit Noyau Proc1 Noyau Proc1 + Proc3 Proc3 Proc2 Proc2 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 15 / 61

Le partage de la mémoire Allocation de la mémoire contiguë Algorithmes d ordonnancement (2/3) Best fit Noyau Proc1 + Proc3 Proc2 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 16 / 61

Le partage de la mémoire Allocation de la mémoire contiguë Algorithmes d ordonnancement (2/3) Best fit Noyau Proc1 Noyau Proc1 + Proc3 Proc2 Proc2 Proc3 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 16 / 61

Le partage de la mémoire Allocation de la mémoire contiguë Algorithmes d ordonnancement (3/3) Worst fit Noyau Proc1 + Proc3 Proc2 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 17 / 61

Le partage de la mémoire Allocation de la mémoire contiguë Algorithmes d ordonnancement (3/3) Worst fit Noyau Proc1 Noyau Proc1 + Proc3 Proc3 Proc2 Proc2 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 17 / 61

La recherche d une zone libre est rapide et il est facile de reconstruire des zones à la libération. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 18 / 61 Le partage de la mémoire Allocation de la mémoire contiguë Allocation par subdivision (buddy system) Taille des zones La taille des zones suit une règle définie par une relation de récurrence : binaire : (1, 2, 4, 8,...) S i+1 = 2 S i fibonacci : (1, 2, 3, 5, 8,...) S i+1 = S i + S i 1 Zones libres Il existe une liste de zones libres pour chaque taille. allouer un bloc de taille T si il existe un bloc de taille T alors renvoyer ce bloc sinon allouer un bloc de 2 T libérer la deuxième partie de ce bloc renvoyer la première partie fin si

Le partage de la mémoire Exemple d allocations/libérations Allocation de la mémoire contiguë Buddy system 8 A 2 4 A B 1 4 A B 1 C 2 B 1 C 2 2 B 1 8 4 2 Alloc. de A, longueur = 2 Alloc. de B, longueur = 1 Alloc. de C, longueur = 2 Libération de A Libération de C Libération de B Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 19 / 61

Le partage de la mémoire Fragmentation externe/interne Allocation de la mémoire contiguë Fragmentation externe La fragmentation externe est due à l émiettement de la mémoire lors des allocations/libérations. Fragmentation interne La fragmentation interne c est l unité de mémoire minimum que le S.E. est capable de gérer (généralement plusieurs Kilooctets). Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 20 / 61

Le compactage Le partage de la mémoire Allocation de la mémoire contiguë Objectif Le compactage de la mémoire procède par recopie des partitions pour faire apparaître une zone libre de taille suffisante. Exemples 100 100 100 100 100 100 50 100 100 50 100 100 50 50 50 200 150 100 50 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 21 / 61

La pagination (1/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description But : solution à la fragmentation, Voir : la gestion de l espace sur disque, les bloques. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 22 / 61

La pagination (1/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description But : solution à la fragmentation, Voir : la gestion de l espace sur disque, les bloques. La mémoire logique est découpée en pages (toujours une puissance de 2). Une adresse logique dans un système paginé est un couple : (# page logique, déplacement) Une adresse physique est un couple : (# page physique, déplacement) Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 22 / 61

La pagination (1/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description But : solution à la fragmentation, Voir : la gestion de l espace sur disque, les bloques. Si La mémoire logique est découpée en pages (toujours une puissance de 2). Une adresse logique dans un système paginé est un couple : (# page logique, déplacement) Une adresse physique est un couple : (# page physique, déplacement) A = adresse logique, T = taille de page alors # page logique = A/T, déplacement = A%T Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 22 / 61

La pagination (2/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description La mémoire physique est découpée en cadres de page (même taille d une page). Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 23 / 61

La pagination (2/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description La mémoire physique est découpée en cadres de page (même taille d une page). Adresses physique est un couple (f, d), cadre de pages et déplacement. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 23 / 61

La pagination (2/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description La mémoire physique est découpée en cadres de page (même taille d une page). Adresses physique est un couple (f, d), cadre de pages et déplacement. A chaque page logique p peut correspondre un cadre de page f = f(p). Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 23 / 61

La pagination (2/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description La mémoire physique est découpée en cadres de page (même taille d une page). Adresses physique est un couple (f, d), cadre de pages et déplacement. A chaque page logique p peut correspondre un cadre de page f = f(p). Cette correspondance est maintenue dans la table des pages. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 23 / 61

La pagination (2/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description La mémoire physique est découpée en cadres de page (même taille d une page). Adresses physique est un couple (f, d), cadre de pages et déplacement. A chaque page logique p peut correspondre un cadre de page f = f(p). Cette correspondance est maintenue dans la table des pages. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 23 / 61

La pagination (2/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description La mémoire physique est découpée en cadres de page (même taille d une page). La MMU Adresses physique est un couple (f, d), cadre de pages et déplacement. A chaque page logique p peut correspondre un cadre de page f = f(p). Cette correspondance est maintenue dans la table des pages. La MMU (memory management unit) calcule un adresse physique à partir d un adresse logique selon la formule phys(p, d) = (f(p), d) Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 23 / 61

La pagination (2/2) Le partage de la mémoire Allocation non-contiguë : la pagination Description La mémoire physique est découpée en cadres de page (même taille d une page). La MMU Adresses physique est un couple (f, d), cadre de pages et déplacement. A chaque page logique p peut correspondre un cadre de page f = f(p). Cette correspondance est maintenue dans la table des pages. La MMU (memory management unit) calcule un adresse physique à partir d un adresse logique selon la formule Gestion de la multiprogrammation phys(p, d) = (f(p), d) Le PTBR, registre de base de la table de pages, «page-table base register». Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 23 / 61

Le partage de la mémoire Allocation non-contiguë : la pagination Traduction des adresses logiques en adresses physiques (1/3) Fonction de pagination La fonction de pagination assure la correspondance entre le numéro de la page logique et le numéro de la page physique. 0 1 Mémoire logique Mémoire physique 0 1 Fonction de pagination n 2-1 n 2-1 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 24 / 61

Le partage de la mémoire Allocation non-contiguë : la pagination Traduction des adresses logiques en adresses physiques (2/3) Table de pages Pour chaque processus, le S.E. détient une table de pages logiques qui fait la correspondance avec les pages physiques. adr. logique npl dep vérifier que npl < RL + npp prot npp npp dep R. de base RL Table des pages (desc) adr. physique Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 25 / 61

Le partage de la mémoire Allocation non-contiguë : la pagination Traduction des adresses logiques en adresses physiques (3/3) Version algorithmique de la correspondance npl, dépl := adresse logique si (npl < RL) alors si les protections desc[npl].prot sont respectées alors npp := desc[npl].npp adresse_physique := npp, dépl sinon déroutement sur violation de protection fin si sinon déroutement sur erreur d adressage fin si Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 26 / 61

Le partage de la mémoire Exemple de pagination Allocation non-contiguë : la pagination Exemple Mémoire logique du processus 1 A B C Table des pages du processus 1 pages physiques A D F C B Table des pages du processus 2 Mémoire logique du processus 2 D E F G E G Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 27 / 61

Le partage de la mémoire Avantages et inconvénients Allocation non-contiguë : la pagination Avantages La gestion de la mémoire est plus simple (il suffit de gérer la liste des pages libres). Le compactage est inutile. Protections différentes pour chaque page. Inconvénients Le temps d accès en mémoire est doublé. temps d accès = 2 t = 2 nanosecondes. Il faut que le matériel supporte cette organisation. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 28 / 61

Le partage de la mémoire Comportement des processus Allocation non-contiguë : la pagination Non uniforme Le comportement «en moyenne»des processus est non uniforme : 20% des pages regroupent 75% des accès. Principe de localité les accès sont stable sur une courte période ; l activité actuelle est une bonne estimation de l activité future. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 29 / 61

Le partage de la mémoire Allocation non-contiguë : la pagination Les tables de pages : utilisation de la mémoire Une table par processus Problème : si adresse logique {0,...,2 32 1} taille d une page = 4K = 2 12, alors taille de la table de pages = 2 20. Solutions plusieurs niveaux d indirection (table de page paginée), tables de pages inversées, partage de pages. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 30 / 61

Le partage de la mémoire Mémoires associatives Allocation non-contiguë : la pagination entre 16 et 512 100 100 500 500 échec Caractéristiques Peu de temps d attente car les tests sont faits en parallèle (20 nanosecondes) ; Ces circuits sont très onéreux. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 31 / 61

Le partage de la mémoire Allocation non-contiguë : la pagination Mémoires associatives et pagination Principe Retenir les derniers couples (page logique, page physique), pour éviter l accès mémoire à la table des pages. adr. logique npl dep mémoire associative échec succès vérifier que npl < RL + npp prot npp npp dep RB RL Table des pages (desc) adr. physique Il faut mettre à jour la M.A. après les échecs et la vider lors des commutations. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 32 / 61

Le partage de la mémoire Allocation non-contiguë : la pagination Partage de pages entre processus Mémoire logique du processus 1 Pa Pb D1 D2 Table des pages du processus 1 pages physiques Pa Pb D1 D2 D4 D5 D6 Table des pages du processus 2 Mémoire logique du processus 2 Pa Pb D4 D5 D6 D7 D7 Les pages contenant le programme (Pa et Pb) sont partagées, mais les pages de données (D1,, D7) ne le sont pas. Principe Les pages contenant le programme Pa et Pb sont partagées, tandis que les pages Dx ne le sont pas. Pour une même page physique, il est possible d avoir des protections différentes suivant le processus qui l utilise. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 33 / 61

Le partage de la mémoire La mémoire segmentée Segmentation Notion de segments Un segment est un bloc de donnée de taille variable. 0 2 code 2 L2 code 1 L0 3 data 2 L3 1 data 1 L1 Adresse logique Une adresse logique dans un système segmenté (aussi appelée adresse segmentée) est un couple (# segment, déplacement) Cette organisation physique de la mémoire corresponds bien à l organisation logique à l intérieur d un programme. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 34 / 61

Le partage de la mémoire Segmentation Transformation des adresses segmentées Table de segments Le S.E. détient une table des segments pour chaque processus. mémoire physique taille prot origine code 2 RB 0 L0 1 L1 2 3 L2 L3 RL code 1 table des segments (desc) Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 35 / 61

Le partage de la mémoire Segmentation Transformation des adresses segmentées Version algorithmique de la correspondance seg, dépl := adresse logique si (seg < RL) et (desc[seg].taille) alors si les protections desc[seg].prot sont respectées alors adresse_physique := desc[seg].origine + dépl sinon déroutement sur violation de protection fin si sinon déroutement sur erreur d adressage fin si Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 36 / 61

Le partage de la mémoire Segmentation Partage de segment entre processus Exemple P1 P2 0 1 1 data 1 code data 2 0 taille prot origine 0 1 table des segments de P1 taille prot origine 0 1 table des segments de P2 data 1 code data 2 Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 37 / 61

Le partage de la mémoire Avantages et inconvénients Segmentation Avantages les protections concernent les segments, on peut utiliser les mémoires associatives, le partage de segment est simple. Inconvénients L allocation de segments implique : un problème de fragmentation externe ; une obligation du tassage de la mémoire. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 38 / 61

Le partage de la mémoire Segmentation Pagination d une mémoire segmentée Adresse logique Une adresse logique (ou adresse segmentée et paginée) est un triplet (# segment, # de page, déplacement) La taille des segments s exprime maintenant en nombre de pages. adr. segmentée et paginée seg npl dep adr. physique + vérifier que (npl < L) + npp dep R. de base L npp L Table des segments Table des pages du segment seg Avantages Plus de problème de fragmentation interne puisque les segments ne sont plus contigus en mémoire physique. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 39 / 61

Table de matière La mémoire virtuelle 1 Généralités 2 Le partage de la mémoire Allocation de mémoire Allocation de la mémoire contiguë Allocation non-contiguë : la pagination Segmentation 3 La mémoire virtuelle Algorithmes de remplacement Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 40 / 61

La mémoire virtuelle Mémoire virtuelle paginée Principe Les programmes utilisent 20% de leur page, donc il est inutile de toutes les conserver en mémoire. Exemple Considérons une mémoire physique avec 1000 cadres de page. Cette mémoire peut stocker : 10 processus de 100 pages logiques ; 50 processus de (100 0, 2) pages utiles. Rôle du S.E. Le S.E. doit détecter (avec l aide du matériel) : les pages inutilisées (réquisition) ; les pages utiles et présentes en mémoire physique ; les pages utiles et absentes de la mémoire physique (défaut de page) ; les pages utiles dans le futur et absentes de la mémoire physique Leonardo(préchargement). Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 41 / 61

La mémoire virtuelle Fonction de pagination virtuelle Mémoire virtuelle Mémoire physique zone de pagination en mémoire secondaire Fonction de pagination Défaut de page Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 42 / 61

La mémoire virtuelle Hiérarchie de mémoire Compilation Registres de la CPU Gestion de la mémoire virtuelle Mémoire cache (de la CPU) Mémoire cache (lente) Mémoire centrale Mémoire secondaire rapide Mémoire secondaire standard Gestion de la mémoire cache Swapping in / out Mémoire secondaire lente (bandes,...) Gestion de cache La mémoire virtuelle implante la gestion d un niveau de cache. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 43 / 61

La mémoire virtuelle Adresses virtuelles versus adresses physiques adr. virtuelle npv dep mémoire associative succès échec présent modif prot npp + 1 0 npp npp dep RB RL adr. physique défaut de page si présent = 0 Table des pages virtuelles (desc) Table des pages virtuelles Pour chaque processus, le S.E. détient une table des pages virtuelles. Cette table est stockée en mémoire et pointée par le registre de base. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 44 / 61

La mémoire virtuelle Transformation des adresses virtuelles Version algorithmique de la correspondance npv, dépl := adresse virtuelle si (npv < RL) alors si les protections desc[npv].prot sont respectées alors si (desc[npv].présent = 1) alors npp := desc[npv].npp adresse_physique := <npp, dépl> sinon déroutement sur défaut de page fin si sinon déroutement sur violation de protection fin si sinon déroutement sur erreur d adressage fin si Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 45 / 61

La mémoire virtuelle Exemple de mémoire virtuelle paginée Exemple sur deux processus Processus 1 A B C D E 1présent 0 1 1 0 modif npp - - 0 1 1 - - B H D C A B?? E Processus 2 F G H 1 0 0-1 1 - F F G? Mémoires Tables des virtuelles pages virtuelles Mémoire physique Zone de pagination Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 46 / 61

La mémoire virtuelle Traitement du défaut de page Algorithme suspendre le processus qui a provoqué le défaut si (il existe une page physique libre) alors npp := numéro de cette page sinon v := choisir une page virtuelle victime npp := desc[v].npp desc[v].présent := 0 si (desc[v].modif = 1) alors swap[v] := page[npp] fin si fin si npv := numéro de la page virtuelle manquante page[npp] := swap[npv] desc[npv].présent := 1 desc[npv].modif := 0 desc[npv].npp := npp reprendre le processus que a provoqué le défaut c est une E/S c est une E/S Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 47 / 61

La mémoire virtuelle Pagination à plusieurs niveaux Principe Si la mémoire est importante, le nombre de pages augmente et la table des pages devient imposante. Exemple Une mémoire de 256 Mo (soit 2 28 octets) est divisée en 2 28 /2 10 = 2 18 pages. La table des pages a donc 2 18 entrées soit 1 Mo pour des entrées de 4 octets. Solution Paginer la table de pages ce qui revient à faire une pagination à deux niveaux. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 48 / 61

La mémoire virtuelle Organisation à plusieurs niveaux adr. virtuelle nhyp npv dep mémoire associative succès R. de base + vérifier que npv < L + L 1présent 1présent adr. physique modif 0 npp L npp dep Table des pages de l'hyperpage nhyp Table des hyperpages défaut de page si présent = 0 Niveaux de pagination Il peut y avoir jusqu à 5 niveaux de pagination. Temps d accès = 0, 98 120+0, 02 520 = 128ms Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 49 / 61

La mémoire virtuelle Mémoire virtuelle segmentée et paginée adr. virtuelle paginée segmentée RB seg + page dep vérifier que page < L + prot origine mémoire associative 1présent succès adr. physique modif 0 L npp dep L Table des segments défaut de page si présent = 0 Table des pages du segment seg Avantages Le processus est capable d informer le S.E. d un changement dans le mode d utilisation d un segment. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 50 / 61

La mémoire virtuelle La taille des pages Avantages de grandes pages diminuer le nombre de pages, donc le nombre de défaut de page ; diminuer la taille de la table de pages ; optimiser le temps de transfert vers/depuis la zone de pagination ; utiliser des mémoires centrales de plus en plus grandes. Avantages de petites pages limiter la fragmentation interne ; définir avec plus de précision les zones de mémoires utiles à un processus. S.E. récents la taille de pages varie entre 1 Ko et 32 Ko ; certains S.E. autorisent plusieurs tailles différentes. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 51 / 61

La mémoire virtuelle Algorithmes de remplacement Algorithmes de remplacement (1/3) Pages propres On choisit en priorité les pages virtuelles propres (qui n ont pas été modifiées). Ça réduit les transferts vu que la page ne sera pas sauvegarde sur la zone de pagination. Algorithmes de remplacement Algorithme optimale (base de référence) : choisir la page virtuelle qui est utilisée le plus tard possible ou qui n est plus utilisée ; Algorithme aléatoire : le moins bon ; Algorithme FIFO : il ne tient pas compte de l utilisation des pages ; Algorithme LRU (Least Recently Used) : est basé sur le principe de localité. On choisit la page dont la date du dernier accès est la plus ancienne ; Algorithme LFU (Least Frequently Used) : choisir la page la moins utilisée ; Algorithme LINUFO (First In Not Used First Out) : aussi connu comme algorithme de la deuxième chance. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 52 / 61

La mémoire virtuelle Algorithmes de remplacement Algorithmes de remplacement (2/3) Algorithme FINUFO L algorithme FINUFO ou dit algorithme de la deuxième chance va remplacer une page uniquement au deuxième essai. Pour cela, on dispose : d un pointeur de page physique ptr ; d un bit par page physique noté U[k]. Ce bit U[k] est forcé à 1 après chaque accès à la page physique k. Algorithme du choix de la victime FINUFO tant que (U[prt] = 1) faire U[ptr] := 0 ptr = (ptr + 1) mod nombre de pages physiques fin faire U[ptr] = 1 ptr = (ptr + 1) mod nombre de pages physiques Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 53 / 61

La mémoire virtuelle Algorithmes de remplacement Algorithmes de remplacement (3/3) Exemple - FINUFO avec mémoire physique à deux pages 5 2 3 2 4 0 5 1 5 1 3 1 3 1 3 0 1 2 1 2 0 2 1 4 1 pointeur FINUFO bit FINUFO N de page virtuelle Performances Nombre de défauts de page FIFO FINUFO LRU OPT Taille de la mémoire Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 54 / 61

La mémoire virtuelle Algorithmes de remplacement Comportement en mémoire virtuelle paginée Nombre de défauts de page Taille de la mémoire Intervalle entre défauts de page Taille de la mémoire Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 55 / 61

La mémoire virtuelle Allocation des pages physiques Algorithmes de remplacement Allocation équitable On donne à chaque processus une part égale de la mémoire physique. Allocation proportionnelle On donne à chaque processus une part proportionnelle à la taille de sa mémoire virtuelle. Politique de choix de la victime Virtuelles Physiques Processus 1 25 20 Processus 2 70 53 Processus 3 35 27 Mémoires 130 100 Remplacement local : on choisit parmi les pages du processus demandeur ; Remplacement global : on choisit parmi toutes les pages. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 56 / 61

La mémoire virtuelle Algorithmes de remplacement Écroulement d un système paginé (1/2) Définition Augmentation considérable du nombre de défaut de page provoquant un chute du taux d utilisation de la CPU. Taux d'utilisation de la CPU dégré de multiprogrammation Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 57 / 61

La mémoire virtuelle Algorithmes de remplacement Écroulement d un système paginé (2/2) Pour éviter l écroulement du système régulation de charge par la variation du degré de multiprogrammation (swapping in/out) ; répartition variable de la mémoire physique. On se base sur méthode de l ensemble de travail ; observation du taux de défaut de page. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 58 / 61

La mémoire virtuelle Algorithmes de remplacement Méthode de l ensemble de travail (1/2) Fenêtre d observation L ensemble de travail d un processus au temps t noté W(t, T) est l ensemble des pages ayant été référencées entre t et (t T). T est appelé la fenêtre d observation. Proprieté La probabilité que l une des pages de W(t, T) soit référencée au temps (t + 1) est forte. Conséquence Si les pages physiques allouées à un processus ne peuvent contenir l ensemble de travail, le nombre de défauts de page sera important. Problème Il est très coûteux de maintenir un ensemble de travail pour chaque processus. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 59 / 61

La mémoire virtuelle Algorithmes de remplacement Méthode de l ensemble de travail (2/2) Principe d implémentation On utilise une approximation en associant n bits b 1,..., b n à chaque page physique. chaque accès à une page physique provoque la mise à 1 du bit b 1 associé à cette page ; régulièrement (sur interruption d horloge), le S.E. décale les bits b 1,..., b n 1 vers la droite et le bit b 1 est forcé à zéro. donc, les bits b 1,..., b n donnent un historique d utilisation de la page physique. une page physique appartient à W(t, T) ssi il existe j < T tel que b j = 1. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 60 / 61

La mémoire virtuelle Algorithmes de remplacement Méthode du taux de défaut de page Principe Le taux de défaut de page pour chaque processus doit être compris entre deux bornes. Taux trop bas Si le taux est trop bas, alors le nombre de pages physiques allouées à ce processus est trop important. Taux trop haut Si le taux est trop haut, alors le nombre de pages physiques allouées à ce processus n est pas suffisant pour contenir son ensemble de travail. Deux actions sont possibles : enlever des pages physiques au processus dont le taux est trop bas afin de les redistribuer au processus qui manque de pages physiques ; appliquer le «swapping out» de processus pour diminuer le degré de multiprogrammation, et libérer des pages physiques. En fait le S.E. tente d égaliser les taux de défaut de page pour tous les processus du système. Leonardo Brenner, Jean-Luc Massat (AMU) Systèmes d Exploitation 61 / 61