SYSTÈME D’EXPLOITATION I

Slides:



Advertisements
Présentations similaires
SYSTÈME D’EXPLOITATION I
Advertisements

SYSTÈME D’EXPLOITATION I
UNIX AVANCE Yves PAGNOTTE – Janvier – QUELQUES RAPPELS SUR LES SYSTEMES D’EXPLOITATION 1.
Démarrage de FIT dans la pratique Gestion financière des projets.
CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
QuickPlace de LOTUS Logiciel générateur de SITE WEB : Installé sur un serveur (grenet), Permet de créer / gérer / utiliser un site privé, De donner des.
Made with OpenOffice.org 1 Travailler en réseau intranet à l'école Un réseau : pourquoi ? Architecture du réseau Partager un dossier Enregistrer en réseau.
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
1 Structures d’ordinateurs (matériel) Chapitre 2
Cours 4 data frames. Modes ouiNumérique, caractère, complexe logique Liste list ouiNumérique,caractère,complexe logiqueSérie temporelle ts OuiNumérique,caractère,complexe.
Comment utiliser le débogueur de Visual Studio /8/2015 INF145 1 Créé par Julien Galarneau Allaire, révisé par Eric Thé S.E.G.
1 Programmation en C++ Cycle de vie ● La vie d'un objet ● Destructeur ● Gestion de mémoire dynamique.
Volée 1316 S3 Cours No 2_3 : Le nombre en 1-2H. Les fonctions du nombre  Dénombrer, énumérer, décrire une collection. Aspect cardinal  Dater, classer,
1 Case Study 1: UNIX and LINUX Chapter History of unix 10.2 Overview of unix 10.3 Processes in unix 10.4 Memory management in unix 10.5 Input/output.
DIAGRAMME DE DEPLOIEMENT Exposé de: MBALLA MEKONGO Michèle MBOUNA FEUZE William SIEYADJEU Alex Lionel CHOPGWE Leonard NDUMATE Landry TIDJON Lionel.
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
Architecture Oracle 12c Pr. A. MESRAR
la haute disponibilité Oracle 12c Pr. A. MESRAR
NOTIONS INFORMATIQUES : RAPPEL
Communication série Le matériel Concepts généraux
MENUS PRINCIPAL RESEAU.
La technologie des mémoires
Utilisation de Windows
Google analytics.
Les Bases de données Définition Architecture d’un SGBD
Algorithmique demander jeu du pendu.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
TP Sécurité Packet Tracer - Configuration d'un VPN d'accès distant et
Les composants informatiques
Principes de programmation (suite)
Internet Un réseau virtuel qui assure l'interconnexion des différents réseaux physiques par l'intermédiaire de passerelles. Une pile de protocoles unique.
Virtualisation d’applications mobiles dans un réseau de Cloudlets
Algorithmique & Langage C
Support – info Sauvegarde des données locales des postes clients
Routage S 2 - Questionnaire N°1 - Réponses
Système d’exploitation Windows XP
Installation des OS par réseaux (PXE)
SYSTÈME D’EXPLOITATION I
1ers pas des utilisateurs migrés
SYSTÈME D’EXPLOITATION I
Documentation technique (Linux)
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Environnement de gestion des machines Virtuelles
Chapter 12: Structures de données
Programmation Android Bases De Données, SQL-lite
Exploiter le Web Etape 2.
Formation sur les bases de données relationnelles.
Composantes principales des ordinateurs
Programmation Android Première application Android
Mémoire: cache, RAM, disque dur
Gérez vos documents CIRCABC Module 1 DIGIT A3
Assembleur, Compilateur et Éditeur de Liens
Module 13 : Implémentation de la protection contre les sinistres
Architecture matérielle des ordinateurs
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Windows 7 NTFS.
Un Mécanisme d‘Adaptation Guidé par le Contexte en Utilisant une Représentation par Objets Manuele Kirsch Pinheiro Laboratoire LSR – IMAG, Équipe SIGMA.
Module 5 : Gestion de l'accès aux ressources à l'aide de groupes
Reconnaissance de formes: lettres/chiffres
Système de gestion de contenu de sites web
Démarrage du projet Préparer les fonds de plan
Les différents modes de démarrage de Windows
STS Web Services libres Gérer les services libres
Python Nicolas THIBAULT
Type Tableau Partie 1 : Vecteurs
Présentation de Microsoft Exchange 2010
Role-Based Access Control (RBAC) Les permissions d’administration
Traitement de TEXTE 2 Stage – Semaine 3.
Transcription de la présentation:

