Changes between Version 116 and Version 117 of WikiStart


Ignore:
Timestamp:
Nov 4, 2023, 6:48:11 PM (13 months ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v116 v117  
    2727 B. les objectifs généraux des séances en lien avec ce que vous avez déjà vu
    2828 C. le fonctionnement des séances de TD-TP, c'est-à-dire ce qui vous est demandé
    29  D. les liens vers les slides des cours en PDF
    30  E. les liens vers les textes de séances de TD et TP.
     29 D. La présentation du contenu des séances.
    3130
    3231
     
    9695
    9796
    98 = D. Fonctionnement des séances de TD et TP
     97= C. Fonctionnement des séances de TD et TP
    9998
    10099
     
    102101Le but des TD est de préparer le travail que vous devez faire dans le TP.
    103102L'idée générale des TP est de créer, très progressivement, un tout petit système d'exploitation.
    104 Évidemment, dans le temps imparti, il n'est pas envisageable de créer un système complexe.
    105103Ce système est petit, mais il se veut simple à comprendre.
    106104
     
    112110**Le travail demandé pour chaque étape est le suivant :**
    113111
    114  1. Il faut répondre à des questions de la partie TP portant sur le code et sur l'architecture dans un compte-rendu. Les réponses aux questions sont en général dans le code ou dans les commentaires du code ou dans les réponses aux questions du TD qui a préparé la séance de TP ou enfin, dans les diapositives du cours.\\
     112 1. Il faut répondre à des questions de la partie TP portant sur le code et sur l'architecture. Les réponses aux questions sont en général dans le code ou dans les commentaires du code ou dans les réponses aux questions du TD qui a préparé la séance de TP ou enfin, dans les diapositives du cours.\\
    115113    Le but de ces questions est de pointer les difficultés introduites dans l'étape et de les associer à des éléments de réponses vus précédents. Par exemple, dans la première étape, une question est : « ''- Quelle est l'adresse en mémoire de la première instruction du MIPS?'' ». La réponse est dans le cours et dans le TD et dans le fichier `ldscript.ld`. La réponse est « ''L'adresse de la première instruction est ''`0xBFC00000` ».
    116114
     
    121119
    122120
    123 = E. Cours
     121= D. Séances
    124122
    125123
    126124
    127125
    128 == Cours démarrage de l'ordinateur
    129   1. Architecture d'un SoC minimal (SoC = ordinateur intégré sur une puce), celui que vous allez utiliser en TP.
    130   1. Chaîne de compilation du langage C puisque vous allez utiliser le langage C
    131   1. Présentation des piles de couches logicielles pour comprendre comment l'application communique avec le système d'exploitation
    132   1. Présentation du prototype virtuel du SoC que vous allez utiliser en TP
     126== — Démarrage de l'ordinateur
    133127
    134 == Cours application en mode user
    135   1. Modes d'exécution du MIPS
    136   1. Composants du noyau et de la libc
    137   1. Communication entre kernel.x et user.x
    138   1. Visite guidée du code sur un exemple
     128**[htdocs:cours/Archi-1-C9-4p.pdf Cours 9]**
     129  * Architecture d'un SoC minimal (SoC = ordinateur intégré sur une puce), celui que vous allez utiliser en TP.
     130  * Chaîne de compilation du langage C puisque vous allez utiliser le langage C
     131  * Présentation des piles de couches logicielles pour comprendre comment l'application communique avec le système d'exploitation
     132  * Présentation du prototype virtuel du SoC que vous allez utiliser en TP
    139133
    140 == Cours interruptions
    141   1. Définition des interruptions
    142   1. Vue matérielle des interruptions
    143   1. Vue logicielle des interruptions
     134**[wiki:Archi-1-TD9 TD 9] et [wiki:Archi-1-TP9 TP 9]**
     135  * L'architecture de l'ordinateur utilisé contient un MIPS, une mémoire et d'un contrôleur de terminaux.
     136  * Comment un ordinateur simple démarre.
     137  * Comment le programmeur peut interagir avec le monde extérieur via les contrôleurs de périphériques.
     138  * Comment utiliser ''GCC'' avec un `Makefile` pour produire le noyau.
    144139
     140== — Application en mode user
    145141
     142**[htdocs:cours/Archi-1-C10-4p.pdf Cours 10]**
     143  * Modes d'exécution du MIPS
     144  * Composants du noyau et de la libc
     145  * Communication entre kernel.x et user.x
     146  * Visite guidée du code sur un exemple
    146147
    147 = F. Séances de TD et TP
     148**[wiki:Archi-1-TD10 TD 10] et [wiki:Archi-1-TP10 TP 10]**
     149  * Les deux modes d'exécution du processeur, le mode ''kernel'' et le mode ''user''.
     150  * Comment produire deux exécutables: `kernel.x` pour le noyau et `user.x` pour l'application.
     151  * Comment se passe le passage du noyau à l'application et inversement.
     152  * Comment fonctionne le gestionnaire d'appel système.
    148153
     154== — Gestion des interruptions
    149155
     156**[htdocs:cours/Archi-1-C11-4p.pdf Cours 11]**
     157  * Définition des interruptions
     158  * Vue matérielle des interruptions
     159  * Vue logicielle des interruptions
    150160
    151 
    152 == [htdocs:cours/Archi-1-C9-4p.pdf Boot et premier programme en mode kernel]
    153 
    154 Dans cette séance, il s'agit de comprendre comment un ordinateur simple démarre et comment le programmeur peut interagir avec le monde extérieur via les contrôleurs de périphériques. Il s'agit également d'utiliser le langage C pour les programmes et donc la chaîne de compilation ''GCC'' ainsi que d'introduire l'usage d'un `Makefile`. Nous décrivons aussi les fonctions C pour les entrées-sorties telles que `printf()` et `gets()`. Pour toutes les étapes, le nom de l'exécutable produit est `kernel.x`.
    155 
    156 L'architecture de l'ordinateur utilisé dans cette séance est composée d'un processeur MIPS, d'une mémoire multisegment et d'un contrôleur de terminal qui peut contrôler jusqu'à 4 terminaux indépendants.
    157 
    158 == [htdocs:cours/Archi-1-C10-4p.pdf Application simple en mode utilisateur]
    159 
    160 Dans cette séance, nous utilisons les deux modes d'exécution du processeur, le mode ''kernel'' et le mode ''user''. En mode ''kernel'', le processeur a droit à toutes les instructions et à tout l'espace d'adressage. En mode ''user'', le processeur est bridé, certaines instructions sont interdites et seule une partie de l'espace d'adressage est autorisé. Nous allons voir comment se passe le passage d'un mode à l'autre. Dans toutes les étapes, le code se répartie dans deux exécutables: `kernel.x` et `user.x`. Nous allons voir en particulier comment fonctionne le gestionnaire d'appel système.
    161 
    162 == [htdocs:cours/Archi-1-C11-4p.pdf Gestionnaire d'interruption]
    163 
    164 Dans cette troisième séance, il s'agit de comprendre comment fonctionne le gestionnaire des interruptions. Pour cela, nous allons ajouter dans l'architecture deux composants : un timer qui active périodiquement une ligne d'interruption et un concentrateur de lignes d'interruption. Le concentrateur permet de combiner toutes les lignes d'interruptions des contrôleurs de périphériques pour n'en produire qu'une seule à destination du processeur MIPS.
     161**[wiki:Archi-1-TD11 TD 11] et [wiki:Archi-1-TP11 TP 11]**
     162  * Ajout d'un composant ''timer'' qui active périodiquement une ligne d'interruption
     163  * Ajout d'un concentrateur de lignes d'interruption qui rassemble toutes les lignes d'interruptions.
     164  * Comment fonctionne le gestionnaire des interruptions.