Université Pierre et Marie Curie

Systèmes d'exploitation des ordinateurs

Chapitre 1. Les systèmes d'exploitation
Chapitre 2. Mécanismes d'exécution et de communication
Chapitre 3. Gestion des activités parallèles
Chapitre 4. Gestion des fichiers
Chapitre 5. Partage des ressources
Chapitre 6. Au-dessus du système d'exploitation
Chapitre 7. Notions sur les communications
Chapitre 8. Notions sur la sécurité
Bibliographie
Chapitre 9. Exercices et TPs
Examens
Page d'accueilTable des matièresBas de la pagePage suivante

Accueil du module « Systèmes d'exploitation des ordinateurs »

Ce document est une nouvelle édition revue et complétée de l'un des premier cours que j'ai placé sur le Web à la fin des années 90. Cette version 2007 intègre des documents nouveaux comme la programmation shell sous Unix.

L'évolution des sytèmes d'exploitation, la disparition de la plupart d'entre eux au profit des deux dominants Windows et Unix (essentiellement dans sa réalisation Linux) justifiaient une refonte. Linux présente l'énorme avantage d'être Open Source, ce qui signifie que toutes les informations sur ses concepts sont connues; il est donc devenu indispensable de l'intégrer au fil des chapitres pour illustrer les concepts théoriques qui y sont développés. D'autres notions devaient être mises à jour car les machines disponibles aujourd'hui, que ce soit sous Windows ou Linux, jusque sur le bureau des particuliers ont intégrées dans leur fonctionnement des principes qui n'étaient mis en pratique que sur les ordinateurs les plus puissants.

Pourquoi apprendre comment fonctionne les ordinateurs ? Indépendemment d'un simple aspect de curiosité intellectuelle, la compréhension des concepts est indispensable pour le programmeur. Il faut comprendre les principes sous-jascents si l'on veut réaliser des programmes efficaces. Il existe des logiciels plus efficaces que d'autres, non seulement parce que leur auteur a trouvé une méthode algorithmique plus subtile mais aussi parce qu'il a su mieux respecter les principes cachés dans le système d'exploitation de la machine et tirer meilleur partie du fonctionnement du processeur et de la mémoire. Ceci est bien connu des scientifiques qui utilisent les superordinateurs. Ils savent que si un programme n'a pas été prévu pour ces machines ses performances seront décevantes, à peine supérieures à celles qu'on obtiendrait sur une station de travail cent fois moins coûteuse. Ceci est encore plus vrai avec les nouvelles générations de machines massivement parallèles. Ce qui est vrai pour un Cray l'est également pour un micro-ordinateur. Il est simple, lorsqu'on sait comment les machines travaillent de respecter quelques principes essentiels. Le gain est double: le programme réalisé est plus efficace et il existe de grandes chances pour qu'il soit plus simple de l'adapter à une nouvelle architecture car tous les ordinateurs ont beaucoup de points communs dans leur fonctionnement : les processeurs modernes ressemblent étonnamment à ceux que l'on rencontrait par le passé sur les plus grosses machines.Le but de ce cours est de présenter les principes essentiels à la compréhension du fonctionnement des ordinateurs. Il n'est pas écrit à l'intention de spécialistes mais pour toute personne qui désire programmer de façon efficace. Dans les exemples les plus concrets il s'appuiera sur les principes généraux d'Unix. La raison en est simple : tous les principes de ce système d'exploitation sont abondamment décrits dans la littérature et les sources de certaines réalisations sont même disponibles. Il n'en est pas de même pour Windows, quelque soit la version, sur lequel son propriétaire est avare d'informations.

Dans une première partie nous aborderons les principes fondamentaux des systèmes d'exploitation et leur relation avec l'architecture de la machine. Puis nous évoquerons les principes de base de fonctionnement des processus, ce qui nous conduira à évoquer les problèmes de la gestion des différentes activités en parallèle à l'intérieur de la machine. Enfin nous parlerons de l'organisation et de la gestion des fichiers. Dans une dernière partie nous envisagerons l'allocation des ressources et de la mémoire où nous retrouverons d'ailleurs une problématique voisine de celle du chapitre précédent.

J'ai été encouragé à refondre ce cours par l'accueil qu'avait reçu la précédente version dans et à l'extérieur de l'université. Cette présentation qui se veut pragmatique, oscillant entre les concepts et leur pratique semble donc répondre à un besoin. Ce qui m'avait décidé reste valable : l'envie de réunir en un seul document l'ensemble des informations dont j'aurais eu besoin lorsque j'ai commencé à programmer. J'appartiens à une génération qui s'est formée sur le terrain poussée par la nécessité et j'aurais été heureux de savoir, par exemple, qu'un compilateur n'était pas une machine et à quoi il servait car cela m'aurait aidé à comprendre la signification des cartes que j'introduisais dans mes programmes comme autant de symboles magiques.

Ce cours correspond à une unité d'enseignement en deuxième année de la section "Electronique, Informatique (ELI)" de l'Ecole d'Ingénieurs de l'université P.M. Curie. L'enseignement représente 30h, y compris quelques TPs d'application. Ce document est beaucoup plus complet et vise à servir d'ouvrage de référence. Il ne comprend rien sur les communications qui sont devenues aujourd'hui partie intégrante des systèmes. Des éléments sont décrits dans un autre cours qui n'est pas complètement écrit.

Dans sa version initiale, ce cours devait beaucoup à l'excellent livre de S. Krakowiak, "Principe des systèmes d'exploitation des ordinateurs", paru chez Dunod en 1985. Il a même été traduit en anglais, ce qui est rare, et je ne saurais trop le recommander. J'ai repris l'ancienne bibliographie bien qu'elle soit dépassée et que probablement certains ouvrages ne soient plus disponiblkes que dans les bibliothèques spécialisées. Evolution oblige, je l'ai complétée avec des références prises sur le Web.


Copyright Y. Epelboin, université P.M. Curie, Mars 2003, mise à jour 25-Fév-2007

Page d'accueilTable des matièresHaut de la pagePage suivante