SYSTÈME D’EXPLOITATION I SIF-1015

Contenu du cours 10 Gestion de la mémoire Concepts et opérations de base Concepts et opérations avancées Implémentation LECTURES Chapitre 8 et 9 (OSC) Chapitre 21 (Mitchell) Chapitre 8 (Card)

Concepts et opérations de base Espace d’adressage d’un processus Chaque processus est associé à un espace d’adressage qui représente les zones de mémoire allouées au processus. Cet espace d’adressage comporte: Le code du processus Les données du processus décomposées en deux segments: segment data qui contient les variables initialisées et le segment bss qui contient les variables non initialisées Le code et les données des bibliothèques partagées utilisées par le processus La pile utilisée par le processus

Concepts et opérations de base Espace d’adressage d’un processus Sur des machines 32 bits, LINUX alloue 3 Go de 4 Go à cet espace d’adressage. Le Go restant est réservé à la mémoire utilisée par le noyau (code de LINUX et les données qu’il manipule) Les 3 Go disponibles sont décomposés en régions mémoire utilisables par le processus Sur des machines 64 bits, l’espace d’adressage est de 16 Eo

Concepts et opérations de base Espace d’adressage d’un processus

Concepts et opérations avancées Régions de mémoire L’espace d’adressage d’un processus est composé de plusieurs régions de mémoire. Chaque région mémoire est caractérisée par plusieurs attributs: Adresses de début et de fin Droits d’accès de cette zone L’objet qui lui est associé (ex: fichier exécutable) Les régions de mémoire contenues dans l’espace d’adressage d’un processus peuvent être déterminées en affichant le contenu du fichier maps (dans le répertoire de chaque processus dans /proc) L’affichage donne: Les adresses du début et de fin de la région de mémoire Les droits d’accès (p indique que la région peut être partagée entre processus) Le déplacement du début de la région dans l’objet Le numéro du périphérique (disque) contenant l’objet Le numéro d’i-node de l’objet

Implémentation Gestion des tables de pages (pagination) LINUX utilise les mécanismes de mémoire virtuelle fournis par le processeur sur lequel il s’exécute Les adresses manipulées par le noyau et les processus sont des adresses virtuelles et une conversion est effectuée par le processeur pour transformer une adresse virtuelle en adresse physique en mémoire centrale La conversion fonctionne de la façon suivante: Une adresse mémoire est décomposée en deux parties: Un numéro de page Un déplacement dans la page Le numéro de page est utilisé comme indice dans la table de page, ce qui fournit l’adresse physique d’une page en mémoire centrale À cette adresse est ajouté le déplacement pour obtenir l’adresse physique du mot concerné

Implémentation Motivations derrière la VM La DRAM est utilisée comme une cache pour le disque L’espace d’addresses (virtuelle) d’un processus peut dépasser la capacité de la mémoire physique La somme des espaces d’adresses de plusieurs processus peut dépasser la capacité de la mémoire physique Faciliter la gestion de mémoire Plusieurs processus résident en DRAM Chaque processus possède son espace d’adresses Seulement le code et les données actives sont en DRAM Le OS alloue plus de mémoire au processus au besoin Facilite la gestion de la protection Un processus ne peut interférer avec un autre Chacun opère dans un espace d’adresse distinct Les processus user ne peuvent accéder aux informations privilégiées Les sections différentes d’un espace d’adresses ont différentes permissions

Implémentation Gestion des tables de pages (pagination) Conversion d’adresse virtuelle en adresse physique

