Documente Academic
Documente Profesional
Documente Cultură
Etudier le système d'exploitation revient alors à étudier les différents éléments qui le
compose, leur rôle et leur objectif pour déterminer l'objectif du système dans sa totalité.
Pour qu'un ordinateur soit capable de faire fonctionner un programme informatique (appelé
parfois application ou logiciel), la machine doit être en mesure d'effectuer un certain nombre
d'opérations préparatoires afin d'assurer les échanges entre le processeur, la mémoire, et les
ressources physiques (périphériques).
Le système d'exploitation (noté SE ou OS, abréviation du terme anglais Operating System),
est chargé d'assurer la liaison entre les ressources matérielles, l'utilisateur et les applications
(traitement de texte, jeu vidéo, ...).
Haut de
page
1.2) Fonctionnement (très) général et (très) simplifié
Sans système d'exploitation, chaque application (logiciel) "communique" directement avec le
matériel :
Mais pour un même type de matériel (ex : une imprimante), il existe différents modèles. Une
application devrait être en mesure de "communiquer" avec n'importe quelle imprimante. Il
n'est pas possible pour les développeurs de prévoir toutes les imprimantes et encore moins
celles à venir ! Une solution consisterait à acquérir l'imprimante qui est prévue par
l'application, cela pour chaque application et chaque matériel ! Une autre solution consisterait
pour l'utilisateur à exprimer ses besoins en fonction de la ressource matérielle utilisée mais
cela nécessiterait des connaissances informatiques conséquentes.
Le système d'exploitation s'interpose entre l'application et le matériel afin de faire le lien entre
les deux :
Ainsi l'application peut envoyer une demande d'impression au système d'exploitation qui se
chargera lui même de faire cette demande auprès de l'imprimante. Les développeurs peuvent
par conséquent développer leurs applications sans prendre en compte le matériel
d'impression qui sera utilisé.
Haut de
page
2) Présentation plus détaillée
2.1) Les rôles essentiels du système d'exploitation
2.1.1) La gestion des entrées/sorties (périphériques)
Le système d'exploitation permet de faire le lien entre les applications et les différentes
ressources matérielles. Les développeurs d'application se consacrent ainsi au seul
développement des fonctionnalités du logiciel. Par exemple, la gestion de l'horloge, la
configuration des ports d'entrée/sortie, le déplacement des têtes de lecture des disques durs
et des disquettes, la configuration des modes graphiques, etc... sont pris en charge par le
système.
La gestion des entrées sorties nécessite l'utilisation de pilotes. Un pilote permet à un
système d'exploitation de reconnaître un certain matériel et de l'utiliser (selon les besoins des
applications).
Les systèmes d'exploitation intègrent généralement des pilotes génériques qui leur permet de
reconnaître de nombreux périphériques (clavier, souris, clé USB,...). Lorsqu'un périphérique
n'est pas reconnu, le pilote correspondant doit être installé. Le système pourra ainsi faire la
liaison entre l'application qui mobilise la ressource matérielle (le périphérique) et cette
ressource. De plus, l'utilisation d'un pilote spécifique à un matériel permet d'utiliser toutes les
fonctionnalités offertes par lui (un 4ème et 5ème bouton sur la souris, des touches
supplémentaires sur un clavier,...).
Haut de
page
2.1.2) La gestion de la mémoire
La mémoire désigne un dispositif physique permettant la conservation et la restitution
d'information ou de données. Or les données à conserver et à restituer sont extrêmement
nombreuses. La conservation pose le problème du volume de données qui peut être stocké
(temporairement ou non) et la restitution pose le problème du délai d'accès à celles-ci.
Tous les programmes nécessitent de la mémoire pour y déposer des informations afin des les
utiliser ultérieurement.
Le système d'exploitation est chargé de gérer l'espace mémoire alloué à chaque application
(cas des systèmes multitâche) et, le cas échéant, à chaque usager (cas des systèmes
multiutilisateurs). En cas d'insuffisance de mémoire physique (barette de mémoire vive), le
système d'exploitation peut créer une zone mémoire sur le disque dur, appelée «mémoire
virtuelle».
La mémoire virtuelle permet de faire fonctionner des applications nécessitant plus de
mémoire qu'il n'y a de mémoire vive disponible sur le système. Un fichier est créé sur le
disque dur (ou sur un autre support physique, l'ensemble de ces support constituant
la mémoire secondaire). Ce fichier devient un fichier d'échange nommé swap. Lorsqu'un
processus a besoin de laisser des informations en mémoire et qu'il n'y a plus de place sur
la mémoire vive (les barettes mémoire), les données concernant un autre processus moins
prioritaire vont être transférées dans le fichier swap. Ensuite le programme prioritaire utilise la
place libérée sur la mémoire vive. En contrepartie la mémoire secondaire est beaucoup plus
lente puisque les accès se font sur le disque dur (ou sur tout autre support sur lequel le fichier
de swap a été créé), donc mécaniquement.
Un programme est en réalité decoupé en bouts que l'on nomme pages, de taille fixe. La
mémoire physique est elle aussi découpée en pages, de même taille, ainsi que la partie de la
mémoire secondaire consacrée au swap. Le programme peut avoir des pages qui se trouvent
sur la mémoire vive et sur la mémoire secondaire.
La mémoire virtuelle est par conséquent composée de la mémoire vive ainsi que du fichier
d'échange (swap) créé sur la mémoire secondaire (disque dur, clé USB,...). La taille de la
mémoire virtuelle peut être réglée manuellement. (exemple sous XP familial : clic droit sur
Poste de Travail -> Propriétés -> Avancé -> dans la cadre Performance cliquer sur
Paramètres -> onglet Avancé -> dans le cadre Mémoire virtuelle cliquer sur Modifier.) Cette
zone (swap) peut également être prévue lors de l'installation du système (ex : Linux).
Haut de
page
2.1.3) La gestion des systèmes de fichiers
Le système d'exploitation gère la lecture et l'écriture dans le système de fichiers et les droits
d'accès aux fichiers par les utilisateurs et les applications.
Le principe consiste à stocker les données sous forme de fichiers, c'est-à-dire des suites de
blocs qui sont en réalité des suites de chiffres binaires. Sur le support de stockage, il n'existe
à proprement parlé aucun fichier. Lorsque des blocs de données sont enregistrés, des
données supplémentaires doivent être également enregistrées afin de reconstituer le fichier,
de pouvoir l'attribuer à un répertoire et de définir un chemin d'accès pour l'utilisateur.
La gestion du système de fichiers diffère selon le système de fichiers intégré au système
d'exploitation.
Ainsi pour le système FAT (système de fichiers des clés USB), une zone du disque indique
pour chaque bloc de données l'index du bloc suivant du même fichier. Il est ainsi possible de
reconstituer le fichier en mettant les blocs bout à bout en respectant l'ordre d'indexage. Dans
le système NTFS, la gestion des fichiers repose sur le même principe qu'une base de
données.
Les fichiers reconstitués peuvent être interprétés selon leur format de fichier comme des
caractères, des nombres entiers ou flottants, des codes d'opérations machines, des adresses
mémoires, etc...
Les systèmes d'exploitation peuvent gérer plusieurs types de systèmes de fichiers différents
(windows XP peut supporter le FAT et le NTFS). Mais il faut en principe séparer les systèmes
de fichiers sur des partitions différentes (découpage physique du support de stockage) car
vous courrez le risque que le système de fichiers ne soit pas compris par le système
d'exploitation. C'est pour la même raison que l'installation de plusieurs systèmes
d'exploitation sur un même poste doit se faire sur des partitions différentes afin que chaque
OS comprennent le système de fichiers qui figure sur la ou les partitions qu'il gère.
Haut de
page
2.1.4) La gestion des processus
En réalité, il n'y a jamais qu'un thread qui s'exécute à chaque instant sur un processeur. Cela
signifie que deux flux d'instructions ne peuvent être exécutés simultanément. Mais, les
processeurs monocoeur calculent si rapidement que vous avez l'impression de pouvoir
exécuter en même temps plusieurs programmes. Cela dit, plus le nombre d'applications
lancées est important, et plus le système sera lent.
Puisqu'un seul thread est traité par coeur, deux threads peuvent être traités simultanément ce
qui accroît les performances du système (rapidité accrue notamment pour les programmes
nécessitant beaucoup de calculs : photo, dessin 3D, jeux récents,...) à la condition que le
programme soit développé de façon à exploiter cette technologie.
Le rôle du système d'exploitation dans la gestion des processus est alors de gérer l'ordre
d'éxécution des flux d'instructions (threads) selon des priorités définies. Il affecte le
processeur aux différents programmes lancés selon un ordonnancement déterminé par un
algorithme. Ainsi, un système multitâches (multithreads) permet de partager les ressources
de la machine entre plusieurs programmes, et donc d'exécuter plusieurs programmes « en
même temps ». Ceci conduit à un confort d'utilisation supplémentaire, car si votre système
était monotâche (monothreading), chaque programme devrait être entièrement exécuté afin
de pouvoir passer au suivant, et si un thread était bloqué ou très lent, alors vous ne pourriez
plus rien faire ou attendre longtemps la fin de son exécution.
S'il ordonnance les différents threads générés par les applications lancées, il peut libérer des
ressources lorsqu'un programme ne répond pas correctement en le "tuant". Les ressources
mobilisées par le programme posant problème sont alors libérées (mémoire vive, mobilisation
du processeur,...)
Exemple avec Windows Vista :
Haut de
page
2.1.5) La gestion de la sécurité
La gestion des droits sur les objets est plus ou moins fine selon les systèmes. Linux offre par
exemple une gestion des droits sur trois niveaux pour un objet donné (un dossier, un fichier,
une application...) :
• tous les utilisateurs.
• un groupe d'utilisateurs. Des droits portant sur des objets sont fixés pour un groupe et
tout utilisateur appartenant à celui-ci aura de fait les droits fixés.
• le propriétaire. Seul le propriétaire de l'objet à des droits sur celui-ci.
Windows Vista offre également une gestion affinée des droits comme le fait Linux mais en
proposant des configurations toutes faites (clic droit sur l'objet, propriétés) :
Haut de
page
2.1.6) La gestion des informations concernant son propre
fonctionnement
Les systèmes d'exploitation proposent des indicateurs permettant de vérifier leur bon
fonctionnement (utilisation du processeur, de la mémoire vive, ressources mobilisées par
chaque processus, température, réseau...).
Haut de
page
2.2) L'architecture des systèmes d'exploitation.
Je rappelle qu'une architecture désigne l'organisation et la structure générales que cela soit
au niveau matériel ou logiciel.
Chaque système d'exploitation a une architecture qui lui est propre. Par conséquent l'objectif
de cette partie est de présenter une architecture générale (très) simplifiée afin de percevoir la
composition d'un OS.
Vous pouvez observez sur le schéma ci-dessous les différentes couches verticales et
horizontales qui constituent un système d'exploitation :
Haut de
page
2.2.1) Les applications
Les applications représentent les différents programmes lancés.
Haut de
page
2.2.2) Les bibliothèques
Les bibliothèques mettent à disposition du système d'exploitation et des programmes
applicatifs des morceaux de programmes tout prêts, dont le but est de faciliter l'accès à
certaines fonctions. Grâce aux bibliothèques (.dll, .OCX, ...), les développeurs peuvent
facilement et rapidement réutiliser des fonctions utiles, sans avoir à les reprogrammer eux-
mêmes.
Haut de
page
2.2.3) L'interface homme machine
L'interface homme machine (IHM) permet de faire communiquer l'utilisateur et le système.
C'est d'ailleurs le shell ou DOSqui est un logiciel fournissant une interface pour un utilisateur
qui se charge de cela. Elle peut être graphique (GUI, pour Graphical User Interface), dans ce
cas les parties les plus typiques de ce type d’environnement sont le pointeur de la souris, les
fenêtres, le bureau, les icônes. De plus, des contrôles graphiques sont utilisés pour interagir
avec l’utilisateur : les boutons, les menus, les barres de défilement.
Voici quelques exemples d'IHM graphiques :
Windows Vista Windows XP
Ubuntu Mac
Compiz fusion (3D) sous Ubuntu Aero (3D) sous Windows Vista
Si l'interface de type graphique est la plus répendue, l'interface en ligne de commande (en
anglais CLI pour Command Line Interface) reste très utilisée, notamment sur les machines
ayant une configuration matérielle qui nécessite de faire des économies sur la mémoire
utilisée (qui est très sollicitée par une interface graphique) ou bien souvent sur les serveurs.
Les avantages sont nombreux mais ne feront pas l'objet d'un développement.
Une interface en ligne de commande propose une invite de commande qui à pour rôle le
traitement des commandes tapées au clavier par l'utilisateur. Ces commandes, une fois
interprétées, auront pour effet de réaliser telle ou telle tâche d'administration, ou bien de
lancer l'exécution d'un logiciel.
L'invite de commande sous MS-DOS (DOS de microsoft) débute par une lettre et par
le nom de l'utilisateur authentifié sur les systèmes Linux
Haut de
page
2.2.4) L'API (interface de programmation)
L'API est une interface de programmation (Application Programming Interface) qui permet
de définir la manière dont un composant informatique peut communiquer avec un autre. Une
API a pour objet de faciliter le travail d'un programmeur en lui fournissant les outils de base
nécessaires à tout travail à l'aide d'un langage donné. Elle constitue une interface servant de
fondement à un travail de programmation plus poussé.
Une API pour la programmation dans un langage x est ainsi composée d'un ensemble de
fonctions, routines et méthodes, écrites dans ce langage. Ces fonctions de bas niveau (ouvrir
un fichier, le parser, le fermer, ...) ont la propriété d'être d'un usage courant dans toutes les
applications dérivées de x. D'où l'idée de les programmer une fois pour toutes puis de les
mettre à disposition de la communauté des programmeurs. Ces derniers n'ont plus alors qu'à
choisir et appeler les fonctions pertinentes selon les objectifs de leur code. Les API
permettent d'assurer une certaine interopérabilité entre les applications et le système
d'exploitation.
Haut de
page
2.2.5) Le noyau
Un noyau de système d'exploitation (abrégé noyau, ou kernel en anglais), est la partie
fondamentale des systèmes d'exploitation (en général). Elle gère les ressources de
l'ordinateur et permet aux différents composants — matériels et logiciels — de communiquer
entre eux.
Haut de
page
2.2.6) Le système de fichiers, les pilotes, le matériel
Les notions de système de fichiers, de pilote, et de matériel ont déjà été soulevés
précédemment dans ce cours.
Haut de
page
3)Webographie et bibliographie
3.1)Webographie
• http://cuiwww.unige.ch/~billard/systemeII/cours6.html
• http://fr.wikipedia.org/wiki/Syst%C3%A8me_d'exploitation#L.27interface_graphique
• http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_fichiers
• http://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d'exploitation
• http://www.commentcamarche.net/systemes/sysintro.php3
• http://www.operating-system.org/betriebssystem/_french/w-wissen.htm
• http://casteyde.christian.free.fr
• http://www.dicodunet.com
• http://jfenal.free.fr/Traduc/FSHOWTO/filesystems-howto.fr.html