Files
Yggdrasil/legacy_docs/infotro/PTR/SYS.md
T
Klagarge b78f79e12e docs: move legacy docs to legacy_docs/
Assisted-by: Delta:zai-glm-5.3
2026-10-10 20:28:25 +02:00

7.2 KiB

Introduction aux systèmes d'exploitation

operating_system.png

Le système d'exploitation virtualise la partie hardware pour :

  • Simplifie l'utilisation
  • Gère les ressources physiques
    • Processeur
    • Mémoire principale
    • Entrées-sorties (disques, interfaces réseaux, ...)

L'OS gère les ressources à l'aide de technique de gestion des mémoires et de partage de ressources partageable entre plusieurs utilisateurs (ex : threads). Pour ce faire, il

  • connait à tout moment l'utilisateur d'une ressource
  • gère les accès à une ressource
  • accorde l'usage d'une ressource
  • évite les conflits

Les premiers systèmes d'exploitation étaient des systèmes à traitement par lots. Les programmes étaient regroupés en lots et exécutés les uns après les autres. Les programmes étaient chargés en mémoire et exécutés sans intervention de l'utilisateur.

Machine à transistors

  • Coûtent cher
  • Les utilisateurs ne peuvent pas interagir avec le système
  • Les utilisateurs écrivent leurs programmes en Fortran et en assembleur

Fonctionnement :

  1. Programmation d'une carte perforée en Fortran ou en assembleur
  2. L'opérateur prend les cartes perforées et les charge dans le compilateur
  3. L'opérateur récupère les cartes perforées compilées et les charge dans "l'ordinateur"
  4. L'ordinateur exécute le programme
  5. S'il y a une erreur, l'opérateur imprime l'image de la mémoire sur un listing et doit tout recommencer.

Systèmes à traitement par lots

Pour accélérer les opérations, deux méthodes sont utilisées :

  • Le traitement par lots (batch processing) : Regroupe et traite à la suite les travaux similaires
  • Le moniteurs d'enchaînement (linking monitor) : Les travaux sont automatiquement enchaîné et executé par un programme spécialisé (ancêtre des systèmes d'exploitation)
    • Une place mémoire lui est réservée dans la mémoire centrale qui se divise donc en une zone moniteur et une zone utilisateur

Sysèmes avec spooling

Les systèmes avec spooling permettent d'accéder simultanément à plusieurs périphériques d'entrée/sortie. Les travaux sont stockés dans une file d'attente (spool) et sont traités par un programme spécialisé. Le spooling permet de traiter plusieurs travaux en même temps.

La mémoire est partagée en quatre programmes :

  • Le programme d'entrée
  • Le programme d'enchaînement
  • Le programme de l'utilisateur
  • Le programme de sortie

spooling.png

Système à multi-programmation

La multi-programmation permet de partager le processeur entre plusieurs programmes. Chaque programme est chargé en mémoire et est exécuté en alternance. Dès qu'un programme doit lire des données ou écrire des résultats, il est mis en attente et un autre programme est exécuté afin d'optimiser l'utilisation du processeur.

multiprogramming .png

La commutation de l'exécution d'un programme à un autre est assuré par l'ordonnanceur (scheduler).

Inconvénients : Les programmes cours, sont pénalisés, car leur temps d'exécution dépend aussi des autres programmes en cours d'exécution.

Système à temps partagé

Le système à temps partagé permet à plusieurs utilisateurs d'accéder simultanément à l'ordinateur. Chaque utilisateur dispose d'un temps d'utilisation du processeur (time slice) qui est très court (ex. 40 msec).

time-sharing.png

Système temps réel

Les systèmes temps réel doivent être capables réagire au rythme où les données arrivent et repartent. Ils ont des contraîntes plus hautes ques les systèmes à temps partagé, qui peuvent se permettent d'attendre alors qu'un système temps réel aurait des conséquences fâcheuses.

Systèmes multi-processeur répartis

Dans un système multi-processeur répartis, chaque processeur dispose de son propre système d'exploitation. Les systèmes d'exploitation communiquent entre eux pour partager les ressources.

Mécanisme d'entrées-sorties

Pour accéder aux périphériques, le processeur utilise des mécanismes d'entrées sorties.

Les registres d'un processeur

Les registres contenus dans le processeur sont regroupés selon leur fonctionnalités

  • Registre généraux
  • Registre spécialisés
    • Le registre d'instruction IR (Instruction Register) contient l'instruction courante
    • Le compteur ordinal PC (Program Counter) contient l'adresse de l'instruction courante
  • Le registre d'état SR (Status Register) contient des informations sur l'état du processeur

Ces regstres caractérisent le contexte d'un programme. Il s'agit de la partie sauvegardée lors d'un switching context (changement de contexte).

Les registres d'un périphérique

Les périphériques disposent, pour comuniquer avec le processeur, d'un certain nombre de registres:

  • Registre de données DR (Data Register) : Contient les données à lire ou à écrire
  • Registre d'état SR (Status Register) : Contient des informations sur l'état du périphérique
  • Registre de commande CR (Command Register) : Détermine les caractéristiques du périphérique

Entrées-sorties en boucle d'attente

Dans ce mode, le processeur attend que le périphérique soit prêt pour effectuer une opération. Le processeur effectue une boucle d'attente jusqu'à ce que le périphérique soit prêt.

  1. Le processeur contrôle le registre d'état du périphérique
  2. Si le périphérique n'est pas prêt, le processeur effectue une boucle d'attente. S'il est prêt :
  3. Le processeur écrit les données dans le registre de données
  4. Le processeur écrit la commande dans le registre de commande
  5. Le périphérique effectue l'opération
  6. Le périphérique met à jour le registre d'état
  7. Le processeur lit les données dans le registre de données

Si le périphérique notifie le processeur :

  1. Le périphérique va changer son statut
  2. Le processeur va pouvoir aller chercher les données dans le registre de données

Les interruptions

Les interruptions permettent de signaler au processeur qu'un événement s'est produit. Le signal est la conséquence d'un évènement interne au programme et résultant de son exécution ou externe et indépendant de son exécution. Toute l'information nécessaire pour traiter l'interruption est regroupé en mémoire dans deux mots consécutis, appelés vecteur d'interruption (vector interrupt). On y trouve :

  • L'adresse de la routine de traitement de l'interruption
  • Le registre d'état du processeur pour cette routine.

Lorsqu'une interruption se produit, le processeur effectue un switching context et exécute la routine.

On distingue en général au moins trois niveaux d'interruption :

  • Les interruptions externes
  • Les exceptions internes
  • Les appels systèmes

interruptions.png

La DMA

La DMA (Direct Access Memory) permet de faire des transferts vers la mémoire rapidement. Le processeur laisse le controller DMA accéder au périphérique pour amener les données directement dans la mémoire et éviter de perdre du temps en passant par le processeur qui doit faire une copie des données. Elle est très utile lorsqu'il y a un grand nombre de données.