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
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 !!
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
ordonnanceur : programme chargé pour gérer l'ordonnancement
ordrdonnanceur à long terme : dans un contexte de traitement par lots (mode batch)
ordrdonnanceur à court terme : gère l'allocation du processeur (classique)
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