Les fonctions d`un système d`exploitation

publicité
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
Téléchargement