Catégorie:Projets de spécialité

Notre système d'exploitation lors du démarrage
Notre système d'exploitation lors du démarrage

Contexte du travail

Ce projet a été réalisé à l'Ensimag, par Pierre-Yves DELAHAYE et Jie ZHANG, élèves de 2ème année (filière SLE), en juin 2010, sur une durée de 4 semaines.

Le travail, encadré par Grégory MOUNIE, consistait à développer un système d'exploitation pour PC.

Les objectifs du projet

A quoi sert un système d'exploitation ?

Tout ordinateur est doté d'un système d'exploitation, qu'il s'agisse de Windows, MacOS, Ubuntu, ... . Le système d'exploitation est en quelque sorte l'intermédiaire entre l'utilisateur, et l'ordinateur en lui-même, c'est-à-dire la partie matérielle qui le constitue. Le système d'exploitation (souvent appelé OS pour "Operating System"), va exploiter les ressources matérielles (mémoire, périphériques, ...) qui sont à disposition. Prenons un exemple simple, celui de l'enregistrement d'un fichier sur le disque dur. Lorsque l'utilisateur désire sauvegarder un document, le système d'exploitation va être chargé de déterminer un emplacement sur le disque dur pour y placer ce document. Autre exemple, la gestion de tâches multiples. Il faut savoir qu'un ordinateur ne sait faire qu'une seule chose à la fois. Or, sur n'importe quel ordinateur, plusieurs programmes peuvent fonctionner en même temps (naviguateur internet, lecteur audio, traitement de texte, ...). Il va donc falloir que le système d'exploitation alloue un temps d'utilisation du processeur pour chaque tâche en cours d'exécution.

Ce qui était demandé dans le cadre de ce projet

Les spécifications détaillées peuvent être consultées ici.

Donnons quand même quelques éléments clés du travail à effectuer.

Ce qui a été réalisé

Un système d'exploitation multi-tâches
Un système d'exploitation multi-tâches

Pour la mise au point du mode User, nous nous sommes notamment aidés des informations fournies par le site de Arnauld Michelizza.

Une interface utilisateur
Une interface utilisateur

Les difficultés rencontrées

La gestion du projet

Il n'est pas évident, surtout en début de projet, d'avoir une vision globale du travail à effectuer. Il n'est par conséquent pas toujours évident de répartir le travail à effectuer entre les différents membres de l'équipe.

Les outils de programmation utilisés

Nous l'avons déjà mentionné, un système d'exploitation agit directement sur la mémoire de l'ordinateur. Pour programmer un système d'exploitation, on utilise donc un langage appelé langage d'assemblage, qui permet d'agir directement au niveau de la mémoire. Mais l'utilisation de ce langage est relativement complexe, et nous manquions de connaissances sur sa mise en oeuvre.

Le mode User

La mise en place d'une couche supplémentaire, au-dessus du mode Kernel, appelée mode User, possède de nombreuses difficultés, parfois mises en évidence seulement lors des phases de tests, et il est difficile de localiser les erreurs commises.

Conclusion

Magré les difficultés évoquées, ce projet nous a semblé particulièrement intéressant à différents niveaux.