Changes between Version 53 and Version 54 of WikiStart
- Timestamp:
- Sep 2, 2021, 6:03:55 PM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiStart
v53 v54 45 45 46 46 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 MARSpermettant 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.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 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. 48 48 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 parl'instruction `syscall`.49 Il 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`. 50 50 51 Concernant le matériel, il est donccomposé 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 à :51 Concernant 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 à : 52 52 53 53 1. manipuler les deux modes d'exécution du processeur (mode ''kernel'' et mode ''user'') ; … … 55 55 3. 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. 56 56 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 à :57 Concernant 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 à : 58 58 59 59 1. programmer en langage C et utiliser une chaîne de compilation standard (compilateur + éditeur de liens) via un `Makefile` ; 60 60 2. 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).61 3. 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. 62 62 63 63 … … 71 71 communications interprocessus, etc.), puis on vous présente comment un système open source tel que Linux 72 72 fait 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.73 complexe, qu'il est juste possible d'en voir une petite partie, et certains étudiants perdent la vue d'ensemble. 74 74 Pour l'UE d'architecture des ordinateurs, c'est une approche impossible parce qu'elle est trop éloignée 75 75 de l'architecture matérielle. … … 88 88 L'approche ''bottom-up'' consiste à assembler des éléments pour construire une toute petite voiture (genre 2CV :-) ). 89 89 90 Nous 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 91 second semestre dans l'UE Archi 2 (LU3NI031). 92 90 93 91 94 … … 99 102 Ce système est petit, mais il se veut simple à comprendre. 100 103 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 d e l'ordinateur. Le code est très commenté et il n'y a pas — ou peu — de "trous" à remplir.104 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 d'ordinateur. Le code est très commenté et il n'y a pas — ou peu — de "trous" à remplir. 102 105 103 106 Chaque é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.107 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 script Shell''). Dans les étapes suivantes, on ajoute progressivement des fichiers et des services. 105 108 106 109 **Le travail demandé pour chaque étape est le suivant :** … … 122 125 123 126 == [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. 125 128 1. Chaîne de compilation du langage C puisque vous allez utiliser le langage C 126 129 1. Présentation des piles de couches logicielles pour comprendre comment l'application communique avec le système d'exploitation