Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more ➡
Download
Standard view
Full view
of .
Add note
Save to My Library
Sync to mobile
Look up keyword
Like this
5Activity
×
0 of .
Results for:
No results containing your search query
P. 1
Gestion de la mémoire

Gestion de la mémoire

Ratings: (0)|Views: 1,201|Likes:
Published by strideworld

More info:

Published by: strideworld on Oct 12, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, DOC, TXT or read online from Scribd
See More
See less

12/12/2012

pdf

text

original

 
ESAT / DMSI / Cours Système
WINDOWS NT – GESTION DE LA MEMOIRE
Le gestionnaire de mémoire (Virtual Memory manager ) de l' exécutif NT est en particulier chargé d'offrir à chaque processus une allocation et une gestion de mémoire privée, de permettre le partage demémoire entre processus et de protéger contre les accès non autorisés la mémoire partagée commela mémoire privée.
LA MEMOIRE VIRTUELLE OU LOGIQUE
Les systèmes de mémoire virtuelle ont en général soit une vue segmentée de la mémoire, soit unevue linéaire. Ainsi les processeurs 8086 et 80286 utilisent un modèle segmendans lequel unsegment correspond à un ensemble d' adresses contiguës L' adresse est alors constituée d' un n° desegment et d' un déplacement dans le segment.Les processeurs RISC et les processeurs CISC récents d' Intel ont une architecture d' adressagelinéaire dans laquelle les adresses vont de
à
n-1
pour adresser 
n
octets.L' espace d' adressage est divisé en
 pages
et la mémoire physique est divisée en blocs ou
 pageframes.
Vocabulaire:pages
valides
= pages chargées en mémoire,pages
invalides
= pages sur disque.
 pagination
= transfert de pages vers le disque.Taille des pages de Workstation NT: 4 ko (celle du 386 )
GESTION DE LA MEMOIRE (POUR LES SOUS-SYSTEMES EN MODEUTILISATEUR)
Les sous-systèmes peuvent ici partager la mémoire en utilisant des objets protégés, nommés etmanipulés comme les autres objets de l' exécutif. Ils peuvent aussi protéger les pages de mémoireprivée ou bien les bloquer en mémoire.Le gestionnaire de mémoire autorise :- l' allocation de la mémoire,- la lecture et l' écriture de la mémoire virtuelle,- le blocage des pages virtuelles en mémoire physique,- l' obtention d' informations sur ce type de pages,- leur protection,- leur transfert sur disque.L' allocation se fait en deux étapes:- la réservation: le gestionnaire réserve une plage d' adresses virtuelles pour un processus,- l' engagement
(committing) :
la mémoire engagée correspond à une zone du fichier d' échange(swap), sur disque, réservée à un processus.Ces deux étapes peuvent se faire en même temps ou non, selon les besoins du "thread" qui alloue dela mémoire au moment ou il crée des structures de données dynamiques.Pour un "thread" donné, une grande zone de mémoire peut être réservée : le quota du "thread" n' estimputé que lorsque cette mémoire est engagée. Ainsi est géré le fichier d' échange.Un processus qui possède des privilèges (une application critique en temps par exemple) peut aussibloquer certaines pages virtuelles en mémoire pour éviter les "défauts de page".Un processus peut manipuler son propre espace d' adressage ou bien celui d' un autre processus. Ilpeut aussi créer un autre processus dont il manipulera l' espace d' adressage (il appelera les servicesde mémoire virtuelle avec le "handle" du processus créé).
Page1
 
ESAT / DMSI / Cours Système
PARTAGE DE MEMOIRE
Chaque processus ayant son propre espace d' adressage virtuel, le partage consiste à "mapper" lesadresses virtuelles d' un nouveau processus sur les pages physiques du code déja chargé pour lesbesoins d' un processus antérieur. Si le partage de la zone de mémoire se fait en écriture, il faut enoutre assurer la protection de cette zone en synchronisant les processus qui la partagent.L '
objet-section (section object )
que le sous-système Win32 met à la disposition des applicationssous la forme d' un objet
mappage de fichier (file-mapping-object)
est un bloc de mémoire susceptibled' être partagé par plusieurs processus. Un "thread" peut créer un tel objet et lui donner un nom,permettant à des "threads" d' autres processus d' ouvrir les "handles" correspondants.Vocabulaire:
vue (view ) d' une section
: désigne la partie de l' objet-section que le processus doit mapper parce qu'il en a besoin, l' objet-section lui-même pouvant être très grand.Exemple du mappage des vues d' une section:
Memoire virtuelledu processus 2Memoire virtuelledu processus 1......MemoirePhysiqueSectionVueVue 1Vue 2Mappage de vues d' une section
Page2
 
ESAT / DMSI / Cours Système
Le programme chargé de gérer une grande base de données crée un objet-section qui contient cettebase toute entière. Lors d' une requête utilisateur sur la base, le programme mappe une vue de lasection de la base sur son espace d' adressage virtuel, y lit les données, supprime le mappage de lavue, puis crée une autre vue pour accéder à d' autres informations.Le programme accède ainsi à la base en mappant différentes vues de l' objet-section et en lisant ouen écrivant en mémoire plutôt que sur le fichier: on parle ici d'
E/S sur un fichier 
 
mappé
ou
mapped file I/O.
Les attributs de l' objet-section :
-
la taille maximale :
si la section est associée à un fichier, la taille maximale de la section peut êtrecelle du fichier,-
la protection de page :
c' est la protection attribuée lors de la création,-
fichier paginé-fichier mappé :
indique si la section est initialement vide (fichier paginé) ou bienremplie avec le contenu d' un fichier (fichier mappé),-
basé- non basé :
la section est bae si elle utilise la me adresse virtuelle pour tous lesprocessus qui la partagent, elle est non basée dans le cas contraire.En cas de partage, la synchronisation des processus est nécessaire : ainsi les applications Win32utilisent pour accéder aux objets "mappage de fichier" (équivalents des objets-section) des mutex, desévénements, des sections critiques ou des sémaphores.Un processus qui "mappe" une vue d' une section doit d' abord obtenir un handle. Il peut par ailleursrecevoir un "handle" sur un objet-section soit par héritage soit parce qu' un autre processus leduplique et le lui transmet.
PROTECTION DE LA MEMOIRE
La protection de la mémoire est basée sur :-
un espace d' adressage propre à chaque processus :
le matériel empêche un thread d' accéder à l'espace d' adressage virtuel d' un autre processus.-
deux modes de fonctionnement :
le mode noyau (accès au code et aux données du systèmeautorisé) et le mode utilisateur (accès à ces mêmes zones impossible ).-
la protection des pages :
des droits d' accès sont attribués à chacune des pages et dans chacun desdeux modes.-
la protection de la mémoire basée sur les objets :
chaque ouverture d' un "handle" sur un objet-section est soumis à la vérification des droits du processus sur cet objet.Le gestionnaire VM offre les protections suivantes pour chaque page valide : lecture seule,lecture/écriture, exécution seule (si le matériel le supporte ), page de garde (pour le contôle deslimites des piles ), pas d' accès, copie à l' écriture.Le sous-système Win32 rend la protection des pages du gestionnaire VM accessible aux applicationsWin32 à travers de sa fonction
VirtualProtect()
. Les autres protections ne sont pas disponibles pour les applications.
Page3

Activity (5)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Lachi.R liked this
salammouslem liked this
Bentoutou Djamel liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->