Théorie Système Exploitation CPI 2004 Les Processus Philippe Bancquart EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 1 Plan des systèmes d’exploitation Création et suppression des processus Ordonnancement des processus (scheduling) Mécanisme de synchronisation entre processus Traitement des interblocages. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 2 Processus : Est l'activité résultant de l'exécution d'un programme séquentiel, avec ses données, par un processeur. Un processus Un processus est l'exécution d'un programme à un instant donné. La composition : Programme Instruction langage machine partie fixe Espace adressable Des variables globales Descripteurs de fichiers Gestion de signaux Compteur ordinal Pile En tête : description Données variables, constantes taille variable Pile Varie selon l’imbrication des appels de fonctions EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 3 Programme et Processus Programme Processus Entité purement statique associé à la suite des instructions qui la composent Entité purement dynamique associé à la suite des actions réalisés par un programme EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 4 Sous Processus et threads Chaque thread possède son propre mot d'état, son propre contexte du processeur mais partage le même segment de code et de données que le processus. Comme les threads partagent le même segment de données il faut faire très attention, lorsqu'on les programme, pour éviter tout conflit et incohérence dans leur exécution. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 5 Threads Espaces d’adressage distincts = forte limitation des processus. Exemple Deux du traitement de texte : actions simultanées sur les mêmes données Caractères Ecriture entrés au clavier disque Correcteur de la frappe orthographique activé au fur et à mesure EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 6 Processus ≠ Threads Informations locales à un processus : Espace adressage Variables globales Descripteurs de fichiers Signaux … Informations locales à un thread : PC Registres Pile Etat EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 7 Etats d'un processus En exécution (RUNNING) : signifie que le processus dispose du processeur à cet instant là . Prêt (READY) signifie que le processus est en attente du processeur En attente (SLEEP) signifie en attente de ressources autre que le processeur . C'est le système d'exploitation qui détermine et modifie l'état d'un processus sous l'effet des événements . EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 8 Etats d'un processus EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 9 Structure d'un processus : BCP ou PCB Un processus est représenté par une structure appelé BCP (Block Control Processus) : Etat du processus (prêt, exécution) Un numéro qui le désigne et le distingue des autres processus du système La valeur ou le compteur ordinal qui indique l'adresse de la prochaine instruction exécutée par le processus . Les registres : c'est une structure de données concernant l‘exécution du processus EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 10 Structure d'un processus Les registres et le compteur ordinal est sauvegardé lorsque le processus quitte l'état "En execution" et seront rechargés une fois que le processus revient à son état de "En execution". Le BCP contient également Les informations relatives à la quantité mémoire allouée au processus et les pointeurs vers ces zones mémoires Des informations qualitatives définies par le temps d'unité central utilisé, et le temps restant autorisé Des informations relatives aux opérations d'E/S du processus tel que : Périphériques alloués, opération en attente de complétion, fichiers ouverts, ... Des informations concernant les files d'attente où figure le processus tel que le numéro de priorité, des pointeurs vers des files d'attente, ... EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 11 UC pour plusieurs processus EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 12 Opération sur un processus C'est l'ensemble des opérations qui permettent de créer et de manipuler les processus . L'ensemble de ces opérations comprend 1. Création 2. Destruction 3. Mise en attente / Réveiller 4. Suspendre / Reprendre 5. Changement de priorité EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 13 Création Un processus peut en créer un autre. Le premier est appelé père et le second fils. Le processus peut à son tour créer d'autres processus. Il devient le père de ses processus ... Ainsi on construit un graphe des autres processus ou figure une racine Dans le système Unix de nouveaux processus sont créés par une primitive du système d'exploitation -> fork() La combinaison de fork() et d'exec() permet d'exécuter des processus en parallèles EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 14 Création d’un Processus Création de processus permanents au démarrage du système (démons) email, cron (séquencement de tâches, Unix),… Création d’un processus par un autre processus Hiérarchie de processus = groupe. fork (appel système Unix): processus fils, copie exacte du processus père (même programme, mêmes données, mêmes fichiers, mêmes variables d’environnement…), mais espaces d’adressage différents, en pratique, le processeur fils pointe sur les données du processus père, et la copie d’une adresse n’a lieu qu’en cas d’écriture, puis exécution de l’appel système exec pour charger en mémoire le nouveau programme. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 15 Création d’un Processus Après appel de fork, comment les processus font-ils pour savoir s’ils sont père ou fils ? Chaque processus a un identifiant (PID), fork renvoie 0 au fils, et le PID du fils au père, Le programme du processus père peut alors exploiter cette valeur. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 16 Destruction : Il se termine normalement après l'exécution de la dernière instruction du programme associé . Il peut exécuter une instruction d'auto-destruction Ex : exit(...). Un processus peut-être détruit par un autre processus Ex : kill(...) La relation hiérarchique entre un processus et ses descendants est utilisé essentiellement pour contrôler la destruction des processus. Généralement la destruction d'un processus entraine : 1. La libération des ressources qui lui avait été affecté . 2. Le BCP est effacé . Il disparaît de la table et des files d'attente du système . EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 17 Mettre en attente et réveiller Utilisé lorsqu'un processus a besoin de ressources autre que l'unité centrale (le processeur). Pour poursuivre son exécution il est alors placé par le système dans l'état en attente. Comment un scheduler sait-il qu'un processus demande une ressource ? Lorsque plus tard le système d'exploitation est en mesure de lui affecter la ressource demandée il réveille le processus en attente et le met dans l'état prêt. Cela signifie que le processus dispose maintenant de la totalité des ressources sauf le micro-processeur. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 18 Suspendre / Reprendre Il s'agit d'un retrait temporaire ou passager d'un processus . L'opération emmène un processus d'un état quelconque à l'état suspendu . Lorsque la reprise intervient le processus passe de l'état suspendu vers l'état prêt ou en attente . Les systèmes d'exploitation ne laissent jamais trop longtemps un processus dans l'état suspendu par souci d'équité. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 19 Changement de priorité Il se fait en modifiant l'état du champ correspondant dans le BCP. Cette opération est effectuée par le système d'exploitation. Diagramme d'état EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 20 Ordonnancement et file d'attente Dans un système multi-programmé mono-processeur on définit une procédure système, l'ordonnanceur qui définit l'ordre dans lequel les processus "prêts" accèdent à la ressource UC et la durée pendant laquelle ils l'utilisent. Le terme Ordonnanceur a un sens plus large parce qu'il peut désigner une processus qui demande des ressources telles que : EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 21 Ordonnancement Le Système d'Exploitation doit choisir le processus à exécuter. C’est l’Ordonnanceur (scheduler) qui doit choisir le processus. Il doit faire son choix en fonction de : Equité (assurer que chaque processus reçoit sa part du temps processeur), efficacité (utiliser le temps processeur à 100%), temps de réponse (minimiser le temps de réponse pour les utilisateurs en mode interactif), temps d’exécution (minimiser le temps de réponse pour les qui travaille par lots), rendement (maximiser le nombre de travaux effectués en une heure). EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 22 Tourniquet (round robin) Chaque processus possède un intervalle de temps « quantum » pendant lequel il est autorisé à tourner, ceci régulièrement sauf s’il est en E/S dans ce cas on passe à un autre. La difficulté est de régler le quantum, une table garde les processus prêts, la commutation prend du temps (sauvegarde registre, mappage mémoire, etc). Cette commutation de contexte prend par exemple 5ms, le quantum 20ms, donc 20% du temps est gâché pour la gestion du système (overhead). On peut augmenter le quantum à 500ms, mais dans ce cas si 10 utilisateurs tapent simultanément sur « return » le premier tourne ½ seconde, le 10eme au bout de 5s. Un bon compromis est 200 ms. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 23 quantum EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 24 Priorité Chaque processus possède un niveau de priorité, on lance le processus avec la priorité la plus forte. Mais pour empêcher d’exécuter les processus avec priorités élevées, l’Ordonnanceur diminue à chaque top horloge cette priorité. Sous Unix commande (nice) Gestion dynamique, où la priorité est 1/f , f étant le quantum utilisé lors de la dernière utilisation. Cas où des process font beaucoup d’E/S. Exemple 2ms p=50 , 50msp=2, 100p=1 Généralement les processus sont groupés par classes de priorité. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 25 priorité EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 26 Ordonnancement Ordonnancement du plus court. On donne préférence au processus les plus courts, ceci étant fait par des estimations issues du passé, et des calculs de moyenne pondérée. Ordonnancement garanti Le principe st de donné de façon équitable dans ce cas aux utilisateurs, en fonction du paramètre UC. Dans le cas du temps réel, un processus qui doit se terminer dans les 10S et plus prioritaire que celui dans 10mn. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 27 Exemple d’ordonnancement Dans un système de traitement par lots, les processus sont exécutés l’un à la suite de l’autre selon l’ordre d’arrivée. Dans un système en temps partagé, le processeur est alloué à chaque processus pendant au plus un quantum de temps. Au bout de ce quantum, le processeur est alloué à un autre processus. Un système multiprogrammé gère le partage des ressources (mémoire, processeur, périphériques…) de l’ordinateur entre plusieurs programmes chargés en mémoire. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 28 Critères d’Ordonnancement Utilisation processeur. du processeur: maximiser l’utilisation du Débit des processus: maximiser le nombre de processus qui terminent leur exécution par seconde. Temps total d’exécution d’un processus. Temps d’attente d’un processus (dans la Ready Queue). Délai de réponse (commandes interactives). EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 29 Algorithmes d’Ordonnancement Selon les applications de l’ordinateur, on utilise différents algorithmes: EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 30 First Come, First Served (FCFS) Le processus «choisi» comme actif est celui qui se trouve le plus anciennement dans la liste des processus éligibles Ordonnanceur Simple non préemptif à implémenter Peu performant EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 31 Shortest Job First (SJF) Le processus «choisi» comme actif est celui qui va consommer le moins de temps processeur difficile à prévenir l’avenir Effectuer des estimations à partir du « passé » Ordonnanceur non préemptif Difficile à implémenter Le meilleur ordonnanceur non préemptif EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 32 Priorité Affecter à chaque processus une priorité Priorité fixe : statique Priorité variable : dynamique Affectation de la priorité : Décidé par l’administrateur En fonction des ressources demandés par le processus Préemptif/Non préemptif EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 33 Round-Robin Une période de temps (quantum) processeur est allouée à chaque processus Allocation cyclique Partage de temps (time sharing) Le quantum de temps Fixé par l’administrateur Peut varier selon la priorité du processus EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 34 Algorithmes d’ordonnancement EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 35 Systèmes préemptifs Dans les systèmes d'exploitation préemptifs, l'ordonnanceur a la possibilité d'interrompre de luimême le processus en cours d'exécution (sur déclenchement d'une interruption horloge) pour attribuer le processeur à un autre processus, alors que dans les systèmes d'exploitation non préemptifs, c'est au processus courant de rendre la main à l'ordonnanceur. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 36 Ordonnancement peut être Non préemptif : un processus s ’exécute jusqu ’à ce qu ’il se termine ou se bloque en attente d ’un évenement extérieur Préemptif : un processus peut être interrompu à tout moment de son éxécution pour laisser le cpu à un autre. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 37 Processus Windows Processus Windows - Introduction Windows est architecturé en services (processus) fonctionnant en arrière-plan. Il est possible d'afficher la liste des processus en cours dans le gestionnaire des tâches en appuyant simultanément sur «CTRL+ALT+Suppr», puis en cliquant sur l'onglet Processus. l'appelant dans le menu démarrer / exécuter avec la commande taskmgr.exe. La fenêtre affiche alors la liste des processus en cours d'exécution et les ressources qui leur sont alloués. La présence de vers, virus, et chevaux de Troie sur le système est généralement trahie par la présence de processus suspects. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 38 Le gestionnaire des tâches • Applications: permet de voir les applications en cours de fonctionnement et d'agir sur ces dernières en activant le menu contextuel avec le bouton droit. Processus :permet de voir la liste des processus en cours d'exécution et de donner des informations relatives àleur fonctionnement Performances: donne des représentations graphiques de l'utilisation du processeur et du fichier d'échange Mise en réseau: donne des statistiques d'utilisation de la bande passante sur les interfaces réseaux de l'ordinateur Utilisateurs :affiche des informations sur les utilisateurs ayant accès à l'ordinateur et le statut des sessions. EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 39 Gestionnaire des tâches :Applications Applications: Basculer Il est alors possible de: vers la tâche Mettre fin à la tâche Réduire la fenêtre de la tâche Agrandir Mettre la fenêtre de la tâche la tâche au premier plan Afficher le processus correspondant à la tâche EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 40 Gestionnaire des tâches :Processus Par défaut le gestionnaire des tâches affiche les informations suivantes: Nom de l'image (nom de l'exécutable) Nom de l'utilisateur Processeur Util. Mémoire Il est possible d'afficher d'autres indicateurs, parmi les 25 indicateurs disponibles, en allant dans «Affichage / Sélectionner les colonnes» EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/2005 - page 41