Système avec VM (Motivation #1) Exemples: Stations de travail, serveurs, PC modernes, etc. Memory 0: 1: N-1: Page Table Virtual Addresses Physical Addresses 0: 1: CPU P-1: Disk Traduction d’Addresse: Le matériel convertit les adresses virtuelles en adresses physiques via une table de lookup (page table) gérée par le OS

Faute de page Qu’arrive-t-il si un objet est sur disque au lieu de la RAM ? PTE indique que la VA n’est pas en RAM Le OS lance un exception handler qui transfert les données du disque vers la RAM Le processus courant est interrompu, un autre est démarré Le OS contrôle pleinement le transfert Before fault After fault Memory Memory Page Table Page Table Virtual Addresses Physical Addresses Virtual Addresses Physical Addresses CPU CPU Disk Disk

Motivation #2: Gestion de mémoire Plusieurs processus peuvent résider en RAM Comment résoudre les conflits d’addressage ? Si deux processus accèdent à la même adresse RAM ? memory invisible to user code kernel virtual memory %esp stack Linux/x86 process memory image Memory mapped region forshared libraries the “brk” ptr runtime heap (via malloc) uninitialized data (.bss) initialized data (.data) program text (.text) forbidden

Solution: Espaces d’adresses virtuelles séparées Les espaces d’adresses virtuelles et physiques sont divisés en blocs de dimension égale Chaque bloc correspond à une page ( virtuelle et physique) Chaque processus possède son propre espace d’adresses Le OS contrôle l’assignation de pages virtuelles en mémoire physique Physical Address Space (DRAM) Virtual Address Space for Process 1: Address Translation VP 1 PP 2 VP 2 ... N-1 (e.g., read/only library code) PP 7 Virtual Address Space for Process 2: VP 1 VP 2 PP 10 ... M-1 N-1

Motivation #3: Protection Les PTE contiennent des droits d’accès Les violations d’accès sont trappées par le OS Page Tables Memory Physical Addr Read? Write? PP 9 Yes No PP 4 XXXXXXX VP 0: VP 1: VP 2: • 0: 1: N-1: Process i: Physical Addr Read? Write? PP 6 Yes PP 9 No XXXXXXX • VP 0: VP 1: VP 2: Process j:

Implémentation: Tables de Pages Memory resident page table (physical page or disk address) Virtual Page Number Physical Memory Valid 1 1 1 1 1 1 Disk Storage (swap file or regular file system file) 1

Implémentation Espace d’adressage des processus (descripteur de régions mémoire) L’espace d’adressage des processus peut être formé de plusieurs régions mémoire memory invisible to user code kernel virtual memory %esp stack Linux/x86 process memory image Memory mapped region for shared libraries the “brk” ptr runtime heap (via malloc) uninitialized data (.bss) initialized data (.data) program text (.text) forbidden

Linux organise la VM comme une collection d’espaces virtuels process virtual memory vm_area_struct task_struct mm_struct vm_end vm_start mm pgd vm_prot vm_flags mmap shared libraries vm_next 0x40000000 vm_end pgd: page directory address vm_prot: read/write permissions for this area vm_flags shared with other processes or private to this process vm_start data vm_prot vm_flags 0x0804a020 text vm_next vm_end vm_start 0x08048000 vm_prot vm_flags vm_next

Traitement des fautes de pages sous LINUX La VA est-elle légale? Est-elle définit dans une vm_area_struct? Sinon signaler un segmentation violation (e.g. (1)) L’opération est-elle légale? Le processus peut-il faire un read/write ? Sinon signaler un protection violation (e.g., (2)) SI OK, traite la faute de page e.g., (3) process virtual memory vm_area_struct vm_end r/o vm_next vm_start shared libraries 1 read vm_end r/w vm_next vm_start 3 data read 2 text write vm_end r/o vm_next vm_start

Exec() explicité Pour exécuter un nouveau programme p dans le contexte du processus courant par exec(): Libérer les vm_area_struct et les tables de pages de l’ancien processus Créer de nouvelles vm_area_struct et des tables de pages pour le nouveau processus Zones stack, bss, data, text, shared libs. Zones text et data correspondant au fichier .exe Zone bss et stack initialisées à 0 Intialiser le PC au début du programme à exécuter dans la zone .text Linux swap ensuite les pages de codes et de données au besoin process-specific data structures (page tables, task and mm structs) physical memory same for each process kernel code/data/stack kernel VM 0xc0 %esp stack demand-zero process VM Memory mapped region for shared libraries .data .text libc.so brk runtime heap (via malloc) demand-zero uninitialized data (.bss) initialized data (.data) .data program text (.text) .text forbidden p

Fork() explicité Création d’un nouveau processus avec fork(): Copier les structures mm_struct, vm_area_struct, et les tables de pages du processus père. Au début les deux processus partagent les mêmes pages en mémoire Comment peut-on avoir deux espaces d’adresses distincts sans recopier toutes les pages virtuelles ? => Technique du “copy on write” Technique du copy-on-write Créer initialement les pages W en R/O Le champ flag des vm_area_struct de ces zones est initialisé à private “copy-on-write” Un accès en écriture à ces pages par un des processus cause une faute de page Le gestionnaire de fautes reconnait le copy-on-write, fait une copie de la page et restaure la permission en écriture Résultat: Copies de pages sont retardées tant qu’un accès en écriture n’est pas requis (i.e., quand un processus essaie de modifier une page partagée).

Fork() explicité Création d’un nouveau processus avec fork(): Technique du “copy on write” (avant un page fault)

Fork() explicité Création d’un nouveau processus avec fork(): Technique du “copy on write” (après un page fault)