Systèmes d'exploitation
Daniel Rossier
Nachos (1/4) - Syscall
Implémentation d'appels système de base
29 septembre 2008
A rendre: 19 octobre 2008, 18H00
- 1 -
Labo
nachos_Syscall
(v2.2)
Objectif de ce laboratoire
Nachos est un petit système d’exploitation entièrement écrit en Java destiné à fonctionner sur une machine de
type MIPS simulé. Par conséquent, l’environnement Nachos comprend les composants logiciels nécessaires à la
simulation d’un processeur MIPS d'une part, et des différentes fonctionnalités d’un système d’exploitation
monolithique d'autre part. Le matériel tel que l'horloge du processeur MIPS, la console, le contrôleur
d’interruption, etc., sont entièrement simulés.
Du côté application, l’utilisateur peut développer des programmes C dont le code binaire peut être chargé par
Nachos et s'exécuter sur la machine MIPS simulée. Nachos étant exécuté sous Linux, il sera nécessaire d'utiliser
un cross-compilateur afin de générer du code binaire compatible MIPS (format COFF et non ELF).
L’objectif des laboratoires Nachos est de mettre en pratique l'ensemble des connaissances acquises durant le
cours de systèmes d'exploitation. Nachos permet en effet facilement la manipulation des concepts dans un noyau
au comportement similaire à un système d'exploitation monolithique.
Les laboratoires sont décomposés en quatre partie: 1) Syscall – 2) IPC – 3) Virtual Memory (VM) – 4) MT
(Multithread)
Le projet consiste, dans une première étape, à implanter un appel système spécifique, en l'occurrence la fonction
fork(). Cet appel système permet la création d'un processus fils à partir d'un processus courant. Dans une
seconde partie, il s'agira d'implémenter un algorithme de remplacement de page afin de limiter les fautes de
page autant que possible (la version de base consiste à parcourir l'ensemble des tables de page et à sélectionner
la première page valide).
Indications
- Ce laboratoire est à effectuer par groupe de deux étudiants, et est soumis à une validation finale orale et
individuelle.
- Le code source devra être rendu (et extensivement commenté).
- Il n'y a pas de journal/rapport pour ce laboratoire
Etape 1: Utilisation du workspace Eclipse et premiers pas avec Nachos
1.1 Télécharger le fichier workspace Eclipse fourni sur le site SYX/SYE (version Windows ou Linux) et
installer l'arborescence (sous Linux avec unzip).
1.2 Examiner l'arborescence des deux projets du workspace (nachos_syx, nachos_syx_usr). Examinez
attentivement les différents paquetages. Démarrer l'exécution de nachos en démarrant le projet nachos_syx.
Lancez l'application display. La commande halt stoppe l'OS.