Systèmes d exploitation Gestion des processus Didier Verna didier@lrde.epita.fr 5 décembre 2000
Table des matières Table des matières Généralités... 3 États d un processus... 4 Bloc de contrôle d un processus (PCB)... 5 Ordonancement des processus... 6 Types d ordonanceurs... 7 Commutation de contexte... 8 Opérations sur un processus... 9 Communication inter-processus... 10 Communication directe... 11 Gestion des processus 1
Table des matières Communication indirecte... 12 Bufferisation... 13 Cas pathologiques... 14 Le multithreading... 15 Fonctionnement des threads... 16 Les threads de Solaris 2... 17 Systèmes d exploitation Gestion des processus 2
Généralités Généralités Un programme est une suite d instructions Un processus est un programme en exécution Plusieurs processus peuvent exécuter simultanément des copies d un même programme. Plusieurs processus peuvent exécuter simultanément la même copie d un même programme («réentrance»). Systèmes d exploitation Gestion des processus 3
Généralités États d un processus États d un processus Nouveau Terminé admission Prêt réception d événement ou d entrée/sortie dispatching interruption En Exécution exit requête d événement ou d entrée/sortie En Attente Un processeur ne peut exécuter qu un seul processus à la fois. Systèmes d exploitation Gestion des processus 4
Généralités Bloc de contrôle d un processus (PCB) Bloc de contrôle d un processus (PCB) Un processus est représenté par une structure de données comprenant certaines informations : État du processus : prêt, en exécution... Compteur d instructions : prochaine instruction à exécuter. Registres : pointeurs de pile... Scheduling : priorité du processus, pointeurs vers les files d attente... Mémoire : zones d accès autorisées... Entrées/Sorties : fichiers ouverts... Comptabilité : temps CPU déjà utilisé... Systèmes d exploitation Gestion des processus 5
Ordonancement des processus Ordonancement des processus Un seul processus en exécution par processur = stockage de tous les PCB dans des files d attente (listes chaînées des PCB). Il existe toujours au moins : une file d attente des processus prêts, une file d attente par périphérique. File d attente des processus prêts Proc E/S File d attente d une entrée/sortie Requête d E/S Quantum écoulé Systèmes d exploitation Gestion des processus 6
Ordonancement des processus Types d ordonanceurs Types d ordonanceurs Long terme : Présélection des tâches spoolées sur disque et mise en mémoire (traitement par lots). S exécute très peu souvent. Court terme : Sélection des processus à exécuter parmi les processus prêts (en temps partagé). S exécute très souvent. Moyen terme : Gestion de la mémoire auxiliaire (en temps partagé). Technique du swapping. Systèmes d exploitation Gestion des processus 7
Ordonancement des processus Commutation de contexte Commutation de contexte Échange des donnés concernant les processus (PCB) au moment du dispatching. Surcharge de travail pour le processeur. Vitesse liée à la complexité du système, la quantité de registres, l existence d instructions matérielles... Goulot d étranglement pour les systèmes modernes (Cf. les threads). Systèmes d exploitation Gestion des processus 8
Opérations sur un processus Opérations sur un processus Arbre des processus : tout processus («fils») est créé par un autre processus («père»). Création : le fils peut cloner le père ou exécuter un programme différent. Attente : le père peut s exécuter en concurrence ou attente de terminaison du fils. Terminaison : renvoi éventuel de données au père (valeur de retour), libération des ressources par le système (mémoire, fichiers). Un processus peut se terminer de lui-même, ou être «tué» par un autre processus. Terminaison en cascade : un processus ne peut en général pas survivre à son père. Systèmes d exploitation Gestion des processus 9
Communication inter-processus Communication inter-processus Deux processus sont dits «coopératifs» lorsqu ils partagent des ressources où lorsque qu ils ont une influence l un sur l autre. Les processus coopératifs sont essentiels : Partage de l information : accès concurentiel aux fichiers. Augmentation des performances : traitement d une tâche parallélisé. Modularité : répartition et organisation des tâches du système. Utilisabilité : un utilisateur peut lancer plusieurs processus simultanément. = Il est nécessaire d avoir des mécanismes de communication entre processus (IPC). Il est plus pratique que le système d exploitation fournisse ces mécanismes. Systèmes d exploitation Gestion des processus 10
Communication inter-processus Communication directe Communication directe Nommage explicite du destinataire ou de l émetteur Liaison automatique créée par le système. Une seule liaison par paire de processus. Une seule paire de processus par liaison. Liaison uni ou bidirectionnelle. Liaison symétrique : send (P, msg) ; recv (P, msg) ; Liaison asymétrique : send (P, msg) ; recv (id, msg) ; = Nécessité de connaître les noms des processus. Problème en cas de changement de nom. Systèmes d exploitation Gestion des processus 11
Communication inter-processus Communication indirecte Communication indirecte Envoi et réception sur des ports send (A, msg) ; recv (A, msg) ; Liaison établie à condition que les processus partagent un même port. Plus de deux liaisons par processus. Plus de deux processus par liaison. Liaison uni ou bidirectionnelle. = Problème à gérer : multiples réceptions simultanées sur un même port (se restreindre à deux processus, limiter les types d accès en lecture ou écriture...). Systèmes d exploitation Gestion des processus 12
Communication inter-processus Bufferisation Bufferisation Capacité 0 : aucun message en attente. Nécessité d un synchronisation pour échanger des messages («rendez-vous»). Capacité limitée : l émetteur peut être retardé si le buffer est plein. Capacité illimitée : l émetteur n est jamais retardé. Pour des capacités non nulles, la communication est asynchrone : Un émetteur ne sait pas si son message est reçu. Synchronisation possible par «acquittement». Synchronisation possible en rendant send bloquant jusqu à l arrivée d un accusé de réception. Systèmes d exploitation Gestion des processus 13
Communication inter-processus Cas pathologiques Cas pathologiques Terminaison : P attends (ou envoie) un message de (ou vers) un processus terminé. Le système doit le terminer ou lui notifier le problème. Messages perdus : plusieurs possibilités : vérification sous la responsabilité de l émetteur lui-même. renvoi (ou notification à l émetteur) sous la responsabilité du système. Détection par temporisation. Certains protocoles spécifient explicitement que des messages peuvent être perdus. Messages bruités : («bitflip») idem. Détection par contrôle de parité. Systèmes d exploitation Gestion des processus 14
Le multithreading Le multithreading Les threads («LWP») répondent aux besoins suivants : Fournir un parallélisme intra-processus. Partager les données d un processus entre plusieurs fils d exécution. Amoindrir le coût de la commutation de contexte. = Un thread est défini par un compteur d instructions, un ensemble de registres et une pile. Il partage les autres ressources avec d autres threads. = Un ensemble de threads est une «tâche». Un processus traditionnel («HWP») est une tâche à un seul thread. Systèmes d exploitation Gestion des processus 15
Le multithreading Fonctionnement des threads Fonctionnement des threads Comportement similaire à celui des processus : création en cascade, états «prêt», «bloqué», «en exécution»... Différences : la terminaison d un père n entraîne pas forcément celle des fils, les threads partagent leur données... Threads noyau : ordonnancés par le système (interruptions), évite le blocage de toute une tâche. Threads utilisateur : ordonnancés par une librairie (pas d appel système), commutation peu coûteuse. Systèmes d exploitation Gestion des processus 16
Le multithreading Les threads de Solaris 2 Les threads de Solaris 2 Tâche 1 Tâche 2 Tâche 3 Tâche 4 Threads utilisateur LWP Threads noyau noyau Proc Proc Proc Proc Systèmes d exploitation Gestion des processus 17