{{{#!html
Les cours suivants sont en relecure :-)
}}} * [htdocs:cours/Archi-2-B5-threads-2p.pdf Cours B5 : Gestion simple des threads] * [htdocs:cours/Archi-2-B6-alloc-2p.pdf Cours B6 : Allocateurs de mémoire dynamique] * [htdocs:cours/Archi-2-B7-synchro-2p.pdf Cours B7 : Mécanismes de synchronisation] * [htdocs:cours/Archi-2-B8-initiateurs-2p.pdf Cours B8 : Périphériques initiateurs] * [htdocs:cours/Archi-2-B9-API-graphique-2p.pdf Cours B9 : Contrôleur et API graphique] = 3. TME Les pages de TME (Travaux sur Machine Encadrés) sont composée de deux parties, une partie TD et une partie TP. * Pour la partie TD, vous avez des questions dont les réponses sont pour la plupart dans le cours. Vous devez y répondre et formuler vos réponses dans le compte-rendu (pensez bien à mettre aussi les questions dans les comptes-rendus). * Pour les TP, il y a plusieurs étapes. Chaque étape représente un nouveau concept et vous trouverez (1) une brève description, (2) une liste des objectifs principaux de l'étape, (3) une liste des fichiers avec un bref commentaire sur chaque fichier, (4) une liste de questions simples dont les réponses sont dans le code, le cours ou le TD et enfin (5) un exercice de codage. Compte-rendus:: Vous allez devoir faire vos compte-rendus en utilisant la syntaxe **!MarkDown**. Vous rendez un compte-rendu par binôme déposé sur **[https://moodle-sciences-23.sorbonne-universite.fr/course/view.php?id=2267#section-3 Moodle]**. Je vous recommande **vivement** de vous créer un compte gratuit sur **[https://hackmd.io HackMD]**. Vous pourrez éditer vos comptes-rendus en constituant une ''team'' sur HackMD avec votre binôme. **Les comptes-rendus devront comporter vos noms**, un modèle est proposé ici → __**[htdocs:files/CR031_TPx_Nom1_Nom2.md.tgz CR031_TPx_Nom1_Nom2.md]**__ Vous avez un corrigé disponible sur **Moodle** qui peut vous aider, mais vous ne devez pas le lire avant d'avoir vraiment tenté de répondre vous-même aux questions. Le corrigé est là pour que vous ne restiez pas bloqué, mais si vous ne cherchez pas à répondre vous-même, ce sera contre-productif. Il n'y a pas forcément toutes les réponses dans les corrigés, en particulier sur la partie TP. Les comptes-rendus sont notés, ce que je souhaite, c'est que vous répondiez par vous-même parce que les questions pourraient être posées à l'examen alors, il est utile que vous arriviez à formuler des réponses par vous-même. Ne recopiez directement pas le corrigé, ça ne permet pas d'apprendre. Après avoir répondu vous-même, vous pouvez regarder la réponse et modifier votre compte rendu. Si vous êtes bloqué et que vous ne comprenez pas non plus la réponse, n'hésitez pas à le dire, c'est qu'elle n'est pas claire et je la modifierai. **Récupération du code du TP** [=#TP] * Vous devez être sur une **machine Linux**. * Vous devez avoir installer l'environnement, sinon relisez [wiki:Howto-TP Configuration de l'environnement] * Pour chaque séance, vous devez récupérer l'archive du code : `tpX.tgz`. Pour cela, allez en haut de la page du **TME** `[X]`, dans la section **INDEX / CODE → ** et cliquez sur le numéro `[X]` de la séance. * Placez l'archive `tpX.tgz` récupérée dans le répertoire kO6-a2 et décompressez-là. * Dans le `terminal`, si vous exécutez la commande **`tree -L 2 $HOME/kO6-a2`**\\Vous devriez obtenir quelque-chose comme ceci : {{{ $HOME/kO6-a2/ $HOME correspond au chemin de votre répertoire racine ├── bin │ ├── almo1.x Simulateur du SoC almo1 │ ├── fb/ Code source de la fenêtre graphique │ ├── gcc/ Cross-compilateur MIPS │ ├── soclib-fb fenêtre graphique exécutée par le simulateur │ ├── SourceMe.sh Script shell pour configurer l'environnement │ ├── test/ test de la plateforme et de l'environnement │ └── tracelog Script awk pour mettre en forme la trace d'exécution ├── Makefile Makefile avec des règles générales (clean ou backup) ├── README.md Infos sur le projet ├── tp1 Premier tp (au début, il n'est pas là, ni les autres) └.. etc. Au début il n'y a rien, puis il y aura : tp2, tp3, etc. }}} **Séances** * [wiki:AS6-TME-B1 TME B1 : Boot et gestionnaire syscall] * [wiki:AS6-TME-B2 TME B2 : Gestionnaire d'interruptions] * [wiki:AS6-TME-B3 TME B3 : Principe d'un cache de premier niveau (L1)] * [wiki:AS6-TME-B4 TME B4 : Impact des caches L1 sur les performances] {{{#!htmlLes TME suivants sont en relecure :-)
}}} * [wiki:AS6-TME-B5 TME B5 : Gestionnaire de threads] * [wiki:AS6-TME-B6 TME B6 : Allocateurs de mémoire dynamique] * [wiki:AS6-TME-B7 TME B7 : Mécanismes de synchronisation] * [wiki:AS6-TME-B8 TME B8 : Périphériques Initiateurs] * [wiki:AS6-TME-B9 TME B9 : Contrôleur et API graphique, réalisation d'un jeu] = 4. Documents * **[htdocs:cours/doc_MIPS32.pdf Documentation MIPS32 architecture et assembleur (mode user)]** 1. Registres de l'architecture externe accessible en mode user (p. 2) 1. Espace d'adressage du MIPS32 (p. 4) 1. Syntaxe et principales directives du langage assembleur (p. 5) 1. Codage des instructions utilisateur du MIPS32 (p. 9) 1. Instructions accessible en mode utilisateur (p. 11) 1. Appels système de simulateur de processeur **Mars** (p. 22) 1. Convention d'appel des fonctions (p. 24) * **[wiki:Doc-MIPS-Archi-Asm-kernel Documentation MIPS32 architecture et assembleur (mode kernel)]** 1. Modes d'exécution du processeur MIPS 2. Registres protégés utilisables seulement en mode kernel 3. Découpage de l'espace d'adressage 4. Instructions protégées 5. Cause d'entrée et de sortie du noyau du système d'exploitation 6. Fonctionnement du registre d'état `c0_sr` 7. Fonctionnement du registre de cause `c0_cause` * **[wiki:Howto-TP Configuration de l'environnement des TP] 1. Environnement de travail pour les TP 1. Prototype virtuel et chaîne de compilation MIPS 1. Compilation et exécution des programmes {{{#!comment * **[wiki:VNC Connexion avec VNC]** Pour le travail à distance * Installation d'un client sur sa machine personnelle * Démarrage d'un serveur sur une machine des salles de TP * Démarrage du client }}} * **Ressources Annexes** * [http://labor-liber.org/en/gnu-linux/development/ Présentation condensée, mais intéressante de la chaine de compilation GCC]