cours/Systemes d'exploitation/Cours/1.md

7.1 KiB

Cours 1 : Gestion de l'activité

Processus

Notion de processus

1. Définition:
  • activité/programme en exécution
  • aspect actif vs. passif (programme/fichier)
  • unité de travail dans la plupart des sys.
2. Objectif:
  • exécution concurrente
  • multiprogrammation
  • temps partagé

Quelques aspects des processus

  • les processus utilisent des ressources
    • processeur
    • mémoire
    • I/O
    • ..
  • processus sys. vs. processus util.
  • le S.E. est responsable de la gestion des processus:
    • création
    • destruction
    • allocation de ressources
    • ordonnancement
    • synchronisation
    • communication inter-processus
    • ..
  • processus à multiples flots de contrôle (threads)

Implantation d'un processus

1. Eléments consistuants d'un processus:
composante description
section de texte source en asm
compteur d'instructions position actuelle dans le prog.
contenu des registres dans le cache proc.
pile d'exécution mémoire dynamique d'exécution
section des données variables globales

Remarque: 2 processus peuvent exécuter le même programme mais ils ne partagent rien.

2. Bloc de contrôle d'un processus
+----------+--------------------+
| pointeur | état du processus  |
+----------+--------------------+
| numéro de processus           |
+-------------------------------+
| compteur de programme         |
+-------------------------------+
| registres                     |
+-------------------------------+
| limites mémoire               |
+-------------------------------+
| liste des fichiers ouverts    |
+-------------------------------+
| ...                           |
+-------------------------------+

PCB: Process Control Bloc

Contenu d'un PCB
  • état courant du processus
  • compteur d'instructions: adresse de la prochaine exécution à exécuter
  • registres de processeur: doivent être sauvegardés afin de revenir au processus après interruption
  • ..
  • informations sur la gestion de mémoire: valeur des registres de base et de limite, tables de pages ou de segments
  • information de comptabilisatio: temps CPU et réel, limite de temps, etc
  • information de statut I/O: listes des périphériques alloués
Etat d'un processus

Diagramme d'états

Remarque: à un instant donné

  • un processus au plus est en exécution par le processeur
  • plusieurs processus peuvent être prêts ou en attente
Commutation de contexte
  • c'est la sauvegarde de l'état du processus courant et le chargement de l'état sauvegardé d'un nouveau processus
  • contexte = PCB
  • cout de la commutation (temps perdu) varie d'une machine à l'autre (sur certaines machines: dispositifs spéciaux pour la copie des registres) : de 1 à 1000 us.
  • aspect critique de l'efficacité d'un système !!

Schéma de commutation

Threads
  • implémentent les flots d'exécution multiples (processus multithreadés - multithreaded processes)
  • intérêt:
    • contrôle centralisé des différentes tâches (un seul processus) par le programmeur
    • économie de mém. (la plupart des informations du PCB sont communes aux différents threads)
Ordonnancement des processus
  • Objectif: gérer l'accès concurrent aux ressources par les processus
  • Gestion par files d'attentes
    • file d'attente des travaux : tous les processus
    • file d'attente des processus prêts (liste chainée de PCBs)
    • file d'attente pour chaque périphérique
Ordonnanceurs
  1. ordonnanceur : programme chargé pour gérer l'ordonnancement
  2. ordrdonnanceur à long terme : dans un contexte de traitement par lots (mode batch)
  3. ordrdonnanceur à court terme : gère l'allocation du processeur (classique)
  4. ordrdonnanceur à moyen terme : pour le swap (quand plus assez de mém. dans la mémoire centrale, il retire un processus et le transfère dans le HDD)
Problèmes de systèmes interactifs
  • sur certains systèmes interactifs comme Unix, il n'y a pas d'ordonnanceur long terme (logique)
  • si trop de processus (en particulier si beaucoup d'util.) la mémoire ne peut plus les contenir tous Solutions
  • "Ejecter" des utilisateurs (bof bof)
  • swap
Ordonnanceur à moyen terme
  • Régule le degré de multiprogrammation en implémentant un mécanisme de transfert de processus de la mém. vers les unités de stockage et inversement : permutation ou swap
  • Critères:
    • taux d'utilisation de la mém. principale (majorité du temps)
    • dosage entre les processus usant du processeur et processus usant des I/O
  • Algorithme assez couteux et donc fréquence d'exécution faible (plusieurs sec)
Ordonnancement à court terme
  • fréquence d'exécution élevée (< 0.1s)
  • l'algorithme doit être efficace

exemple: si temps d'exécution = 0.01s, alors 9% du temps perdu dans l'ordonnancement.

Processus coopérants
  • Intérêts:

    • partage d'information
    • accélération du calcul
    • modularité
    • commodité
    • interactivité
  • Requiert des mécanismes permettant aux processus de coopérer

    • exemple: producteur/consommateur
Communication inter-processus
  • Première solution: mémoire partagée
    • pas évident dans le cadre général (implantation des mécanismes de protection mém. plus complexe)
    • impossible dans un contexte distribué
  • Seconde solution: fournir une fonctionnalité de communication interprocessus
    (IPC: InterProcess Communication)
    • communication + synchronisation
Implantation d'un IPC
  • Par un système de passage de messages
    • 2 primitives de base : send et receive
  • Implantation logique vs. physique
  • Implantation physique
    • mémoire partagée
    • bus matériel
    • réseau
  • Implantation logique
    • communication directe ou indirecte
    • communication symétrique ou asymétrique
    • mise en tampon automatique ou explicite
    • envoi par copie ou par référence
    • messages de taille fixe ou variable
Nommage
  • Afin de pouvoir s'envoyer des messages les processus doivent pouvoir s'identifier et donc être nommés
  • Communication directe
    • symétrique
      • send(proc1,message) / receive(proc2,{message})
    • asymétrique
      • send(proc2,message) / receive({id_envoyeur},{message})
    • inconvénient: renommage d'un processus lourd à gérer (définition de tous ses liens à redéfinir)
  • Communication indirecte
    • utilisation d'une boite aux lettres (port)
    • send(A,message) / receive(A,message)
    • boites aux lettres publiques ou privées
      • boite privée propriété du processus qui l'a créée qui est le seul habilité à la lire (sauf s'il transmet le droit)
      • boite publique créée par le système
Synchronisation des processus
  • Passage de message peut être synchrone ou asynchrone (bloquant ou non)
    • envoi bloquant
    • envoi non bloquant
    • réception bloquante
    • réception non bloquante
  • Envoi et réception bloquants = rendez-vous
Mise en tampon
  • Que la communication soit directe ou non, les messages sont stockés dans une file d'attente
    • capacité zéro: revient à envoi bloquant
    • capacité bornée: envoi bloquant si file pleine
    • capacité non bornée: envoi non bloquant