Architecture des Systèmes
d’Exploitation
Chapitre 1 : Introduction
C’est quoi un Système d’Exploitation ?
Programme servant d'intermédiaire entre l'utilisateur et le matériel informatique.
Objectifs du système d'exploitation :
• Exécuter les programmes utilisateur et faciliter la résolution des problèmes des
utilisateurs.
• Rendre le système informatique convivial.
• Exploiter efficacement le matériel informatique.
28/09/2025 Systèmes d'Exploitation 3
Vue abstraite des composants d’un ordinateur
28/09/2025 Systèmes d'Exploitation 4
Vue abstraite des composants d’un ordinateur
Deux points de vue : utilisateurs vs système.
Les utilisateurs recherchent la commodité, la simplicité d'utilisation et de bonnes
performances.
L'utilisation des ressources ne les préoccupe pas.
C’est le premier point de vue : Machine étendue qui fait abstraction du détail matériel
Mais un ordinateur partagé, comme un ordinateur central ou un mini-ordinateur, doit
satisfaire tous les utilisateurs.
Le système d'exploitation est un programme d'allocation de ressources et de contrôle qui
optimise l'utilisation du matériel et gère l'exécution des programmes utilisateur.
C’est le deuxième point de vue : Gestionnaire de ressources.
28/09/2025 Systèmes d'Exploitation 5
Machine étendue (abstraite)
28/09/2025 Systèmes d'Exploitation 6
Système d’Exploitation : Définition
Aucune définition universellement acceptée.
« Tout ce qu'un fournisseur fournit lorsque on commande un système d'exploitation » est
une bonne approximation.
Mais la définition varie considérablement.
« Le seul programme exécuté en permanence sur l'ordinateur » est le noyau, une partie
du système d'exploitation.
Tout le reste est soit
un programme système (fourni avec le système d'exploitation, mais ne faisant pas partie
du noyau), soit
un programme d'application, c'est-à-dire tous les programmes non associés au système
d'exploitation.
28/09/2025 Systèmes d'Exploitation 7
Structure d’un ordinateur
28/09/2025 Systèmes d'Exploitation 8
Fonctionnement de l’ordinateur : Exemple E/S
Les périphériques d'E/S et le processeur peuvent s'exécuter simultanément.
Chaque contrôleur de périphérique gère un type de périphérique spécifique.
Chaque contrôleur de périphérique dispose d'une mémoire tampon locale.
Chaque type de contrôleur de périphérique est géré par un pilote de système
d'exploitation.
Le processeur transfère les données de la mémoire principale vers les mémoires
tampon locales.
Les E/S s'effectuent du périphérique vers la mémoire tampon locale du contrôleur.
Le contrôleur de périphérique informe le processeur qu'il a terminé son opération en
provoquant une interruption.
28/09/2025 Systèmes d'Exploitation 9
Cycle interruption E/S
28/09/2025 Systèmes d'Exploitation 10
Cycle interruption E/S
28/09/2025 Systèmes d'Exploitation 11
La mémoire
Mémoire principale : seul support de stockage volumineux auquel le processeur peut
accéder directement.
Accès aléatoire
Généralement volatile
Généralement une mémoire vive sous forme de mémoire vive dynamique (DRAM).
Mémoire secondaire : extension de la mémoire principale offrant une grande capacité
de stockage non volatile.
28/09/2025 Systèmes d'Exploitation 12
La mémoire
Disques durs (HDD) – plateaux rigides en métal ou en verre recouverts d'un matériau
d'enregistrement magnétique.
La surface du disque est logiquement divisée en pistes, elles-mêmes subdivisées en secteurs.
Le contrôleur de disque détermine l'interaction logique entre le périphérique et l'ordinateur.
Mémoires non volatiles (NVM) – plus rapides que les disques durs, non volatiles.
Diverses technologies.
Gagnant en popularité avec l'augmentation de la capacité et des performances, leur prix baisse.
28/09/2025 Systèmes d'Exploitation 13
Les disques
28/09/2025 Systèmes d'Exploitation 14
Hiérarchie de la mémoire
Systèmes de stockage hiérarchisés
Vitesse
Coût
Volatilité
Mise en cache : copie des informations dans un système de stockage plus rapide ; la
mémoire principale peut être considérée comme un cache pour le stockage secondaire.
Pilote de périphérique pour chaque contrôleur de périphérique afin de gérer les E/S.
Fournit une interface uniforme entre le contrôleur et le noyau.
28/09/2025 Systèmes d'Exploitation 15
Hiérarchie de la mémoire
28/09/2025 Systèmes d'Exploitation 16
Hiérarchie de la mémoire
28/09/2025 Systèmes d'Exploitation 17
La mémoire
L'unité de base du stockage informatique est le bit. Un bit peut contenir deux valeurs : 0 et 1. Tout
autre stockage informatique repose sur des ensembles de bits.
Avec suffisamment de bits, il est étonnant de voir combien de choses un ordinateur peut
représenter : des nombres, des lettres, des images, des films, des sons, des documents et des
programmes, pour n'en citer que quelques-uns. Un octet est composé de 8 bits et, sur la plupart
des ordinateurs, il constitue la plus petite unité de stockage pratique. Un terme moins courant est
mot, qui est l'unité de données native d'une architecture informatique donnée. Un mot est composé
d'un ou plusieurs octets. Par exemple, un ordinateur doté de registres 64 bits et d'un adressage
mémoire 64 bits possède généralement des mots de 64 bits (8 octets). Un ordinateur exécute de
nombreuses opérations dans sa taille de mot native plutôt qu'un octet à la fois.
Le stockage informatique, comme la plupart des débits informatiques, est généralement mesuré et
manipulé en octets et en ensembles d'octets. Un kilo-octet, ou Ko, équivaut à 1 024 octets ; un
mégaoctet, ou Mo, équivaut à 1 0242 octets ; un gigaoctet, ou Go, équivaut à 1 0243 octets ; un
téraoctet, ou To, équivaut à 1 0244 octets ; et un pétaoctet, ou Po, équivaut à 1 0245 octets.
28/09/2025 Systèmes d'Exploitation 18
Fonctionnement d’un ordinateur
28/09/2025 Systèmes d'Exploitation 19
Accès direct à la mémoire (DMA)
Utilisé pour les périphériques d'E/S à haut débit capables de transmettre des
informations à des vitesses proches de celles de la mémoire.
Le contrôleur de périphérique transfère des blocs de données du stockage tampon
directement vers la mémoire principale, sans intervention du processeur.
Une seule interruption est générée par bloc, au lieu d'une interruption par octet.
28/09/2025 Systèmes d'Exploitation 20
Démarrage et opération de l’ordinateur
Programme d'amorçage (Bootstrap) – code simple pour initialiser le système et charger
le noyau
Chargement du noyau
Démarrage des « démons » système (services fournis en dehors du noyau)
Interruptions du noyau (matérielles et logicielles)
Interruption matérielle par l'un des périphériques
Interruption logicielle (exception ou trap) :
Erreur logicielle (par exemple, division par zéro)
Requête de service du système d'exploitation – appel système
D'autres problèmes de processus incluent une boucle infinie, des processus se modifiant entre eux ou modifiant le système
d'exploitation
28/09/2025 Systèmes d'Exploitation 21
Multiprogrammation (Système en batch)
Un utilisateur unique ne peut pas toujours occuper le processeur et les périphériques
d'E/S.
La multiprogrammation organise les tâches (code et données) de sorte que le
processeur en ait toujours une à exécuter.
Un sous-ensemble des tâches du système est conservé en mémoire.
Une tâche est sélectionnée et exécutée via la planification des tâches.
Lorsqu'une tâche doit attendre (pour des E/S par exemple), le système d'exploitation
bascule vers une autre tâche.
28/09/2025 Systèmes d'Exploitation 22
Traitement par lots (batch)
28/09/2025 Systèmes d'Exploitation 23
Multitâche (Temps partagé)
Extension logique des systèmes Batch : le processeur change de tâche si fréquemment
que les utilisateurs peuvent interagir avec chaque tâche pendant son exécution, créant
ainsi une interaction informatique.
Le temps de réponse doit être inférieur à 1 seconde.
Chaque utilisateur dispose d'au moins un programme exécuté en mémoire (processus).
Si plusieurs tâches sont prêtes à être exécutées simultanément (ordonnancement du processeur).
Si les processus ne tiennent pas en mémoire, la permutation (swapping) les déplace vers l'intérieur et
l'extérieur pour les exécuter.
La mémoire virtuelle permet l'exécution de processus qui ne sont pas entièrement en mémoire.
28/09/2025 Systèmes d'Exploitation 24
Opération en deux modes
Le fonctionnement en deux modes permet au système d'exploitation de se protéger et
de protéger les autres composants du système.
Mode utilisateur et mode noyau
Bit de mode fourni par le matériel
Permet de distinguer si le système exécute du code utilisateur ou du code noyau.
Lorsqu'un utilisateur exécute le bit de mode est « utilisateur ».
Lorsque le code noyau s'exécute, celui-ci est « noyau ».
Comment garantir que l'utilisateur ne définit pas explicitement le bit de mode sur
« noyau » ?
L'appel système bascule en mode noyau, et le retour de l'appel le réinitialise en mode utilisateur.
Certaines instructions sont désignées comme privilégiées et ne sont exécutables qu'en
mode noyau.
28/09/2025 Systèmes d'Exploitation 25
Transition entre modes
28/09/2025 Systèmes d'Exploitation 26
Gestion des processus
Un processus est un programme en cours d'exécution. C'est une unité de travail au sein du
système. Le programme est une entité passive ; le processus est une entité active.
Le processus a besoin de ressources pour accomplir sa tâche.
CPU, mémoire, E/S, fichiers
Données d'initialisation
L'arrêt du processus nécessite la récupération de toutes les ressources réutilisables.
Un processus monothread possède un compteur de programme spécifiant l'emplacement de
la prochaine instruction à exécuter.
Un processus exécute les instructions séquentiellement, une à la fois, jusqu'à leur achèvement.
Un processus multithread possède un compteur de programme par thread.
En général, un système comporte plusieurs processus, des utilisateurs, d'autres systèmes
d'exploitation, exécutés simultanément sur un ou plusieurs processeurs.
Concurrence par multiplexage des processeurs entre les processus/threads.
28/09/2025 Systèmes d'Exploitation 27
Gestion des processus
Le système d'exploitation est responsable des activités suivantes liées à la gestion des
processus :
Création et suppression des processus utilisateur et système
Suspendre et reprendre les processus
Fournir des mécanismes de synchronisation des processus
Fournir des mécanismes de communication entre les processus
Fournir des mécanismes de gestion des blocages
28/09/2025 Systèmes d'Exploitation 28
Gestion de la mémoire
Pour exécuter un programme, la totalité (ou une partie) des instructions doit être en
mémoire.
La totalité (ou une partie) des données nécessaires au programme doit être en mémoire.
La gestion de la mémoire détermine ce qui est en mémoire et quand.
Optimisation de l'utilisation du processeur et des réponses de l'ordinateur aux utilisateurs.
Activités de gestion de la mémoire.
Suivi des parties de la mémoire actuellement utilisées et par qui.
Décision des processus (ou parties de processus) et des données à déplacer vers et hors de la mémoire.
Allocation et désallocation de l'espace mémoire selon les besoins.
28/09/2025 Systèmes d'Exploitation 29
Gestion des fichiers
Le système d'exploitation offre une vue logique et uniforme du stockage des informations.
Résume les propriétés physiques de l'unité de stockage logique : le fichier.
Chaque support est contrôlé par un périphérique (par exemple, un lecteur de disque, un
lecteur de bande).
Les propriétés varient, notamment la vitesse d'accès, la capacité, le taux de transfert de
données et la méthode d'accès (séquentielle ou aléatoire).
Gestion du système de fichiers
Fichiers généralement organisés en répertoires.
Contrôle d'accès sur la plupart des systèmes pour déterminer qui peut accéder à quoi.
Les activités du système d'exploitation comprennent :
Création et suppression de fichiers et de répertoires.
Primitives pour manipuler les fichiers et les répertoires.
Sauvegarde de fichiers sur un support de stockage stable (non volatile).
28/09/2025 Systèmes d'Exploitation 30
Protection et sécurité
Protection – tout mécanisme de contrôle de l'accès des processus ou des utilisateurs
aux ressources définies par le système d'exploitation.
Sécurité – défense du système contre les attaques internes et externes.
Vaste éventail de menaces, incluant les attaques par déni de service, les vers, les virus, l'usurpation
d'identité et le vol de service.
Les systèmes distinguent généralement d'abord les utilisateurs afin de déterminer qui
peut faire quoi.
Les identités des utilisateurs (identifiants utilisateur, identifiants de sécurité) comprennent le nom et le
numéro associé, un par utilisateur.
L'identifiant utilisateur est ensuite associé à tous les fichiers et processus de cet utilisateur afin de
déterminer le contrôle d'accès.
L'identifiant de groupe (ID de groupe) permet de définir un ensemble d'utilisateurs et de gérer les
contrôles, puis de l'associer à chaque processus et fichier.
28/09/2025 Systèmes d'Exploitation 31
Virtualisation
Permet aux systèmes d'exploitation d'exécuter des applications sur d'autres systèmes
d'exploitation.
Secteur vaste et en pleine croissance.
Émulation utilisée lorsque le type de processeur source est différent du type cible (par
exemple, de PowerPC à Intel x86).
Méthode généralement la plus lente.
Langage informatique non compilé en code natif – Interprétation.
Virtualisation – Système d'exploitation compilé nativement pour le processeur,
exécutant des systèmes d'exploitation invités également compilés nativement.
Exemple : VMware exécute des invités Windows XP, chacun exécutant des applications, le tout sur un
système d'exploitation hôte Windows XP natif.
VMM (Virtual Machine Manager) fournit des services de virtualisation.
28/09/2025 Systèmes d'Exploitation 32
Virtualisation
Les cas d'utilisation concernent des ordinateurs portables et de
bureau exécutant plusieurs systèmes d'exploitation à des fins
d'exploration ou de compatibilité.
Ordinateur portable Apple exécutant Mac OS X en hôte, Windows en invité.
Développement d'applications pour plusieurs systèmes d'exploitation sans avoir
recours à plusieurs systèmes.
Tests d'assurance qualité d'applications sans avoir recours à plusieurs systèmes.
Exécution et gestion d'environnements de calcul au sein de centres de données.
28/09/2025 Systèmes d'Exploitation 33
Virtualisation
28/09/2025 Systèmes d'Exploitation 34
Architecture des ordinateurs
La plupart des systèmes utilisent un seul processeur généraliste.
La plupart des systèmes disposent également de processeurs spécifiques.
Les systèmes multiprocesseurs gagnent en popularité et en importance.
Également appelés systèmes parallèles ou systèmes à couplage étroit.
Les avantages incluent :
Débit accru.
Économies d'échelle.
Fiabilité accrue : dégradation progressive ou tolérance aux pannes.
Deux types :
Architecture asymétrique : chaque processeur se voit attribuer une tâche spécifique.
Architecture symétrique : chaque processeur exécute toutes les tâches.
28/09/2025 Systèmes d'Exploitation 35
Architecture symétrique
28/09/2025 Systèmes d'Exploitation 36
Processeur Dual-core
28/09/2025 Systèmes d'Exploitation 37
Clusters
28/09/2025 Systèmes d'Exploitation 38
Environnement informatique
Traditionnel
Mobile
Client-Serveur
Peer-to-Peer
Cloud computing
Temps réel embarqué
28/09/2025 Systèmes d'Exploitation 39
Cloud Computing
28/09/2025 Systèmes d'Exploitation 40
Services du SE
Les systèmes d'exploitation fournissent un environnement d'exécution de
programmes et de services aux programmes et aux utilisateurs.
Un ensemble de services du système d'exploitation fournit des fonctions utiles à
l'utilisateur :
Interface utilisateur : Presque tous les systèmes d'exploitation possèdent une interface
utilisateur (IU).
On distingue : ligne de commande (CLI), interface graphique (GUI), écran tactile, traitement par lots.
Exécution de programme : Le système doit être capable de charger un programme en
mémoire, de l'exécuter et de le terminer, normalement ou anormalement (avec indication
d'une erreur).
Opérations d'E/S : Un programme en cours d'exécution peut nécessiter des E/S, qui
peuvent impliquer un fichier ou un périphérique d'E/S.
Manipulation du système de fichiers : Les programmes doivent lire et écrire des
fichiers et des répertoires, les créer et les supprimer, les rechercher, répertorier les
informations des fichiers et gérer les autorisations.
28/09/2025 Systèmes d'Exploitation 41
Appels système
Interface de programmation pour les services fournis par le système
d'exploitation
Généralement écrite dans un langage de haut niveau (C ou C++)
Les programmes y accèdent principalement via une interface de
programmation d'application (API) de haut niveau plutôt que par appel
système direct.
Les trois API les plus courantes sont l'API Win32 pour Windows, l'API
POSIX pour les systèmes POSIX (y compris la quasi-totalité des versions
d'UNIX, Linux et Mac OS X) et l'API Java pour la machine virtuelle Java
(JVM).
28/09/2025 Systèmes d'Exploitation 42
Appels système : Exemple copie fichier
28/09/2025 Systèmes d'Exploitation 43
Appels système : Exemple API
int fd : le descripteur de fichier à lire
void *buf : un tampon dans lequel les données seront lues
size_t count : le nombre maximal d'octets à lire dans le
tampon
28/09/2025 Systèmes d'Exploitation 44
API - Appels système
28/09/2025 Systèmes d'Exploitation 45