Changes between Version 119 and Version 120 of WikiStart


Ignore:
Timestamp:
Nov 5, 2023, 5:08:57 PM (13 months ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v119 v120  
    2525Vous y trouverez :
    2626 A. Les documents sur l'environnement des TP et sur le MIPS : mode user et mode kernel.
    27  B. Les objectifs généraux des séances en lien avec ce que vous avez déjà vu
    28  C. Le fonctionnement des séances de TD-TP, c'est-à-dire ce qui vous est demandé
     27 B. Les objectifs généraux des séances en lien avec ce que vous avez déjà vu.
     28 C. Le fonctionnement des séances de TD-TP, c'est-à-dire ce qui vous est demandé.
    2929 D. La présentation du contenu des séances.
    3030
     
    6666Les **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.
    6767
    68 Dans cette première partie, l'architecture de l'ordinateur 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 `syscall`.
     68Dans cette première partie, l'architecture de l'ordinateur 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 (`syscall`).
    6969
    70 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). Vous allez :
     70Concernant 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 :
    7171
    72721. Manipuler les deux modes d'exécution du processeur (mode ''kernel'' et mode ''user'') ;
    73 2. Communiquer avec les contrôleurs de périphériques grâce à leurs registres de commandes en utilisant les instructions ''load''/''store'' (`lw`/`sw`);
     732. Communiquer avec les contrôleurs de périphériques grâce à leurs registres de commandes en utilisant les instructions `lw` et `sw`;
    74743. Utiliser les requêtes d'interruption des contrôleurs de périphériques pour interrompre le programme en cours d'exécution.
    7575
    76 Concernant 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. Vous allez :
     76Concernant le logiciel, il est écrit principalement en langage C avec un peu d'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.\\Vous allez :
    7777
    78 1. Programmer en langage C pour le noyau en utilisant la chaîne de compilation standard (compilateur + éditeur de liens) via un `Makefile` ;
     781. Programmer en C pour le noyau en utilisant la chaîne de compilation de gcc (compilateur + éditeur de liens) via un `Makefile` ;
    79792. Exécuter les programmes sur un simulateur d'ordinateur complet avec processeur, mémoire et contrôleurs de périphériques ;
    80 3. comprendre quelques services du noyau tels que les gestionnaires de syscall et d'interruptions.
     803. Aborder quelques services du noyau tels que le gestionnaires de syscall et le gestionnaire d'interruptions.
    8181
    8282Pour présenter les concepts des systèmes d'exploitation, nous avons choisi, une approche ''bottom-up''. Nous partons d’une feuille blanche, et nous ajoutons progressivement les services en limitant le nombre de fichiers et la taille des codes. Chaque nouveau service qui s'ajoute
     
    9494Le but des TD est de préparer le travail que vous devez faire dans le TP.
    9595L'idée générale des TP est de créer, très progressivement, un tout petit système d'exploitation.
    96 Ce système est petit, mais il se veut simple à comprendre.
     96Ce système est petit parce qu'il se veut simple à comprendre.
    9797
    9898Toutes 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 entre les étapes, 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.
     
    103103**Le travail demandé pour chaque étape est le suivant :**
    104104
    105  1. Il faut répondre à des questions de la partie TP portant sur le code et sur l'architecture. Les réponses aux questions sont en général dans le code ou dans les commentaires du code ou dans les réponses aux questions du TD qui a préparé la séance de TP ou enfin, dans les diapositives du cours.\\
    106     Le but de ces questions est de pointer les difficultés introduites dans l'étape et de les associer à des éléments de réponses vus précédents. Par exemple, dans la première étape, une question est : « ''- Quelle est l'adresse en mémoire de la première instruction du MIPS?'' ». La réponse est dans le cours et dans le TD et dans le fichier `ldscript.ld`. La réponse est « ''L'adresse de la première instruction est ''`0xBFC00000` ».
     105 1. Il faut répondre à des questions de la partie TP portant sur le code et sur l'architecture. Les réponses aux questions sont en général dans le code ou dans les commentaires du code ou dans les réponses aux questions du TD qui a préparé la séance de TP ou enfin, dans les diapositives du cours.\\Le but de ces questions est de pointer les difficultés introduites dans l'étape et de les associer à des éléments de réponses vus précédents.\\Par exemple, dans la première étape, une question est : « ''- Quelle est l'adresse en mémoire de la première instruction du MIPS?'' ». La réponse est dans le cours et dans le TD et dans le fichier `ldscript.ld`. La réponse est « ''L'adresse de la première instruction est ''`0xBFC00000` ».
    107106
    108  2. Il faut ajouter une fonctionnalité au programme dans un ou plusieurs fichiers et décrire cet ajout dans le compte-rendu. Cet ajout peut nécessiter la création d'un nouveau fichier source.\\
    109     Le but de cet ajout est de s'approprier le code grâce à une petite modification et d'en voir toutes les implications. Par exemple, dans la première étape de la première séance, il est demandé d'afficher deux messages au lieu d'un.
     107 2. Il faut ajouter une fonctionnalité au programme dans un ou plusieurs fichiers et décrire cet ajout dans le compte-rendu. Cet ajout peut nécessiter la création d'un nouveau fichier source.\\Le but de cet ajout est de s'approprier le code grâce à une petite modification et d'en voir toutes les implications.\\Par exemple, dans la première étape de la première séance, il est demandé d'afficher deux messages au lieu d'un.
    110108
    111109