Plan. Gestion mémoire et protection dans les noyaux de systèmes d exploitation. Rappels sur les processus. Rappels sur les processus

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

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

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

Partie 7 : Gestion de la mémoire

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

Architectures d implémentation de Click&DECiDE NSI

LA VIRTUALISATION. Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques. 18/01/2010.

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

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

GESTION DE LA MEMOIRE

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

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

Initiation à la sécurité

Architecture des ordinateurs

Symantec Backup Exec.cloud

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

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

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

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

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Concept de machine virtuelle

VMWare Infrastructure 3

1. Présentation du TP

Configuration de Virtual Server 2005 R2

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Fiche Technique. Cisco Security Agent

Administration de Parc Informatique TP07 : Installation de Linux Debian

Architecture des ordinateurs Introduction à l informatique

Systèmes d exploitation

La technologie Java Card TM

Séquencer une application

Utilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel

en version SAN ou NAS

A5.2.3, Repérage des compléments de formation ou d'autoformation

La mémoire. Un ordinateur. L'octet. Le bit

Recommandations techniques

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

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

DREAL proposition DNS et hébergement. magazine le 14 septembre 2011 DREAL comparatif hébergement

Configuration système requise pour les grandes et moyennes entreprises

Configuration du serveur ESX

Chapitre 4 : Les mémoires

vbladecenter S! tout-en-un en version SAN ou NAS

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

Virtualisation & Sécurité

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

datatale Boîtier Crypté 2.5-pouces pour disque dur Manuel d utilisation USB 2.0 AES 256 bit Rev.01

PROCEDURE ESX & DHCP LINUX

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

Pré-requis installation

Licence Sciences et Technologies Examen janvier 2010

Eric Bertrand 08/11/06 Maître de conférence 1

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

Ces deux machines virtuelles seront installées sous VMWARE WORKSTATION.

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

Aide à l installation et à la migration en HelloDoc 5.60

Windows 7 - Installation du client

Gestion répartie de données - 1

La virtualisation de serveurs avec VMWare Infrastructure - Retour d expérience. Rodérick Petetin CRI INSA Rennes

Fiche technique: Sécurité des terminaux Symantec Endpoint Protection La nouvelle technologie antivirus de Symantec

TP Déploiement de réseaux IP sous Linux et MS Windows sur une infrastructure virtualisée

au Centre Inter-établissement pour les Services Réseaux Cédric GALLO

ClariLog - Asset View Suite

Systemes d'exploitation des ordinateurs

La Continuité d Activité

Pré-requis installation

Documentation d information technique spécifique Education. PGI Open Line PRO

Sans trop entrer dans les détails, la démarche IO Model consiste à : Pour cela, Microsoft découpe la maîtrise de l infrastructure en quatre niveaux :

PREREQUIS TECHNIQUES ETAFI DECISIV. PRT ETAFI Decisiv 12/2014 Page 1 sur 16

Guide de prise en main Symantec Protection Center 2.1

Sauvegarde des données au LAAS

Fonctionnalités d Acronis :

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

Optimisation SSD associé à un disque dur classique. Windows 7.

Cours Informatique 1. Monsieur SADOUNI Salheddine

Encryptions, compression et partitionnement des données

Plan de la conférence. Virtualization. Définition. Historique. Technique. Abstraction matérielle

ASR1 TD7 : Un microprocesseur RISC 16 bits

Sauvegarde. de données. Nos conseils de prise en main

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

EN Télécom & Réseau S Utiliser VMWARE

Tests de performance du matériel

Cours Programmation Système

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Recommandations techniques

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

Système de Gestion de Fichiers

Un serveur web léger et ouvert

Microsoft Virtual Server, trucs et astuces avancés

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Serveur de sauvegarde à moindre coût

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2

Structure fonctionnelle d un SGBD

Transcription:

