Processus, threads, concurrence, virtualisation de la mémoire et systèmes de fichiers, couvrant un cours standard de licence en systèmes d'exploitation.
Chaque compétence que le diagnostic peut vérifier, regroupée comme sur la carte. Ouvrez une notion pour commencer une leçon.
Fondamentaux
Ce que fait un système d'exploitation: Le SE comme la couche qui transforme du matériel brut et partagé en une abstraction propre et protégée pour les programmes.
Appels système et mode noyau: La porte contrôlée, un piège vers le mode noyau, qu'un programme utilise pour demander au SE de faire quelque chose en son nom.
Processus et threads
L'abstraction de processus: L'illusion isolée d'un programme en cours d'exécution d'avoir son propre CPU et sa propre mémoire, suivie par le SE via un bloc de contrôle de processus.
Communication interprocessus: Tubes, mémoire partagée et passage de messages, les façons dont des processus séparés échangent des données en toute sécurité.
Concurrence
Threads: Plusieurs chemins d'exécution indépendants partageant l'espace d'adressage d'un même processus.
Sémaphores et variables de condition: Des verrous à compteur et des primitives d'attente-jusqu'à-signal, des outils plus flexibles qu'un simple mutex.
Problèmes classiques de synchronisation: Des énigmes nommées, producteur-consommateur, lecteurs-rédacteurs, dîner des philosophes, qui mettent à l'épreuve une conception de synchronisation.
Interblocage: Un cycle de threads attendant chacun un verrou détenu par un autre, si bien qu'aucun ne peut avancer.
Ordonnancement CPU
Bases de l'ordonnancement CPU: La politique qui décide quel processus prêt s'exécute ensuite, et pendant combien de temps.
Ordonnancement avancé et réel: Des politiques d'ordonnancement, files de priorité, MLFQ, CFS, qui s'adaptent à des charges de travail réelles au lieu de supposer des tâches uniformes.
Virtualisation de la mémoire
Espaces d'adressage: La vue privée de chaque processus sur la mémoire, commençant à zéro, que le SE fait correspondre à la RAM physique réelle.
Pagination: Diviser la mémoire en pages de taille fixe pour que l'espace d'adressage d'un processus n'ait pas besoin de tenir dans un seul bloc contigu.
TLB et traduction d'adresses rapide: Un petit cache matériel des traductions d'adresses récentes, pour que la pagination ne coûte pas un accès mémoire à chaque accès.
Tables des pages multi-niveaux et inversées: Des tables des pages multi-niveaux et inversées, des façons d'empêcher la structure de traduction elle-même de consommer trop de mémoire.
Mémoire virtuelle et remplacement de pages: Permettre à l'utilisation totale de la mémoire de dépasser la RAM physique en échangeant des pages vers le disque, et décider quelle page expulser.
Stockage et E/S
Périphériques d'E/S et interruptions: Comment le SE communique avec les périphériques, par scrutation, interruptions ou DMA, sans que le CPU surveille chaque transfert.
Disques durs et SSD: Comment les disques rotatifs et le stockage flash stockent et récupèrent réellement les données, et pourquoi leurs profils de performance diffèrent.
Implémentation des systèmes de fichiers: Comment un vrai système de fichiers, FFS, FAT, NTFS, organise les inodes, répertoires et blocs de données sur le disque.
Cohérence après plantage et journalisation: Garder les structures sur disque du système de fichiers cohérentes après un plantage, via la journalisation ou une vérification de type fsck.
Redondance et RAID: Répartir ou dupliquer des données sur plusieurs disques pour qu'une panne de disque ne fasse pas perdre de données.
Sécurité
Bases de la protection et de la sécurité: Les niveaux de privilège et vérifications d'accès qui empêchent un processus de lire ou de corrompre la mémoire d'un autre.