Gestion des Tâches Les Processus
Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties entre la mémoire centrale et les différents ports) Organisation du parallélisme de l’exécution des taches présentes en mémoire
Multitâche Un système d’exploitation est dit multitâche s’il permet d’exécuter de façon apparemment simultanée, plusieurs programmes sur un ordinateur. La simultanéité apparente est le résultat de l’alternance rapide d’exécution des processus présents en mémoire. Le passage de l’exécution d’un processus à un autre est appelé commutation de contexte.
Processus Ensemble d’instructions à exécuter (programme) Un espace de mémoire pour les données du travail Descripteurs de fichiers, des ports réseau, etc. Le système d’exploitation est chargé D’allouer les ressources nécessaires aux processus Mémoires, temps processeur, entrées/sorties D’assurer que le fonctionnement d’un processus n’interfère pas avec celui des autres (isolation) De fournir une interface de programmation (API) pour permettre la communication interprocessus (IPC)
API Une interface de programmation est un ensemble de fonctions, procédures ou classes mises à disposition des programmes informatiques par une bibliothèque logicielle, un système d’exploitation ou un service. La connaissance des API est indispensable à l’interopérabilité entre les composants logiciels.
Diagramme d’état d’un processus Les états Endormi Eligible (prêt) Elu (en cours d’exécution) Bloqué priorité Temps alloué Attente de ressource Volontairement arrêté Zombie Terminé mais les constantes d’environnement conservées
Processus Lors de sa création un processus reçoit un numéro qui l’identifie et qui est attribué en ordre croissant au fur et à mesure des créations. Il possède un propriétaire, ce qui permet de vérifier la légitimité des opérations qu’ils effectuent. Dans sa zone mémoire on range: L’adresse de la zone de sauvegarde du mot d’état du processeur L’adresse de la zone de sauvegarde des registres du processeur L’état du processus: bloqué, actif… La priorité du processus Les droits du processus Les liens de chainage dans la hiérarchie des processus.
Processus Un processus est endormi lorsqu’il attend une ressource indisponible ou si une interruption est en cours de traitement. (par exemple il nécessite le traitement d’un ordre de lecture et le chargement des données dans la mémoire depuis un disque). Lorsqu’il a terminé son existence un processus est effacé en passant par un état intermédiaire appelé zombie. Les tampons utilisés par les entrées-sorties sont vidés et les fichiers ouverts sont désalloués. Dans un système a mémoire virtuelle toute ou partie de la zone mémoire occupée par un processeur peut être récupéré au profit d’un autre processus. Dans ce cas il est recopié sur disque dans un fichier spécial appelé swap ou fichier d’échange.
Processus Comme dans tout système temps partagé la priorité d’un processus utilisateur varie au cours du temps: plus il utilise le processeur, plus celle-ci diminue. On distingue deux classes de processus: Ceux qui appartiennent a un usager qui communique conventionnellement avec le système au moyen du clavier et de l’écran Les daemons qui ne sont pas reliés a ces unités conventionnelles et ne communiquent qu'au travers de fichiers. De nombreux processus du système d’exploitation sont des daemons.
Commutation de contexte Une commutation de contexte consiste à sauvegarder l’état d’un processus ou d’un processus léger et à restaurer l’état d’un autre processus (léger) pour que des processus multiples puisses partager les ressources d’un seul processeur dans le cadre d’un système d’exploitation multitâche. Pour commuter l’utilisation d’un processus P1 vers le processus P2, il faut Sauvegarder le contexte du processus P1 en mémoire (pile P1) Retrouver le contexte du processus P2 en mémoire (pile P2) Restaurer le contexte de P2 dans le processeur en reprenant l’exécution de P2 a son point de dernière exécution.
Processus léger Un processus léger (en Anglais: thread) est similaire à un processus, car tous les deux représentent l’exécution d’un ensemble d’instructions du langage machine d’un processeur. Les processus possèdent leur propre mémoire virtuelle, les processus légers appartenant au même processus père se partagent sa mémoire virtuelle. Tous les processus légers possèdent leur propre pile système (structure de données basée sur le principe « dernier arrivé, premier sorti »).
Ordonnanceur L’ordonnanceur est le composant du noyau du système d’exploitation qui choisit les processus qui vont être exécutés par le processeur d’un ordinateur. Il gère l’attribution à tout programme en mémoire, et à un instant t, la ressource CPU. Tranches de temps Priorité d’exécution Prise en compte de l’arrêt d’exécution par attente des ressources externes
Ordonnanceur En Anglais Scheduler Une file d’attente est structurée, se trouve dans un espace réservé dans la mémoire Chaque élément a deux pointeurs, un l’élément rangé devant, et l’autre sur celui qui est derrière
Le multitâche nécessite Le découpage des programmes en tâches. Une tâche est une suite d’instructions d’un programme ne provoquant aucune attente du CPU. La gestion des tâches susceptibles d’être exécutes à l’instant t Dans une arborescence ayant pour origine le processus initial (Init), les PID sont enchainés entre eux. C’est la liste des processeurs actifs a l’instant t. La gestion des priorités d’exécution entre tâches L’ordonnanceur gère les priorités des tâches et des paramètres essentiels permettant aux tâches remises en mémoire de redémarrer au bon endroit. La gestion de la présence en mémoire de plusieurs tâches correspondant à plusieurs programmes, l’indépendance de ces tâches entre elles
Le multitâche La gestion de l’optimisation de l’utilisation de la mémoire centrale Une tache activée peut avoir besoin de plus de mémoire centrale. Le système met sur disque l’image exacte des tâches en attente avec leur contexte d’usage. C’est le swapping. La création d’un système de communication entre les processus Tout processus (à part le processus initial) est créé par un processus parent. Ces processus communiquent entre eux par des signaux. Chaque signal est repéré dans son environnement par son rang dans son espace mémoire et par la valeur de cet espace mémoire. (Lorsque le processus fils se termine normalement, il envoie le signal: Sigterm avec 15 pour valeur, décrivant son arrêt normal au processus parent) La gestion de la fin des processus
Gestionnaire de Tâches Windows CTRL+ALT+SUPPR L’onglet Processus Taskmgr.exe Applications Mettre fin à la tâche Processus En cours d’exécution Performances Graphiques de l’utilisation du processeur et de la mémoire Mise en réseau Statistiques de l’utilisation de la bande passante Utilisateurs Statut des sessions