Christophe Rippert Université des Sciences et Technologies de Lille Christophe.Rippert@lifl.fr http://www.lifl.fr/~rippert/ Gestion mémoire et protection dans les noyaux de systèmes d exploitation Module ASR4 Lille, le 17 janvier 2005 2/27 Rappels sur les processus Rappels sur les processus Création d un processus fork Appel au noyau du système (kernel/fork.c) Alloue nouvel espace mémoire Crée structure processus Copie code + données processus initial Ajoute nouveau processus file ordonnanceur Deux espaces mémoire séparés Sources Linux en ligne : http://lxr.linux.no/source/ int a = 5; int main() { int pid; printf("père [0x%0X] = %d, ", &a, a); pid = fork(); if (pid) { a = a + 1; printf("père [0x%0X] = %d, ", &a, a); else { a = a * 2; printf("fils [0x%0X] = %d\n", &a, a); return 0; 3/27 4/27

Rappels sur les processus int a = 5; int main() { int pid; printf("père [0x%0X] = %d, ", &a, a); pid = fork(); if (pid) { a = a + 1; printf("père [0x%0X] = %d, ", &a, a); else { a = a * 2; printf("fils [0x%0X] = %d\n", &a, a); return 0; Père [0x402000] = 5, Père [0x402000] = 6, Fils [0x402000] = 10 5/27 6/27 Mémoire virtuelle Mémoire virtuelle La mémoire virtuelle (virtual memory ) Virtualisation de la mémoire par le processeur Adresse virtuelle adresse physique e.g. @ν(a) = 0x402000 et @ϕ(a) = 0x1234 Applications ne voient que adresses virtuelles Traduction transparente par l unité de gestion de la mémoire (Memory Management Unit) Composant intégré au processeur Gère accès aux bus adresses et données, caches mémoire Intérêts Cache fragmentation mémoire Adresses virtuelles consécutives peuvent cacher adresses physiques disparates Pratique quand on parcours une zone fragmentée Processus indépendant de son adresse physique d exécution On peut charger ou déplacer processus où on veut en mémoire Nécessaire pour le va-et-vient 7/27 8/27

Mémoire virtuelle Mémoire virtuelle Le va-et-vient (swapping) PC moyen : 256 Mo de RAM, 80 Go disque dur Augmenter capacité mémoire en utilisant disque dur Décharger sur disque les blocs mémoire non utilisés Stockage sur le disque Intégré système de fichier : e.g. Windows : pagefile.sys Accès bas niveau : e.g. Linux : partition swap Quels blocs décharger? Ex. : blocs pas utilisés récemment (Least-Recently Used) Le va-et-vient (swapping) Décharger un bloc Sélectionner meilleur bloc Copier contenu du bloc sur disque Marquer bloc comme déchargé dans table descripteurs Libérer l espace mémoire du bloc Recharger un bloc (quand il est accédé) Recopier contenu en mémoire... même @ν, pas même @ϕ fortes pénalités exécution si mauvais bloc choisi (déchargements / chargements fréquents) 9/27 10/27 Pagination La pagination de la mémoire Mémoire découpée en pages (= blocs) de taille fixe (e.g. 4 Ko) Mécanisme intégré au processeur (MMU), transparent pour applications MMU gère table des pages (souvent cachée dans TLB) Structure mémoire contenant page : - @ϕ - utilisateur / superviseur - lecture seule / lecture ecriture - déchargée?... 11/27 12/27

Pagination comme moyen de protection? Droits basiques sur page (R/RW, utilisateur/superviseur) Trop bas niveau Espace mémoire d un processus = beaucoup de pages Différence mémoire virtuelle / pagination? : mécanisme simple : @ν @ϕ Mémoire paginée : mécanisme complexe très bas niveau : gestion blocs mémoire et propriétés associées deux mécanismes complémentaires mais indépendants 13/27 14/27 Segmentation Segmentation La segmentation de la mémoire Un segment = ensemble de pages consécutives Découpage de l espace mémoire en unités logiques Une adresse = @ base segment + décalage @ base segment = origine virtuelle des adresses Mécanisme non transparents Prise en compte par le système et les applications Pas toujours possible désactiver (e.g. Pentium) Mécanisme basé sur mémoire virtuelle et paginée Exemple simple : le 8086 Processeur 16 bits ancêtre du Pentium Adressage mémoire segmenté Registres de segments (16 bits) : cs, ds, es, ss Déplacements immédiats ou registres 16 bits (bx, sp, etc.) Adresse virtuelle <seg:off> (e.g. <ds:bx>) Adresse physique = seg 16 + off un segment = 64 Ko @ϕ sur 20 bits (mémoire adressable : 1 Mo) 15/27 16/27

Segmentation Intérêts de la segmentation Structuration logique Un processus = un segment Ou mieux : un processus = un segment code + un segment données Test des bornes Test du type de segment (code, données) Niveaux de protection (e.g. Pentium : anneaux de protection 0-3 inspirés de Multics) 17/27 18/27 Principes de base Isoler les processus les uns des autres Isolation de fautes Processus malveillant La protection (Lampson 1971) Confidentialité : empêcher lectures non autorisées Intégrité : empêcher modifications / destructions non autorisées Disponibilité : empêcher monopolisation ressources Outils de protection Isolation matérielle : segmentation Avantages Fourni par processeur Pas de pénalité intra-segment Inconvénients Isolation totale : pas de flexibilité Mécanismes spécifiques pour appels inter-segments (e.g. tubes, sockets UNIX, etc.) Forte dégradation performances inter-segments 19/27 20/27

Outils de protection Isolation logicielle : verifier chaque accès mémoire dans le code binaire du processus Algorithme (lors création processus) Charger code binaire processus Désassembler code binaire accès mémoire : générer code vérification Code vérification : vérifie adresse bornes segment logique Si adresse / bornes exception de sécurité Sinon : exécution de l instruction Outils de protection Isolation logicielle : inspirée isolation fautes (Anderson, 1993) Implantation pour la protection [03-Rippert-OSR] Avantages Flexibilité totale : implanter vérification voulue Performances inter-segments (150 / isolation matérielle) Inconvénients Surcoût pour tous les accès (y compris intra-segment) optimisation : verification statique instructions contenant adresse comme valeur immédiate 21/27 22/27 Droits d accès Matrice de Lampson Seg1 Seg2 Seg3 Process1 rwx rw r x Process2 rwx r x Process3 rwx Sujets en ligne, objets en colonne Exemple : droits d accès aux fichiers UNIX drwxr-xr-x rippert ens repertoire/ -rw-r----- rippert ens fichier Droits d accès Listes de contrôle d accès Lecture matrice en colonnes objet, on liste les droits des sujets Très utilisées : Linux, Windows, etc. Capacités Lecture matrice en colonnes sujet, on liste les droits qu il possède sur les objets Peu utilisées : systèmes spécifiques (e.g. Amoeba) 23/27 24/27

La protection au cœur des architectures de noyaux Noyaux monolithiques (e.g. Linux, BSD, etc.) intégrée architecture noyau Micro-noyau (e.g. Chorus, Mach, etc.) Services complémentaires protégés par isolation matérielle IPC coûteux peu succès Exo-noyau (e.g. Camille, VMWare ESX, etc.) resources dissociée gestion par nano-noyau Permet construction systèmes flexibles (e.g. configurables, reconfigurables, extensibles, etc.) Gestion flexible de la protection [03-Rippert-PhD] ne compromet pas flexibilité Pas de contraintes sur politique de protection Pas de contrainte sur implantation des services elle-même flexible Permettre évolution dynamique politique Fournir mécanismes protection neutres Séparation systématique gestion politique / outils mise en œuvre 25/27 26/27 Quelques références Remplacement de pages mémoire (A. S. Tanenbaum, Modern Operating Systems, 2nd edition) http://www.iut-info.univ-lille1.fr/~rippert/pages.pdf Isolation logicielle (C. Rippert, Operating System Review, Oct. 2003) http://www.lifl.fr/~rippert/03-rippert-osr.pdf Amoeba (A. S. Tanenbaum) http://www.cs.vu.nl/pub/amoeba/intro.pdf et flexibilité (C. Rippert, dans les architectures de systèmes flexibles, Thèse de Doctorat, Oct. 2003) http://www.lifl.fr/~rippert/03-rippert-phd.pdf 27/27