Changes between Version 15 and Version 16 of DevloperManuel


Ignore:
Timestamp:
Dec 15, 2007, 1:12:09 PM (17 years ago)
Author:
Ghassan Almaless
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DevloperManuel

    v15 v16  
    7070 * Peut être programmé pour exécuter un code spécial de débugage ou d’observation de l’état du système.
    7171=== II.4 Organisation et gestion de la mémoire ===
     72
     73
     74L’espace d’adressage est découpé en segments d'adresses contiguës :
     75 * Les registres de contrôle des périphériques
     76 * Les segments de RAM (ROM) réservé au système
     77 * Les segments de RAM (ROM) de l'utilisateur
     78
     79
     80Les informations sur les segments mémoire dépendent de la plate-forme matérielles. Le système les connait par l'intermédiaire du fichier segmentation.h (dans le répertoire arch_soclib).
     81
     82
     83Les propriétés (caché / non caché), (système / utilisateur) sont codées dans les adresses, La lecture d'une donnée dans un segment caché est d’abord recherché dans le cache du processeur.
     84 * En cas de hit, le contrôleur du cache fournit la donnée au processeur évitant ainsi de réaliser un accès à la mémoire.
     85 * En cas de miss, le contrôleur du cache réalise la mise à jour d'une ligne de cache avant de  fournir la donnée au processeur.
     86Si un cache contient la copie du contenu d'une adresse mémoire et que cette adresse est modifiée par un autre processeur, alors le cache n'est pas à jour.
     87
     88
     89Conséquence de ce comportement
     90 * Les variables globales de l'application et du système doivent êtres mappées dans un segment de type non caché.
     91 * La structure de la pile d'un Threads est mappée dans un segment de type caché (puisque aucun Thread ne modifie pas la pile d'un autre Thread !).
     92 * L'échange de données entre threads passe par de la mémoire non caché ou une invalidation partiel du cache.
     93
    7294==== II.4.1 L’organisation mémoire ====
    7395==== II.4.2 La gestion mémoire ====