Changes between Version 62 and Version 63 of WikiStart


Ignore:
Timestamp:
Oct 23, 2021, 8:24:40 AM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v62 v63  
    2727Le mode kernel permet aux programmes d'accéder à toutes les ressources de l'ordinateur, ce que cela signifie en détail est présenté dans le document **B**. Autre exemple, vous devez exécuter vos programmes sur un prototype virtuel d'ordinateur. La configuration de votre environnement de travail est dans le document **C**.
    2828
    29 Pour vous aidez, le plan des sections de ces documents est recopié ci-après.
     29Pour vous aider, le plan des sections de ces documents est recopié ci-après.
    3030
    3131* **A. [htdocs:cours/doc_MIPS32.pdf Documentation MIPS32 architecture et assembleur en mode user ⟶]**
     
    5454
    5555
    56 = 2. Objectifs généraux
     56= 2. Objectifs généraux des 3 séances
    5757
    5858
    5959
    60 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.
     60Les **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). L'accès aux entrées-sorties se fait par des demandes de services en utilisant l'instruction `syscall` du MIPS. 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.
    6161
    62 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`.
     62Il s'avère que, dans cette première partie, l'architecture de l'ordinateur, au centre duquel se trouve le processeur MIPS, n'est pas détaillée et ce que fait l'instruction `syscall` n'est pas détaillé non plus. Le but des 3 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 grâce à l'instruction `syscall`.
    6363
    64 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 à :
     64Concernant 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). Vous allez :
    6565
    66 1. manipuler les deux modes d'exécution du processeur (mode ''kernel'' et mode ''user'') ;
    67 2. communiquer avec les contrôleurs de périphériques grâce à des registres de commandes accessibles dans l'espace d'adressage du processeur en utilisant les instructions ''load''/''store'' (`lw`/`sw`);
    68 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.
     661. apprendre à manipuler les deux modes d'exécution du processeur (mode ''kernel'' et mode ''user'') ;
     672. apprendre à communiquer avec les contrôleurs de périphériques grâce à des registres de commandes accessibles dans l'espace d'adressage du processeur en utilisant les instructions ''load''/''store'' (`lw`/`sw`);
     683. apprendre à utiliser les lignes d'interruption des contrôleurs de périphériques permettant de prévenir le processeur d'un événement (une ligne d'interruption est un signal électrique à deux états : ''ON'' et ''OFF'') .
    6969
    70 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 à :
     70Concernant le logiciel, il est écrit principalement en langage C et un peu 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''. Vous allez :
    7171
    72 1. programmer en langage C et utiliser une chaîne de compilation standard (compilateur + éditeur de liens) via un `Makefile` ;
    73 2. exécuter les programmes sur un simulateur d'ordinateur complet avec processeur, mémoire et contrôleurs de périphériques ;
    74 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.
     721. apprendre à programmer en langage C et à utiliser une chaîne de compilation standard (compilateur + éditeur de liens) via un `Makefile` ;
     732. apprendre à exécuter les programmes sur un simulateur d'ordinateur complet avec processeur, mémoire et contrôleurs de périphériques ;
     743. comprendre quelques services proposés par un système d'exploitation simple tels que les pilotes de périphérique et les gestionnaires de syscall et d'interruptions.
    7575
    7676