Les fonctions d’un système d’exploitation 1 - Définition Le système d'exploitation gère les composants matériels de l'ordinateur et fournit les briques logicielles de base pour les utiliser. C’est un ensemble de programmes qui assure d’une part l'interface entre la machine et l'utilisateur, et d’autre part la machine et les applications. Clavier Controleur Clavier Applicatif Protocole réseau Noyau Mémoire centrale Pilote Périphérique Pilote graphique Ecran Gestion Fichiers Schéma très « schématique » des échanges Les grandes fonctions d’un S.E. : le chargement il démarre l'ordinateur (en anglais : « to boot », en franglais : « booter ») gère les ressources que sont le processeur, la mémoire centrale et les périphériques gère les entrées-sorties, pilote les échanges entre les organes de l'ordinateur (écran, clavier, disque, etc.) gère l’interface avec les utilisateurs (clic souris, affichage de message, etc.) gère les fichiers et l’organisation des adresses des fichiers lance l’exécution des divers programmes ou logiciels Document T. Goron modifié par G. Maréchal 1 Pour l’utilisateur, la communication avec le système d'exploitation s'établit par l'intermédiaire d'un langage de commandes, dont les ordres sont gérés par un interpréteur de commandes, ou bien par une interface graphique, où les éléments de l’ordinateur sont représentés par des petits dessins (icônes). Cela permet à l'utilisateur de piloter les périphériques sans avoir à connaître les caractéristiques techniques internes du matériel qu'il utilise, ni les adresses physiques, etc. Par exemple : Pour stocker un fichier sur un disque dur, l’utilisateur n’a pas besoin de connaître l’adresse physique des données dans tel ou tel secteur du disque (et heureusement !). 2 - Les couches logicielles d’un Système d’Exploitation (S.E.) Le S.E. est composé : D’un noyau (« kernel » en anglais) : Le noyau assure la gestion des processus. Dans les S.E. les plus récents, le noyau est de plus en plus restreint à sa fonction principale. On parle de micro-noyau. Il est toujours présent en mémoire centrale (on dit « résident »), tandis que les autres modules du S.E. sont généralement stockés sur disque et chargés dynamiquement en mémoire centrale lors de leur utilisation. Le noyau assure trois fonctions essentielles : o La prise en charge des interruptions o La distribution, qui répartit le temps de calcul du processeur entre les programmes o La synchronisation entre processus De composants logiciels spécialisés, qui assurent les autres fonctions du système. Citons entre autres : o Le système de gestion de fichiers o La gestion de la mémoire o L’interpréteur de commande : qui assure l’interface utilisateur en mode « commande » Les principales couches du S.E. peuvent être classés hiérarchiquement (voir schéma page suivante). Document T. Goron modifié par G. Maréchal 2 Représentation détaillée des couches d’un S.E. (source Claude Kaiser – CNAM) Explication de quelques termes : Middleware : logiciel « intermédiaire », permettant d’établir un dialogue entre deux applications MMU : Memory Management Unit. Unité de gestion de mémoire centrale. HAL : Hardware abstraction layer. Couche (logicielle) d’abstraction du matériel, qui pilote directement les composants. Document T. Goron modifié par G. Maréchal 3 3 - Les fonctions d’un S.E. 3.1 - La gestion des processus On appelle processus tout ou partie d’un programme qui s’exécute. Avec un ordinateur aujourd’hui, on peut travailler sur un traitement de texte tout en écoutant un disque sur le lecteur CD, et en téléchargeant par exemple une mise à jour d’anti-virus sur Internet. Cela veut dire que plusieurs processus s’exécutent simultanément (on est dans un système multitâches – voir plus loin). En réalité, la simultanéité n’est qu’une impression donnée par la très grande vitesse de passage d’un processus à l’autre. Le système d’exploitation gère le partage du microprocesseur et des ressources entre les différents processus. Gestion des processus = partage du temps de travail du processeur Les états d’un processus Il existe trois états principaux : Élu (en cours d’exécution) Bloqué (c’est-à-dire que le processus attend un évènement extérieur pour pouvoir continuer) Prêt (suspendu provisoirement pour permettre l’exécution d’un autre processus) 3.2 - La gestion de la mémoire Le système alloue des emplacements en mémoire centrale aux programmes qui s’exécutent et à leurs données ; il faut absolument éviter qu’un processus vienne écraser les données en mémoire d’un autre processus. Les systèmes gèrent généralement la mémoire de façon virtuelle et paginée. paginée : Tous les programmes sont découpés en morceaux de même taille appelés « pages ». On ne charge en mémoire que les pages nécessaires à un moment donné. virtuelle : lorsque la mémoire centrale n’est pas assez grande, les pages non utilisées sont stockées sur disque dur dans un fichier spécial appelé fichier d’échange (swap file). D’autres techniques de gestion de la mémoire centrale existent (la segmentation …) mais ne seront pas décrites ici. Document T. Goron modifié par G. Maréchal 4 3.3 - La gestion des entrées/sorties On parle d'entrées-sorties dès qu'il s'agit d'échanger des informations entre l'unité centrale et les matériels périphériques (écran, clavier, souris, disque dur, imprimante, modem ...). Pour gérer les entrées/sorties depuis et vers les périphériques, les S.E. utilisent des programmes spécialisés spécifiques aux périphériques : BIOS contrôleurs d’entrées/sorties pilotes de périphérique (imprimante, etc.) Aujourd’hui, la plupart des systèmes proposent la détection et le paramétrage automatique des pilotes de périphériques au moment du démarrage de la machine (plug and play) ou même pendant son utilisation (« à chaud » - utile pour rajouter un élément dans un serveur, par exemple un disque dur supplémentaire, sans avoir à l’arrêter, donc sans interruption de service pour les utilisateurs). 3.4 - Le système de fichiers Fichier (« file » en anglais) : terme très général, un fichier est l’ensemble des d’informations binaires (0 ou 1) représentant un programme, un document, ou tout objet numérisé. Un fichier sert à stocker et transmettre les données et codes informatiques. Un système d’exploitation différencie en général les fichiers suivant leur type, et respecte des conventions de nommage, en terminant le nom du fichier par un point suivi de trois ou quatre lettres qui représente le type : Par exemple sous Windows : fichier.txt : texte brut, sans mise en forme fichier.exe : programme exécutable fichier.jpg : fichier image compressé au format « JPEG » Etc. Le système de gestion de fichiers (SGF) gère le stockage des fichiers sur les disques. Il gère une table d’allocation (FAT - File Allocation Table), qui définit les emplacements et taille de chaque fichier. Un fichier est souvent stocké en plusieurs morceaux (fragments) en fonction des emplacements disponibles sur le disque, mais l’utilisateur ne s’en rend pas compte. Document T. Goron modifié par G. Maréchal 5 Dans la plupart des S.E., l’espace de stockage des fichiers est organisé en répertoires (« folder », dossier en anglais) afin de clarifier les regroupements pour l’utilisateur. Un dossier peut contenir des «sous-dossiers » ou « sous-répertoires », on parle alors d’arborescence de fichiers. Répertoire Sous-répertoires Jeux Olympiques Résultats Natation Féminin Masculin Résultats Escrime Féminin Individuel Equipes Masculin etc. II – CLASSIFICATION DES S.E. Remarque orthographique : Attention à la distinction entre tâche (du système d’exploitation) et tache (sans accent circonflexe – celle qu’il ne faut pas avoir sur sa cravate). On distingue trois types de S.E: Les systèmes mono-tâches Les systèmes multi-tâches Les systèmes multi-utilisateurs 1 – Le système mono-tâche Comme son nom l’indique, il ne gère qu'une seule tâche à la fois, un seul processus. Quand un programme est lancé, il utilise seul les ressources de la machine et ne rend la main au système d'exploitation qu'en fin d'exécution ou en cas d'erreur. Ce sont les systèmes les plus anciens ; plus faciles à concevoir, ces S.E. offrent une certaine simplicité. Inconvénient : Lorsqu’un processus attend une entrée (par exemple la réponse de l’utilisateur, ou le chargement de données depuis le disque dur), le processeur est inutilisé, alors qu’il pourrait calculer d’autres instructions. Au pire, un processus peut rester bloqué à attendre une réponse d’une ressource qui n’est pas disponible : le système est alors « planté ». Exemple : MS-DOS Document T. Goron modifié par G. Maréchal 6 2 – Le système multi-tâches Le système multi-tâches (mono-utilisateur) gère simultanément plusieurs programmes d'un même utilisateur. Il gère le partage des tâches selon divers principes : soit en tirant parti des interruptions dues à la mise en œuvre des périphériques (accès disque, impressions, affichages) c’est le principe du temps libéré soit en découpant le temps en fractions égales (« time sharing »), et attribuant à chaque programme le processeur pendant une fraction de temps, à tour de rôle. Selon des critères de priorité (c’est le principe du temps préemptif) Le système multi-tâches permet de partager le temps du processeur entre plusieurs programmes. Du fait de la vitesse d'exécution très grande, l'utilisateur a l'impression que ses programmes s'exécutent simultanément. Pour bénéficier de ce principe, les applications sont découpées en séquences d'instructions. Ces séquences (processus) seront tour à tour actives, en attente, suspendues ou détruites (effacées de la mémoire), Remarque : A un instant T, une seule tâche est active puisqu'il n'y a qu'un microprocesseur (sauf, évidemment, dans les systèmes multi-processeurs ! Voir plus loin). Document T. Goron modifié par G. Maréchal 7 Exemple d’enchaînement des processus Considérons deux applications distinctes A1 et A2, et leurs processus associés P1 et P2. L’exécution peut se dérouler de diverses manières : (1) ----------P1-------------------P2---------(2) --P1--- P1--- P1--- P2--- P2--- P2-(3) --------------P1-------------------P2------ schéma 1 : on exécute entièrement un processus, puis l’autre, par exemple P1 d’abord - schéma 2 : on exécute alternativement une suite d’instructions de P1, puis une suite d’instructions de P2, et ainsi de suite jusqu’à la fin des deux processus - schéma 3 : l’exécution de P1 et P2 est simultanée; ce schéma nécessite deux processeurs distincts. Exemple : OS/2 d'IBM, Windows 98. 3 - Le système multi-utilisateurs Son fonctionnement détaillé sera étudié en 2e année. Le système multi-tâches multi-utilisateurs distribue, par petites tranches égales, le temps de calcul à un grand nombre d'utilisateurs connectés à l'ordinateur : ceci concerne donc les serveurs et les gros systèmes. La sécurité d'accès aux programmes et aux données est assurée par la gestion du profil de chaque utilisateur. En général les utilisateurs sont administrés par groupes (service Marketing, service Comptabilité, etc.) Un système multi-utilisateurs nécessite un « administrateur système ». C'est la personne qui gère le système, indique les priorités entre applications, partage l'espace disque, déclare les autorisations d’accès des utilisateurs, établit des stratégies de sauvegarde et de sécurité, etc. Exemple : Windows Server 2003, Unix Document T. Goron modifié par G. Maréchal 8 4 – La puissance des S.E. L’évolution de l’électronique des processeurs a été fulgurante, et pour en tirer pleinement parti, les systèmes d’exploitation ont dû évoluer. Une des évolutions essentielle est l’augmentation de la taille des données manipulées en une seule opération : on est passé de 8 bits (sur les premier PC), à 32 bits et 64 bits. Ceci suppose bien évidemment que le système d’exploitation soit à même de manipuler (en particulier pour les calculs et l’adressage mémoire) 64 bits au lieu de 8. Par ailleurs sont apparus des systèmes multi-processeurs ; là encore on ne peut en tirer avantage que si le système d’exploitation répartit les instructions et les données entre les processeurs, et synchronise les calculs. C’est évidemment beaucoup plus complexe qu’un système mono-tâche. Système DOS Windows3.1 Windows 95/98/Me Windows NT/2000 Windows XP / Vista Unix MAC/OS X VMS Codage 16 bits 16/32 bits 32 bits 32 bits 32 / 64 bits 32 / 64 bits 32 bits 32 bits Monoutilisateur X X X Multi-utilisateur Mono-tâche Multitâche X X X X X X non préemptif non préemptif préemptif préemptif préemptif préemptif préemptif Préemptif : Se dit d'un système d'exploitation multitâche lorsque celui-ci peut arrêter à tout moment n'importe quelle application pour passer la main à la suivante. Il possède un ordonnanceur (aussi appelé planificateur) qui répartit, selon des critères de priorité, le temps-machine entre les différentes tâches qui en font la demande. Document T. Goron modifié par G. Maréchal 9