Version 7 (modified by 6 years ago) (diff) | ,
---|
Architecture Logicielle et Matérielle des Ordinateurs v2 (ALMO2)
Planning
- This module will open in september, 2020.
Module purposes
- The purpose of this module is to explain in detail how it is possible to have several programs running independently on a multicore computer.
- The module introduces progressively:
- the main hardware components;
- and the corresponding operating system services.
- The studied hardware architecture is simulated by using a cycle-and-bit-accurate model, able to execute the software from the true beginning (full system emulation).
- Il y a un TP par semaine :
- Le premier code exécuté est un simple programme en assembleur affichant "Hello World !" sur un terminal sans aucun système d'exploitation.
- Le dernier code exécuté est constitué de deux programmes indépendants s'exécutant chacun dans leur espace de mémoire virtuelle au-dessus d'un système d'exploitation POSIX like.
- Le module doit permettre de répondre aux questions suivantes (liste non exhaustive) :
- Comment démarre une machine ?
- Quel est le rôle d'un système d'exploitation et quels services propose-t-il ?
- Qu'est-ce qu'un cache de mémoire ?
- Qu'est-ce qu'un contrôleur de périphérique, et comment l'utiliser ?
- Qu'est-ce qu'un pilote de périphérique ?
- Comment exécuter plusieurs programmes sur un seul processeur ?
- Comment plusieurs processeurs peuvent-ils se partager le même espace d'adressage ?
- Pourquoi chaque programme doit avoir un espace d'adressage propre et comment ?
- Lorsqu'on frappe une touche du clavier, comment le caractère s'affiche-t-il à l'écran ?
Prérequis
- Une bonne connaissance du langage C est nécessaire puisque le module propose d'écrire un système d'exploitation depuis le début.
- Une connaissance de l'assembleur MIPS32 est aussi importante, mais les principes de ce langage et les conventions d'usage pour l'écriture des fonctions sont rappelés la première semaine.
Plan du cours
- Programmation en assembleur sur une machine minimale
Le but de cette première séance est de présenter une architecture minimale et comment écrire un premier programme en langage assembleur.