Changes between Version 53 and Version 54 of WikiStart


Ignore:
Timestamp:
Sep 2, 2021, 6:03:55 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v53 v54  
    4545
    4646
    47 Les premières séances de l'UE décrivent l'architecture externe du MIPS (celle visible du programmeur) et la programmation structurée en assembleur (avec des fonctions et une pile). Les programmes réalisés utilisent des structures de données simples telles que les tableaux à une dimension et les enregistrements (les ''struct'' du C) non récursifs. L'accès aux entrées-sorties se fait par des demandes de services en utilisant l'instruction `syscall`. Les programmes sont exécutés sur le simulateur de processeur MARS permettant d'observer l'évolution des registres du processeur et l'évolution des segments de mémoire utilisés par le code, les data et la pile.
     47Les **premières séances de l'UE** décrivent l'architecture externe du MIPS (celle visible du programmeur) et la programmation structurée en assembleur (avec des fonctions et une pile). Les programmes réalisés utilisent des structures de données simples telles que des tableaux à une dimension et des enregistrements (les ''struct'' du C) non récursifs. L'accès aux entrées-sorties se fait par des demandes de services en utilisant l'instruction `syscall`. Les programmes sont exécutés sur le simulateur de processeur **MARS** permettant d'observer l'évolution des registres du processeur et l'évolution des segments de mémoire utilisés par le code, les data et la pile.
    4848
    49 Il s'avère que ce que fait l'instruction `syscall` n'est pas détaillé et l'architecture de l'ordinateur, au centre duquel se trouve le processeur MIPS, est juste présentée. C'est pourquoi le but des trois dernières séances est d'étudier plus en détail l'architecture d'un ordinateur simple, de type [https://www.wikiwand.com/fr/Microcontr%C3%B4leur microcontrôleur] à base de MIPS, et d'y exécuter une application au-dessus d'un embryon de système d'exploitation qui exécute les appels système, c'est-à-dire les services accessibles par l'instruction `syscall`.
     49Il s'avère, dans cette première partie, que ce que fait l'instruction `syscall` n'est pas détaillé et l'architecture de l'ordinateur, au centre duquel se trouve le processeur MIPS, n'est pas détaillée. C'est pourquoi le but des trois dernières séances est d'étudier plus en détail l'architecture d'un ordinateur simple, de type [https://www.wikiwand.com/fr/Microcontr%C3%B4leur microcontrôleur] à base de MIPS, et d'y exécuter une application au-dessus d'un embryon de système d'exploitation qui exécute les appels système, c'est-à-dire les services accessibles grace à l'instruction `syscall`.
    5050
    51 Concernant le matériel, il est donc composé d'un processeur MIPS connecté à une mémoire et quelques périphériques. La mémoire contient le code et les données. Les périphériques sont les composants permettant les entrées-sorties (p. ex. le terminal écran-clavier) ou alors les composants offrant un service spécifique (p. ex. le ''timer'' qui compte le temps). Il s'agit d'apprendre à :
     51Concernant le matériel, il est composé d'un processeur MIPS connecté à une mémoire et quelques périphériques. La mémoire contient le code et les données. Les périphériques sont les composants permettant les entrées-sorties (p. ex. le terminal écran-clavier) ou alors les composants offrant un service spécifique (p. ex. le ''timer'' qui compte le temps). Il s'agit d'apprendre à :
    5252
    53531. manipuler les deux modes d'exécution du processeur (mode ''kernel'' et mode ''user'') ;
     
    55553. utiliser les lignes d'interruption des contrôleurs de périphériques (signal électrique à deux états : ''ON'' et ''OFF'') pour prévenir le processeur d'un événement.
    5656
    57 Concernant le logiciel, il est écrit en langage C et en assembleur. Il est composé d'un empilement de couches logicielles. Il y a tout d'abord le code de démarrage du processeur (le ''boot''), puis le noyau du système d'exploitation,  puis la bibliothèque système (la ''libc''), et enfin l'application de l'utilisateur. Le code de ''boot'' initialise l'ordinateur. Le noyau gère les ressources matérielles et exécute les appels système (`syscall`). La bibliothèque système (la ''libc'') est un ensemble de fonctions standards tel que `fprintf()` invoquant l'instruction `syscall`. Et enfin, l'application de l'utilisateur est un algorithme utilisant les fonctions de la ''libc''. Il s'agit d'apprendre à :
     57Concernant le logiciel, il est écrit en langage C et en langage assembleur. Il est composé d'un empilement de couches logicielles. Il y a tout d'abord le code de démarrage du processeur (le ''boot''), puis le noyau du système d'exploitation,  puis la bibliothèque système (la ''libc''), et enfin l'application de l'utilisateur. Le code de ''boot'' initialise l'ordinateur. Le noyau gère les ressources matérielles et exécute les appels système (`syscall`). La bibliothèque système (la ''libc'') est un ensemble de fonctions standards tel que `fprintf()` invoquant l'instruction `syscall`. Et enfin, l'application de l'utilisateur est un algorithme utilisant les fonctions de la ''libc''. Il s'agit d'apprendre à :
    5858
    59591. programmer en langage C et utiliser une chaîne de compilation standard (compilateur + éditeur de liens) via un `Makefile` ;
    60602. exécuter les programmes sur un simulateur d'ordinateur complet avec processeur, mémoire et contrôleurs de périphériques ;
    61 3. comprendre quelques services proposés par un système d'exploitation simple tels que les pilotes de périphériques, le gestionnaire de syscall, l'exécution de plusieurs fonctions en temps partagé (en les exécutant à tour de rôle très rapidement).
     613. comprendre quelques services proposés par un système d'exploitation simple tels que les pilotes de périphériques, les gestionnaires de syscall et d'interruptions.
    6262
    6363
     
    7171communications interprocessus, etc.), puis on vous présente comment un système open source tel que Linux
    7272fait pour rendre ces services. C'est très intéressant, mais le système pris comme base est tellement
    73 complexe, qu'il est juste possible d'en voir qu'une petite partie, et certains étudiants perdent la vue d'ensemble.
     73complexe, qu'il est juste possible d'en voir une petite partie, et certains étudiants perdent la vue d'ensemble.
    7474Pour l'UE d'architecture des ordinateurs, c'est une approche impossible parce qu'elle est trop éloignée
    7575de l'architecture matérielle.
     
    8888L'approche ''bottom-up'' consiste à assembler des éléments pour construire une toute petite voiture (genre 2CV :-) ).
    8989
     90Nous n'avons que trois séances, ce sera donc juste le début et la suite, pour ceux que cela intéressent, est vue au
     91second semestre dans l'UE Archi 2 (LU3NI031).
     92
    9093
    9194
     
    99102Ce système est petit, mais il se veut simple à comprendre.
    100103
    101 Toutes les séances sont structurées de la même manière. Chaque séance est découpée en étapes qui doivent être suivies dans l'ordre. Chaque étape est indépendante des autres du point de vue des fichiers, c'est-à-dire qu'elle n'utilise pas les fichiers des étapes précédentes et donc s'il y a des fichiers en commun, ceux-ci sont répliqués. Le code fourni est toujours fonctionnel et il y a toujours un `Makefile` pour produire l'exécutable et le faire tourner sur le simulateur du prototype de l'ordinateur. Le code est très commenté et il n'y a pas — ou peu — de "trous" à remplir.
     104Toutes les séances sont structurées de la même manière. Chaque séance est découpée en étapes qui doivent être suivies dans l'ordre. Chaque étape est indépendante des autres du point de vue des fichiers, c'est-à-dire qu'elle n'utilise pas les fichiers des étapes précédentes et donc s'il y a des fichiers en commun, ceux-ci sont répliqués. Le code fourni est toujours fonctionnel et il y a toujours un `Makefile` pour produire l'exécutable et le faire tourner sur le simulateur du prototype d'ordinateur. Le code est très commenté et il n'y a pas — ou peu — de "trous" à remplir.
    102105
    103106Chaque étape introduit un petit nombre de concepts.
    104 Dans la première étape de la première séance, il n'y a que 2 fichiers sources (`hcpu.S` et `kernel.ld`) et 1 `Makefile` simple (de type ''collection de Shell script''). Dans les étapes suivantes, on ajoute progressivement des fichiers et des services.
     107Dans la première étape de la première séance, il n'y a que 2 fichiers sources (`hcpu.S` et `kernel.ld`) et 1 `Makefile` simple (de type ''collection de script Shell''). Dans les étapes suivantes, on ajoute progressivement des fichiers et des services.
    105108
    106109**Le travail demandé pour chaque étape est le suivant :**
     
    122125
    123126== [htdocs:cours/AS5-9-2p.pdf 1. Cours démarrage]
    124   1. Architecture d'un SoC minimal (SoC = ordinateur intégré sur une puce)
     127  1. Architecture d'un SoC minimal (SoC = ordinateur intégré sur une puce), celui que vous allez utiliser en TP.
    125128  1. Chaîne de compilation du langage C puisque vous allez utiliser le langage C
    126129  1. Présentation des piles de couches logicielles pour comprendre comment l'application communique avec le système d'exploitation