Changes between Version 116 and Version 117 of WikiStart
- Timestamp:
- Nov 4, 2023, 6:48:11 PM (13 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiStart
v116 v117 27 27 B. les objectifs généraux des séances en lien avec ce que vous avez déjà vu 28 28 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. 31 30 32 31 … … 96 95 97 96 98 = D. Fonctionnement des séances de TD et TP97 = C. Fonctionnement des séances de TD et TP 99 98 100 99 … … 102 101 Le but des TD est de préparer le travail que vous devez faire dans le TP. 103 102 L'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.105 103 Ce système est petit, mais il se veut simple à comprendre. 106 104 … … 112 110 **Le travail demandé pour chaque étape est le suivant :** 113 111 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.\\ 115 113 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` ». 116 114 … … 121 119 122 120 123 = E. Cours121 = D. Séances 124 122 125 123 126 124 127 125 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 133 127 134 == Cours application en mode user 135 1. Modes d'exécution du MIPS136 1. Composants du noyau et de la libc137 1. Communication entre kernel.x et user.x138 1. Visite guidée du code sur un exemple128 **[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 139 133 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. 144 139 140 == — Application en mode user 145 141 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 146 147 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. 148 153 154 == — Gestion des interruptions 149 155 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 150 160 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.