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 basée si elle utilise la mê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