ScholarGate
Assistant

Systèmes d'exploitation

Un système d'exploitation est la couche logicielle qui gère le matériel d'un ordinateur et fournit des services aux applications, multiplexant le processeur, la mémoire, le stockage et les périphériques entre les programmes tout en assurant la protection et l'abstraction.

Trouver un sujet avec PaperMindBientôtFind papers & topics
Tools & resources
Télécharger les diapositives
Learn & explore
VidéoBientôt

Definition

Un système d'exploitation est le logiciel système qui gère les ressources matérielles, fournit des abstractions telles que les processus, les fichiers et les espaces d'adressage, et assure la médiation entre les programmes d'application et la machine sous-jacente tout en garantissant l'isolation et le partage équitable.

Scope

Ce domaine couvre les principes et la structure des systèmes d'exploitation : processus et threads, ordonnancement du CPU, gestion de la mémoire et mémoire virtuelle, systèmes de fichiers, concurrence et synchronisation, gestion des périphériques et des E/S, et protection. Il considère le système d'exploitation comme le gestionnaire de ressources et la couche d'abstraction entre le matériel et les applications. Il est en relation avec la hiérarchie de la mémoire et les caches (il gère la mémoire virtuelle) ainsi que les systèmes de stockage et d'E/S (il gère les périphériques et la persistance), et exclut la coordination distribuée entre machines, traitée dans le cadre du calcul distribué et parallèle.

Sub-topics

Core questions

  • Comment le système d'exploitation crée-t-il l'abstraction de processus et de threads indépendants sur du matériel partagé ?
  • Comment l'ordonnanceur décide-t-il quelle tâche prête exécuter, et selon quels objectifs ?
  • Comment le système d'exploitation gère-t-il la mémoire et implémente-t-il la mémoire virtuelle et la pagination ?
  • Comment les systèmes de fichiers organisent-ils les données persistantes sur les périphériques de stockage de manière fiable ?
  • Comment le système d'exploitation assure-t-il la protection, l'isolation et l'accès contrôlé aux ressources ?

Key concepts

  • mode noyau et mode utilisateur
  • processus et thread
  • commutation de contexte
  • ordonnancement du CPU
  • mémoire virtuelle et pagination
  • système de fichiers
  • concurrence et synchronisation
  • interblocage
  • appels système
  • protection et isolation

Key theories

Abstraction de processus et d'espace d'adressage
Le système d'exploitation virtualise le CPU et la mémoire de sorte que chaque programme s'exécute comme s'il possédait la machine : un processus regroupe un espace d'adressage, un contexte d'exécution et des ressources, et le noyau bascule entre les processus et les protège les uns des autres.
Gestion de la mémoire par ensemble de travail
Le modèle de l'ensemble de travail de Denning caractérise l'ensemble des pages qu'un processus utilise activement sur une fenêtre de temps ; maintenir l'ensemble de travail de chaque processus en mémoire résidente évite le 'thrashing' (surcharges de pagination) et guide les décisions de pagination et d'admission dans les systèmes à mémoire virtuelle.

Mechanisms

Le noyau s'exécute en mode privilégié et assure la médiation de l'accès au matériel. Il représente les programmes en cours d'exécution sous forme de processus et de threads, basculant entre eux via des commutations de contexte (context switches) pilotées par un ordonnanceur. La mémoire est gérée par pagination et traduction d'adresses virtuelles ; les données persistantes sont organisées par des systèmes de fichiers ; et l'état partagé est coordonné par des primitives de synchronisation telles que les verrous (locks), les sémaphores et les moniteurs. Les appels système (system calls) offrent aux applications un accès contrôlé aux services du noyau.

Clinical relevance

Les systèmes d'exploitation sont à la base de pratiquement toutes les formes de calcul : des serveurs et ordinateurs de bureau aux téléphones et appareils embarqués. Leur conception détermine les performances, la fiabilité et la sécurité — l'ordonnancement affecte la réactivité, la gestion de la mémoire affecte le débit, et les mécanismes d'isolation sont le fondement de la sécurité des systèmes et de la virtualisation. Des noyaux largement déployés comme Linux et Windows incarnent ces principes à l'échelle planétaire.

History

Les systèmes d'exploitation ont évolué des moniteurs de traitement par lots (batch monitors) des années 1950, en passant par les systèmes de multiprogrammation et de temps partagé (time-sharing) tels que CTSS et Multics dans les années 1960. UNIX, créé par Thompson et Ritchie vers 1970, a établi des abstractions durables encore visibles dans les systèmes modernes. Les travaux de Dijkstra sur les sémaphores et la concurrence, ainsi que le modèle de l'ensemble de travail (working-set model) de Denning, ont posé les fondations théoriques, et les systèmes personnels, mobiles et virtualisés ont étendu le domaine au cours des décennies suivantes.

Debates

Conception monolithique versus micro-noyau
Un débat de longue date oppose les noyaux monolithiques, qui exécutent la plupart des services en mode privilégié pour des raisons de performance, aux micro-noyaux, qui déplacent les services vers l'espace utilisateur pour la modularité et la fiabilité ; les systèmes modernes combinent les deux approches.

Key figures

  • Edsger W. Dijkstra
  • Peter J. Denning
  • Per Brinch Hansen
  • Ken Thompson
  • Dennis Ritchie
  • Abraham Silberschatz
  • Andrew S. Tanenbaum

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os
  • denning1968

Frequently asked questions

Quelle est la différence entre un processus et un thread ?
Un processus est une exécution de programme indépendante avec son propre espace d'adressage et ses ressources. Un thread est une unité d'exécution au sein d'un processus ; plusieurs threads partagent l'espace d'adressage du processus, ce qui rend la communication peu coûteuse mais nécessite une synchronisation pour éviter les conditions de concurrence (races).
Que fait le noyau que les programmes ordinaires ne peuvent pas faire ?
Le noyau s'exécute dans un mode processeur privilégié qui lui permet d'accéder directement au matériel, de gérer les mappages de mémoire, de gérer les interruptions et de basculer entre les processus. Les applications demandent ces services privilégiés via des appels système plutôt que de les exécuter elles-mêmes, ce qui préserve l'isolation et la protection.

Methods for this concept

Related concepts