ch1-Généralités-v1.0.pdf
Summary
# Introduction et rôle des systèmes d'exploitation
Le système d'exploitation (SE) est un logiciel fondamental qui agit comme un intermédiaire essentiel entre l'utilisateur, les programmes applicatifs et le matériel informatique.
### 1.1 Positionnement dans l'architecture informatique
Un système informatique peut être conceptualisé à travers plusieurs niveaux clés, où chaque niveau dépend des niveaux inférieurs. Ces niveaux sont [2](#page=2):
* **Matériel**: L'ensemble des composants physiques de l'ordinateur (ordinateur, imprimante, etc.) [2](#page=2).
* **Système d'exploitation (SE)**: Il se situe au-dessus du matériel et agit comme une couche d'abstraction indispensable. Il sert d'intermédiaire entre l'utilisateur, les programmes applicatifs et le matériel [2](#page=2).
* **Langage de haut niveau**: Permet d'écrire des programmes qui manipulent les données [2](#page=2).
La suppression d'un niveau inférieur entraîne l'effondrement des niveaux supérieurs [2](#page=2).
### 1.2 Rôle principal du système d'exploitation
Le système d'exploitation est un ensemble de composants de base et utilitaires qui interagissent pour gérer les ressources communes de l'infrastructure informatique. Il est intrinsèquement lié au matériel sous-jacent [3](#page=3).
#### 1.2.1 Fonctions et objectifs
Les systèmes d'exploitation ont pour rôle principal de :
* **Cacher la complexité du matériel**: Ils masquent les détails techniques et les complexités liées au matériel et aux communications, offrant ainsi une interface plus simple pour l'utilisateur et les développeurs d'applications [3](#page=3).
* **Fournir des services communs**: Ils offrent des services généraux de haut niveau d'abstraction, qui sont utilisés par les applications pour répondre à des problèmes spécifiques [3](#page=3).
> **Tip:** Il est important de distinguer un système d'exploitation d'une application. Une application répond à un besoin spécifique en utilisant les services généraux fournis par le système d'exploitation [3](#page=3).
#### 1.2.2 Aspects complémentaires du rôle
Le rôle du système d'exploitation peut être appréhendé sous deux angles principaux et complémentaires [4](#page=4):
1. **Adaptation d'interfaces** :
* **Haut niveau d'abstraction**: Le SE offre un niveau d'abstraction qui simplifie l'interaction avec la machine [4](#page=4).
* **Dissimulation des limitations physiques et gestion du partage**: Il masque les limitations physiques, comme la taille de la mémoire, et gère le partage des ressources entre plusieurs utilisateurs, évitant ainsi les interférences directes et complexes avec le matériel [4](#page=4).
2. **Gestion des ressources**: Le SE est responsable de la gestion des ressources matérielles et logicielles, en suivant des critères de bonne gestion [4](#page=4).
* **Critères de bonne gestion** :
* **Efficacité**: Il vise à optimiser l'utilisation des ressources pour éviter les pertes de temps, par exemple en assurant un taux d'utilisation élevé du processeur [4](#page=4).
* **Partage sécurisé** : Cela implique deux aspects essentiels :
* **Séparation stricte entre utilisateurs**: Le SE garantit que les actions d'un utilisateur n'affectent pas négativement les données ou processus des autres utilisateurs, empêchant la destruction mutuelle des données [4](#page=4).
* **Partage équitable des ressources**: Il assure une distribution juste des ressources telles que le processeur (CPU), la mémoire et le disque entre les différents utilisateurs et processus [4](#page=4).
---
# Fonctions et composants d'un système d'exploitation
Un système d'exploitation (SE) est une couche logicielle essentielle qui gère les ressources matérielles d'un ordinateur et fournit une plateforme pour l'exécution des applications. Il assure des fonctions clés telles que la gestion du processeur, de la mémoire, des entrées/sorties, des fichiers, ainsi que la protection des ressources. La structure d'un SE est généralement hiérarchique, comprenant le matériel, le noyau, les fonctions système et les utilitaires [10](#page=10) [11](#page=11) [5](#page=5) [6](#page=6) [7](#page=7) [8](#page=8) [9](#page=9).
### 2.1 Fonctions d'un système d'exploitation
Le système d'exploitation remplit plusieurs fonctions critiques pour le bon fonctionnement de l'ordinateur [7](#page=7) [8](#page=8) [9](#page=9).
#### 2.1.1 Gestion du processeur (CPU)
Cette fonction concerne l'allocation du processeur aux différents programmes en cours d'exécution. Le SE utilise des algorithmes d'ordonnancement pour planifier l'exécution des programmes de manière efficace [7](#page=7).
#### 2.1.2 Gestion de la mémoire
Le système gère l'allocation de la mémoire centrale (RAM) entre les différents programmes. Pour ce faire, il peut employer des techniques telles que la pagination ou la segmentation. Lorsque la mémoire physique est insuffisante pour contenir tous les programmes, le SE utilise le principe de la mémoire virtuelle pour étendre l'espace mémoire disponible [7](#page=7).
#### 2.1.3 Gestion de la concurrence
Étant donné que plusieurs programmes coexistent en mémoire centrale, ils peuvent avoir besoin de communiquer entre eux pour échanger des données. La gestion de la concurrence implique également la synchronisation de l'accès aux données partagées afin de garantir leur cohérence [8](#page=8).
#### 2.1.4 Gestion des Entrées/Sorties (E/S)
Le système d'exploitation gère l'accès aux périphériques. Il assure la liaison entre les appels de haut niveau des programmes utilisateurs (par exemple, `getchar()`) et les opérations de bas niveau nécessaires au fonctionnement des périphériques (par exemple, un clavier) [8](#page=8).
#### 2.1.5 Gestion des fichiers
La mémoire centrale étant volatile, toutes les données qui doivent être conservées après l'arrêt de la machine sont stockées sur des mémoires de masse (disques durs, SSD, etc.). Le système de gestion de fichiers (SGF) est responsable de cette organisation et utilise différents formats selon le SE, tels que NTFS, Ext, ou FAT [9](#page=9).
#### 2.1.6 Gestion de la protection (droits d’accès)
Le système d'exploitation met en place des mécanismes pour garantir que ses ressources (processeur, mémoire, fichiers) ne peuvent être utilisées que par les programmes auxquels les droits d'accès nécessaires ont été accordés [9](#page=9).
### 2.2 Composants d'un système d'exploitation
Un système d'exploitation est composé de plusieurs couches et éléments qui travaillent ensemble [10](#page=10) [11](#page=11).
#### 2.2.1 Le matériel (couche physique)
Il s'agit de la partie physique de l'ordinateur, incluant le processeur, la mémoire, les périphériques d'entrée/sortie, etc. [10](#page=10) [5](#page=5).
#### 2.2.2 Le noyau (kernel)
Le noyau est le cœur du système d'exploitation. Il gère l'accès aux processeurs, à la mémoire, au contenu des disques et contrôle les échanges avec les différents périphériques. Le noyau est chargé en mémoire centrale dès le démarrage de l'ordinateur (processus de boot) [10](#page=10) [11](#page=11).
#### 2.2.3 Fonctions système
Ces fonctions constituent une bibliothèque standard d'appels système que les applications peuvent utiliser pour interagir avec le noyau et le matériel [10](#page=10) [11](#page=11).
#### 2.2.4 Utilitaires
Cette partie comprend des programmes tels que les interpréteurs de commandes (shell), les éditeurs de liens, les compilateurs, et les gestionnaires de fenêtres. Ces services sont stockés sur la mémoire de masse et chargés en mémoire uniquement à la demande de l'utilisateur. Chaque service correspond généralement à une commande externe [10](#page=10) [11](#page=11).
> **Tip:** Comprendre la distinction entre les fonctions noyau (toujours en mémoire) et les utilitaires (chargés à la demande) est crucial pour appréhender le fonctionnement interne d'un SE [11](#page=11).
---
# Modes d'exécution et interaction avec le système
Ce chapitre explore les deux principaux modes d'exécution d'un ordinateur, le mode superviseur et le mode utilisateur, ainsi que les mécanismes de transition entre eux, essentiels au fonctionnement des systèmes d'exploitation [12](#page=12).
### 3.1 Modes d'exécution
Les systèmes d'exploitation gèrent deux modes d'exécution distincts pour les programmes :
#### 3.1.1 Mode utilisateur
C'est le mode par défaut dans lequel s'exécutent la majorité des programmes applicatifs. Il offre un accès limité aux ressources matérielles et aux instructions sensibles du processeur, garantissant ainsi la sécurité et la stabilité du système [12](#page=12).
#### 3.1.2 Mode superviseur
Également appelé mode noyau ou mode privilégié, ce mode est réservé au système d'exploitation. Il permet d'exécuter toutes les instructions du processeur, y compris celles qui sont interdites en mode utilisateur, telles que la manipulation directe de la mémoire ou le contrôle des périphériques matériels. Ce mode est crucial pour la protection du système d'exploitation contre les erreurs ou les comportements malveillants des programmes utilisateur [12](#page=12).
### 3.2 Passage entre les modes
La transition entre le mode utilisateur et le mode superviseur est un mécanisme fondamental pour permettre aux programmes d'accéder aux services du système d'exploitation. Deux événements principaux déclenchent ce passage [12](#page=12):
#### 3.2.1 Appels système
Lorsqu'un programme utilisateur a besoin d'effectuer une opération qui requiert des privilèges du système d'exploitation (par exemple, lire un fichier, afficher du texte à l'écran, ou accéder à un périphérique), il effectue un appel système. Cet appel système provoque une interruption logicielle qui transfère le contrôle au système d'exploitation en mode superviseur [12](#page=12).
#### 3.2.2 Interruptions matérielles
Les interruptions matérielles sont des signaux envoyés par les périphériques matériels au processeur pour indiquer qu'un événement s'est produit et nécessite une attention immédiate. Par exemple, lorsqu'une touche est pressée sur le clavier, le contrôleur du clavier génère une interruption matérielle. Cette interruption force le processeur à suspendre l'exécution du programme courant, à passer en mode superviseur, et à exécuter une routine de traitement d'interruption gérée par le système d'exploitation [12](#page=12) [15](#page=15).
#### 3.2.3 Commutation de contexte
Le passage entre les modes d'exécution, que ce soit par appel système ou par interruption, s'accompagne d'une commutation de contexte. Ce processus implique la sauvegarde de l'état actuel du programme utilisateur (registres du processeur, pointeur d'instruction, etc.) afin de pouvoir le reprendre ultérieurement, puis le chargement du contexte nécessaire à l'exécution du code du système d'exploitation. Une fois la tâche du système d'exploitation terminée, le contexte utilisateur est restauré, et l'exécution du programme utilisateur reprend là où elle s'était arrêtée [12](#page=12).
### 3.3 Exemple d'exécution d'un programme
Illustrons le fonctionnement des modes d'exécution et des interactions système avec l'exemple d'un programme C utilisant la fonction `getchar` pour lire un caractère saisi au clavier [14](#page=14).
> **Exemple:**
> Considérons le code C suivant :
> ```c
> #include
>
> int main() {
> char c;
> printf("Appuyez sur une touche : ");
> c = getchar();
> printf("Vous avez tapé : %c\n", c);
> return 0;
> }
> ```
> Les pages 14 et 15 détaillent le déroulement de l'exécution de ce programme [14](#page=14) [15](#page=15).
#### 3.3.1 Lecture d'un caractère au clavier
1. Le programme arrive à l'instruction `c = getchar();` [15](#page=15).
2. L'appel à `getchar()` requiert l'intervention du système d'exploitation pour lire l'entrée du clavier. Le programme passe donc du mode utilisateur au mode superviseur via un appel système [15](#page=15).
3. Le système d'exploitation, en mode superviseur, lance un programme spécifique pour gérer la lecture à partir de l'unité d'entrée/sortie du clavier [15](#page=15).
4. Lorsqu'une touche est frappée, le clavier envoie le code binaire du caractère à l'ordinateur [15](#page=15).
5. Le circuit électronique gérant la communication clavier-ordinateur capte ce code [15](#page=15).
6. Le programme de lecture du système d'exploitation est informé que la donnée est disponible. Il en fait une copie et la transmet au système d'exploitation [15](#page=15).
7. Le système d'exploitation réactive alors le programme utilisateur en lui fournissant le code ASCII du caractère tapé. Le contrôle est rendu au programme utilisateur [15](#page=15).
#### 3.3.2 Affichage du caractère
1. Le programme utilisateur reprend son exécution à l'instruction suivante: `printf("Vous avez tapé: %c\n", c);` [15](#page=15).
2. L'affichage d'un caractère à l'écran nécessite également l'intervention du système d'exploitation (pour interagir avec le périphérique d'affichage). Ceci déclenche un nouveau passage en mode superviseur, suivi d'un mécanisme similaire à celui de la lecture du clavier [15](#page=15).
#### 3.3.3 Chargement des programmes de lecture
Pour lancer le programme capable de lire depuis le clavier, le système d'exploitation suit plusieurs étapes [16](#page=16):
* Il détermine l'adresse du programme sur le disque dur en consultant une table appropriée [16](#page=16).
* Il initie la rotation du disque et positionne la tête de lecture à l'adresse spécifiée [16](#page=16).
* Il transfère le contenu du fichier programme (une séquence de 0 et de 1) en mémoire vive [16](#page=16).
* Après avoir chargé le contexte d'exécution nécessaire, le système d'exploitation donne la main au programme, lui permettant ainsi de s'exécuter [16](#page=16).
> **Tip:** La compréhension du passage entre le mode utilisateur et le mode superviseur est fondamentale pour appréhender comment le système d'exploitation protège ses ressources et fournit des services aux applications, tout en assurant une exécution ordonnée et sécurisée des programmes [12](#page=12).
---
# Classification des systèmes d'exploitation
Cette section détaille les différentes manières de catégoriser les systèmes d'exploitation (SE) en fonction de leur structure interne, des services qu'ils fournissent, de leur architecture logique et de l'architecture matérielle qu'ils exploitent [18](#page=18).
### 4.1 Classification selon la structure du SE
La structure d'un SE définit comment ses composants sont organisés et interagissent. Le noyau (kernel) du système est généralement exécuté dans un espace mémoire distinct de celui des applications, appelé l'espace noyau, par opposition à l'espace utilisateur. Les transitions entre ces deux espaces se font via des appels système. Cette séparation permet d'éviter que le crash d'une application n'affecte la stabilité du système [19](#page=19).
On distingue trois architectures principales: monolithique, micro-noyau et hybride [19](#page=19).
#### 4.1.1 Système monolithique
Dans un système monolithique, une grande partie des fonctions du système et des pilotes sont regroupés.
##### 4.1.1.1 Système monolithique non modulaire
Dans cette configuration, l'ensemble des fonctions du système et des pilotes sont regroupés dans un seul bloc de code fonctionnant en mode noyau [20](#page=20).
* **Avantages:** Facilité de conception et rapidité d'exécution [20](#page=20).
* **Inconvénients:** Code difficile à maintenir [20](#page=20).
* **Exemples:** MS-DOS, les premières versions d'UNIX [20](#page=20).
##### 4.1.1.2 Système monolithique modulaire
Ici, seules les parties fondamentales du système sont regroupées dans un bloc de code unique (monolithique). Les autres fonctions, comme les pilotes matériels, sont organisées en modules séparés du noyau [21](#page=21).
* **Avantages:** Économie de mémoire (seuls les pilotes nécessaires sont chargés), chargement des fonctionnalités à la demande, augmentation des possibilités de configuration [21](#page=21).
* **Inconvénients:** Instabilité relative due aux modules (une erreur dans un module peut compromettre la stabilité de tout le SE) [21](#page=21).
* **Exemples:** Linux, BSD, Sun/Oracle Solaris [21](#page=21).
#### 4.1.2 Système à micro-noyau
Un système à micro-noyau est basé sur un noyau minimal (le micro-noyau). La plupart des fonctions du SE sont déplacées vers des processus serveur s'exécutant en mode utilisateur [22](#page=22).
* **Avantages:** Code de petite taille avec des modules ou des librairies indépendantes du noyau, fiabilité accrue (un crash de processus serveur n'arrête pas le système et permet de relancer le service sans redémarrage), modèle facilement adaptable aux systèmes distribués [22](#page=22).
* **Inconvénients:** Nombre d'appels système nettement plus élevé qu'avec les noyaux monolithiques, entraînant des performances d'exécution plus faibles [22](#page=22).
* **Exemples:** GNU HURD, Minix, Windows NT [22](#page=22).
#### 4.1.3 Système hybride
Les noyaux hybrides combinent des concepts des noyaux monolithiques et des micro-noyaux afin de tirer parti des avantages des deux approches [23](#page=23).
* **Caractéristiques:** Seules les fonctions fondamentales résident dans l'espace noyau, mais certaines fonctions non critiques générant de nombreux appels système sont réintégrées dans l'espace noyau pour des raisons de performance [23](#page=23).
* **Exemples:** Mac OS X, Windows 10, Windows XP [23](#page=23).
### 4.2 Classification selon les services rendus
Cette classification se base sur le nombre de tâches et d'utilisateurs qu'un système peut gérer simultanément.
#### 4.2.1 Système mono-tâche vs. Système multi-tâches
* **Système mono-tâche:** N'autorise l'allocation du processeur qu'à une seule tâche à la fois. Le processeur n'est attribué à une nouvelle tâche qu'après l'achèvement de la précédente [24](#page=24).
* **Exemple:** DOS [24](#page=24).
* **Système multi-tâches:** Capacité du système à exécuter plusieurs tâches (processus) simultanément [24](#page=24).
* **Exemples:** UNIX, Linux, Windows 10 [24](#page=24).
#### 4.2.2 Système mono-utilisateur vs. Système multi-utilisateurs
* **Système mono-utilisateur:** Ne peut gérer qu'un seul utilisateur à la fois [25](#page=25).
* **Exemples:** DOS, Windows 95, Windows 98 [25](#page=25).
* **Système multi-utilisateurs:** Permet à plusieurs utilisateurs d'utiliser l'ordinateur simultanément, tout en gérant les droits d'accès pour garantir l'intégrité des données de chaque utilisateur [25](#page=25).
* **Exemples:** UNIX, Linux, Windows 10 [25](#page=25).
### 4.3 Classification selon leur architecture logique
Cette classification concerne la manière dont les ressources sont gérées et distribuées au sein d'un réseau.
#### 4.3.1 Systèmes centralisés
Dans un système centralisé, l'ensemble du système est entièrement présent sur une seule machine. Les machines connectées sont considérées comme des entités étrangères disposant de leur propre système centralisé. Le système ne gère que les ressources de la machine sur laquelle il est installé [26](#page=26).
* **Exemples:** La plupart des systèmes d'exploitation courants [26](#page=26).
#### 4.3.2 Systèmes répartis (ou distribués)
Un SE distribué gère l'ensemble des machines connectées et permet le partage des ressources entre elles. Un utilisateur peut accéder à des ressources coûteuses situées sur d'autres ordinateurs [27](#page=27).
* **Caractéristiques:** Le système apparaît à l'utilisateur comme une machine unique, l'utilisateur n'a pas à se soucier de la localisation des ressources, et le système exploite le parallélisme d'un ensemble de machines [27](#page=27).
* **Exemples:** Mach, Amoeba, Chorus OS, Erlang, Inferno [27](#page=27).
### 4.4 Classification selon l’architecture matérielle qui les supporte
Cette classification concerne le type de processeur utilisé par le système.
#### 4.4.1 Architecture monoprocesseur (multiprogrammation)
Un processeur avec un seul cœur (single-core) ne peut traiter qu'une seule instruction élémentaire à la fois. Pour offrir un parallélisme apparent à l'utilisateur, un mécanisme de gestion des processus, appelé multiprogrammation, a été développé. Avant l'avènement des processeurs multicœurs, la multiprogrammation donnait l'impression que les processeurs mono-cœur étaient multi-tâches grâce au passage rapide entre les instructions [28](#page=28).
* **Exemple de famille de processeurs mono-cœur:** Intel Pentium (années 1990 à 2006) [28](#page=28).
#### 4.4.2 Architecture avec processeur multicoeurs
Un processeur multicœur est composé de deux ou plusieurs cœurs indépendants, chaque cœur étant capable de traiter des instructions individuellement. Les cœurs fonctionnent en parallèle pour augmenter la puissance de calcul [29](#page=29).
* **Exemples de familles de processeurs multicœurs :**
* Intel Celeron Dual Core (2 cœurs) [29](#page=29).
* Intel Core i3, i5, i7 (4 à 8 cœurs selon la génération) [29](#page=29).
* AMD Ryzen 7 (8 cœurs) [29](#page=29).
---
# Classes spécifiques de systèmes d'exploitation
Cette section aborde les caractéristiques et domaines d'application de systèmes d'exploitation spécifiques tels que les systèmes temps réel et les systèmes embarqués.
### 5.1 Systèmes temps réel
Les systèmes temps réel (RTOS - Real Time Operating Systems) sont conçus pour exécuter des programmes en respectant des contraintes temporelles strictes ou souples. Les résultats d'une exécution ne sont valides que dans un intervalle de temps prédéterminé [30](#page=30).
> **Example:** Un exemple typique est le contrôle d'un processus de fabrication. Pour un robot soudeur dans une usine automobile, une soudure effectuée trop tôt ou trop tard peut compromettre la qualité du véhicule [30](#page=30).
Quelques exemples de systèmes d'exploitation temps réel incluent RTLinux, VxWorks, RTX, FreeRTOS et QNX [30](#page=30).
### 5.2 Systèmes embarqués
Les systèmes embarqués sont développés pour fonctionner sur des machines de petite taille, souvent des appareils électroniques autonomes. Ces appareils, tels que les sondes spatiales, les robots ou les ordinateurs de bord de véhicules, disposent de ressources limitées en termes de mémoire et d'énergie [31](#page=31).
Il est fréquent que les systèmes embarqués soient également des systèmes temps réel. Ils utilisent généralement des microprocesseurs à faible consommation d'énergie ou des microcontrôleurs. La partie logicielle est souvent partiellement ou entièrement intégrée au matériel, généralement stockée dans une mémoire morte (ROM), EPROM ou FLASH, formant ce que l'on appelle le firmware [31](#page=31).
> **Example:** Des exemples de systèmes embarqués comprennent Windows Mobile, Android (basé sur un noyau Linux), Symbian OS (utilisé sur d'anciens téléphones Nokia) et les consoles de jeux comme PlayStation et Xbox [31](#page=31).
---
## Erreurs courantes à éviter
- Révisez tous les sujets en profondeur avant les examens
- Portez attention aux formules et définitions clés
- Pratiquez avec les exemples fournis dans chaque section
- Ne mémorisez pas sans comprendre les concepts sous-jacents
Glossary
| Term | Definition |
|------|------------|
| Système d’exploitation (SE) | Ensemble de composants de base et utilitaires qui interagissent pour gérer les ressources communes d'une infrastructure informatique, servant d'intermédiaire indispensable entre l'utilisateur, les programmes et le matériel. |
| Matériel | Constitue la partie physique de l'ordinateur, incluant des éléments tels que le processeur, la mémoire, les périphériques comme l'imprimante ou le clavier. |
| Programme applicatif | Logiciel conçu pour répondre à un problème spécifique ou effectuer une tâche particulière, en utilisant les services généraux fournis par le système d'exploitation. |
| Interface | Représente la manière dont un utilisateur interagit avec un système ou un programme, ou la manière dont différents composants d'un système communiquent entre eux. Les SE fournissent des interfaces de haut niveau pour masquer la complexité du matériel. |
| Gestion des ressources | Fonction principale d'un SE consistant à allouer et à contrôler l'accès aux différentes ressources matérielles et logicielles de l'ordinateur, telles que le processeur, la mémoire, les périphériques et les fichiers, en assurant efficacité et partage sécurisé. |
| Tâche (ou Processus) | Représente une unité d'exécution au sein d'un système d'exploitation. La gestion des tâches permet au système d'exécuter plusieurs programmes simultanément ou de manière entrelacée. |
| Ordonnancement | Algorithme utilisé par le système d'exploitation pour décider de l'ordre dans lequel les différentes tâches ou processus doivent être exécutés sur le processeur, afin d'optimiser l'utilisation des ressources et de répondre aux besoins des utilisateurs. |
| Mémoire virtuelle | Technique de gestion de la mémoire où le système d'exploitation donne l'illusion d'une mémoire centrale plus grande que la mémoire physique disponible, en utilisant une partie du disque de stockage comme extension de la RAM. |
| Système de gestion de fichiers (SGF) | Composant du système d'exploitation responsable de l'organisation, du stockage, de la récupération et de la manipulation des fichiers sur les dispositifs de stockage de masse, tels que les disques durs. |
| Mode superviseur | Mode d'exécution privilégié d'un système d'exploitation, qui donne accès à toutes les instructions matérielles et garantit la protection du système contre les accès non autorisés ou les erreurs des programmes utilisateurs. |
| Mode utilisateur | Mode d'exécution standard pour les programmes applicatifs, où l'accès aux instructions critiques et aux ressources matérielles est limité pour assurer la stabilité et la sécurité du système. |
| Appel système | Interface programmatique par laquelle un programme utilisateur demande au système d'exploitation d'exécuter une opération privilégiée, comme l'accès à un fichier ou la gestion de la mémoire. |
| Interruption | Signal envoyé au processeur par un périphérique matériel ou un événement logiciel, qui interrompt l'exécution du programme courant pour exécuter une routine de gestion spécifique du système d'exploitation. |
| Noyau (Kernel) | Partie centrale du système d'exploitation qui gère les fonctions les plus critiques, telles que l'allocation du processeur, la gestion de la mémoire et l'accès aux périphériques. Il s'exécute généralement en mode superviseur. |
| Système monolithique | Type de système d'exploitation où toutes les fonctions principales du système, y compris les pilotes, sont intégrées dans un seul bloc de code exécuté dans l'espace noyau. |
| Micro-noyau | Architecture de système d'exploitation où le noyau est réduit à ses fonctions essentielles, tandis que la plupart des autres services sont déplacés vers des processus serveurs s'exécutant en mode utilisateur. |
| Système hybride | Architecture de système d'exploitation qui combine des éléments des systèmes monolithiques et des systèmes à micro-noyau, cherchant à bénéficier des avantages des deux approches. |
| Système temps réel (RTOS) | Système d'exploitation conçu pour exécuter des tâches dans des délais stricts, où la validité des résultats dépend de leur ponctualité, souvent utilisé dans le contrôle de processus industriels ou de systèmes critiques. |
| Système embarqué | Système informatique conçu pour fonctionner dans un appareil spécifique, souvent de petite taille et avec des ressources limitées (mémoire, énergie), comme dans les automobiles, les appareils électroniques portables ou les sondes spatiales. |