Changes between Version 23 and Version 24 of DevloperManuel


Ignore:
Timestamp:
Jan 19, 2008, 4:53:48 PM (16 years ago)
Author:
Ghassan Almaless
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DevloperManuel

    v23 v24  
    22[[PageOutline]]
    33== I. Architecture du MUTEKP ==
    4 La figure suivante illustre la modalisation du système : [[BR]]
     4La figure suivante illustre la modélisation du système : [[BR]]
    55[[Image(modalisation_mutekp.png, nolink)]][[BR]]
    66Les bibliothèques constituant le système sont :
    7  *  pthread : contient l’implémentation d’un sous-ensemble des Thread POSIX.
    8  *  libc : contient l’implémentation des services système tel que malloc, printf, read, memcpy ..etc.
    9  *  mwmr : contient l’implémentation du protocole MWMR.
     7 *  pthread : contient l'interface système des Threads POSIX.
     8 *  libc : contient l’interface des services système tel que malloc, printf, read, memcpy ..etc.
     9 *  mwmr : contient l’interface système des FIFO MWMR.
    1010 *  sys  : contient le code système qui ne dépend pas de l'architecture de la plate-forme ou de type des processeurs utilisés.
    1111 *  cpu  : contient le code système en assembleur qui dépend de type des processeurs de la plate-forme.
    12  *  arch : contient le code C qui dépend de la plate-forme tel que des configurations système vis-à-vis des composants de la plate-forme, les ISR d’interruption des différant types de cibles ..etc.
     12 *  arch : contient le code C qui dépend de la plate-forme tel que les configurations système vis-à-vis des composants de la plate-forme, les ISR d’interruption des différant types de cibles ..etc.
    1313
    14 En cas de modification au niveau de la configuration matériel, il suffit d’adapter le code système des deux bibliothèques cpu et arch pour pouvoir déployer MUTEKP sur la nouvelle plate-forme.
     14En cas de modification au niveau de la configuration matérielle, il suffit d’adapter le code système des deux bibliothèques cpu et arch pour pouvoir déployer Mutek''P'' sur la nouvelle plate-forme.
    1515
    1616== II. Introduction au noyau MUTEKP ==
     
    3939 * Wait : lors que le Thread demande une ressource qui n’est pas disponible.
    4040 * Ready : quand le Thread est en attente de gagner le processeur pour poursuivre son exécution.
    41  * Zombie : quand le Thread se termine en attendant que un autre thread pren acte de sa terminaison.
     41 * Zombie : quand le Thread se termine en attendant que un autre thread prenne acte de sa terminaison.
    4242 * Create : état spécial dans le quel le Thread vient d’être crée. Il n’a pas encore été chargé sur un processeur et attend de le gainer pour la première fois.
    4343 * Dead : état spécial dans le quel le Thread est déclaré définitivement mort. Toute tentative de joindre un Thread dans cet état échouera.
     
    5858 * Le système partitionne l’ensemble des Threads de l’application en N sous-ensembles.
    5959 * Le système dispose de N structures d’ordonnancement pour ordonnancer ces N sous-ensembles.
    60  * En régime permanant (lors que chaque processeur est entrain d’exécuter un Thread), il existe N Threads s’exécute en parallèle, tandis que les autres Threads de chaque sous-ensemble s’exécute en pseudo parallèle grâce au temps partagé (changement de contexte à chaque fin de quantum suite à une interruption horloge).
     60 * En régime permanent (lors que chaque processeur est entrain d’exécuter un Thread), il existe N Threads s’exécutent en parallèle, tandis que les autres Threads de chaque sous-ensemble s’exécutent en pseudo parallèle grâce au temps partagé (changement de contexte à chaque fin de quantum suite à une interruption horloge).
    6161
    6262
    63 Ainsi le noyau Mutek''P'' dispose d’un mécanisme d’ordonnancement distribué à taches affectées.
     63Ainsi le noyau Mutek''P'' dispose d’__un mécanisme d’ordonnancement distribué à tâches affectées.
    6464
    6565
     
    7272 * Peut être programmé pour exécuter un code spécial de débugage ou d’observation de l’état du système.
    7373=== II.4 Organisation et gestion de la mémoire ===
    74 ==== II.4.1 L'Organisation de la mémoire ====
     74==== II.4.1 L'organisation de la mémoire ====
    7575
    7676
    77 L’espace d’adressage est découpé en segments d'adresses contigs :
     77L’espace d’adressage est découpé en segments d'adresses contigües :
    7878 * Les registres de contrôle des périphériques
    7979 * Les segments de RAM (ROM) réservé au système
     
    9393 * Les variables globales de l'application et du système doivent êtres mappées dans un segment de type non caché.
    9494 * 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 !).
    95  * L'échange de données entre threads passe par de la mémoire non caché ou une invalidation partiel du cache.
     95 * L'échange de données entre Threads passe par de la mémoire non caché ou une invalidation partiel du cache.
    9696
    9797
     
    121121
    122122
    123 Ces buffers système permettent au noyau de pouvoir stocker le flux de caractères qui arrive depuis un terminal TTY en attendant qu’un thread puisse les consommer (c.f: read())
     123Ces buffers système permettent au noyau de pouvoir stocker le flux de caractères qui arrive depuis un terminal TTY en attendant qu’un Thread puisse les consommer (c.f: read())
    124124== III. Détaille du noyau et les structures de données système ==
    125 === III.1 Gestion des threads ===
    126 ==== III.1.1 La structure de donnée du thread ====
     125=== III.1 Gestion des Threads ===
     126==== III.1.1 La structure de donnée du Thread ====
    127127==== III.1.2 La structure de donnée Ordonnanceur et la table d’ordonnancement ====
    128128=== III.2 Gestion de la mémoire ===