<!-- Slide number: 1 --> # Cours Systèmes d’exploitation:Gestion des Processus Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 1
Notes:
<!-- Slide number: 2 --> # 1- Processus Un processus est un ensemble d'octets (en langage machine) en cours d'exécution C'est l'exécution d'un programme par le système. le processus est le concept de base de tout système d’exploitation. Un processus est une entité dynamique correspondant à l’exécution d’une suite d’instructions : un programme qui s'exécute, ainsi que ses données, sa pile d’exécution, son compteur ordinal, son pointeur de pile et les autres contenus de registres nécessaires à son exécution. Remarque: à ne pas confondre un processus (aspect dynamique, exécution qui peut être suspendue, puis reprise), avec un programme exécutable (aspect statique: fichier sur disque).
Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 2
<!-- Slide number: 3 --> # 2- Multiprogrammation Un système d'exploitation doit en général exécuter plusieurs programmes en même temps. Comme il n'a (la plupart du temps) qu'un processeur, il résout ce problème grâce à un pseudo parallélisme: Il traite une tâche à la fois, s'interrompt et passe à la suivante. La commutation de tâches étant très rapide, elle donne l'illusion d'effectuer un traitement simultané. La multiprogrammation se base sur le basculement de la CPU entre plusieurs processus qui s’exécutent pendant des périodes de temps très réduites.
Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 3
Notes:
<!-- Slide number: 4 --> 3- Généalogies des processus:
- Un processus est généralement créés par un autre processus. Il peut lui même lancer ensuite d'autres processus. - Le processus créateur est appelé «père », et les processus créés «fils ». Les processus peuvent donc se structurer sous la forme d'une arborescence. P1 P4 P2 P3 P5 P6 Au lancement du système, il n'existe qu'un seul processus, appelé processus « init », qui est l'ancêtre de tous les autres. C’est le seul processus sans père au moment de sa création.
Eléments de TP: Commandes ps: liste de processus Commande pstree: arborescence des processus
Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 4
<!-- Slide number: 5 --> 4- Espace mémoire d’un processus Les processus sont composés d'un espace de travail (espace d'adressage) en mémoire formé de 3 segments et accessible par les programmes utilisateur :
 Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 5
<!-- Slide number: 6 -->
 Un processus est donc un «programme» qui s'exécute et qui possède : - son propre compteur ordinal (@ de la prochaine instruction exécutable), ses registres ses variables. Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 6
<!-- Slide number: 7 --> Le noyau maintient une table en mémoire, appelée « table des processus », pour gérer l'ensemble des processus (ici P1, ..., P5, ...). Elle contient la liste de tous les processus avec des informations concernant chacun d’entre eux. - Le nombre des emplacements dans cette table des processus est limité pour chaque système et pour chaque utilisateur
 Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 7
<!-- Slide number: 8 --> 5- Contexte d’un processus Le contexte d’un processus est l’ensemble des données qui permettent de reprendre l’exécution d’un processus qui a été interrompu. Le contexte d’un processus comporte: 1. son état 2. son mot d’état (PSW) : comprend - La valeur des registres actifs - Le compteur ordinal 3. les valeurs des variables globales statiques ou dynamiques 4. son entrée dans la table des processus 5. sa zone u 6. Les piles user et system 7. les zones de code et de données. Le noyau et ses variables ne font partie du contexte d’aucun processus! L’exécution d’un processus se fait dans son contexte. Quand il y a changement de processus courant, il y a réalisation d’une commutation de mot d’état et d’un changement de contexte. Le noyau s’exécute alors dans le nouveau contexte. Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 8
<!-- Slide number: 9 --> 6- Commutation de mot d’état et interruptions - Ce sont des fonction fondamentales (de très bas niveau) pour un système d’exploitation. - Pour être exécuté et donner naissance à un processus, un programme et ses données doivent être chargés en mémoire centrale. Les instructions du programme sont transférées une à une de la mémoire centrale sur l’unité centrale ou elles sont exécutées. - L’unité centrale comprend des circuits logiques et arithmétiques (qui efféctuent les instructions) et des mémoires appelées registres tels que: * L’accumulateur: reçoit le résultat d’une instruction * le registre d’instruction: contient l’instruction en cours *le compteur ordinal: adresse de la prochaine instruction en mémoire à exécuter * le registre d’adresse * les registres de données: utilisés pour lire ou écrire une donnée à une adresse spécifiée en mémoire. * les registres d’´etat du processeur: actif, mode (user/system), retenue, vecteur d’interruptions, ..) * les registres d’´etat du processus :droits, adresses, priorités, .. Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 9
<!-- Slide number: 10 --> 6- Commutation de mot d’état et interruptions (suite) Ces registres forment le contexte d’unité centrale d’un processus. A tout moment, un processus est caractérisé par ces deux contextes : - le contexte d’unité centrale qui est composé des mêmes données pour tous les processus -le contexte qui dépend du code du programme exécuté. Pour pouvoir exécuter un nouveau processus, le système doit sauvegarder le contexte d’unité centrale du processus courant (mot d’´etat), puis charger le nouveau mot d’´etat du processus à exécuter: cette opération est appelée commutation de mot d’´etat. Elle utilise 2 adresses qui sont respectivement : - l’adresse de sauvegarde du mot d’´etat - l’adresse de lecture du nouveau mot d’´etat Le processus interrompu pourra ainsi reprendre exactement ou il avait abandonné. Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 10
<!-- Slide number: 11 --> 7- interruptions Une interruption est une commutation de mot d’´etat (de contexte) provoquée par un signal produit par le matériel. Ce signal étant la conséquence d’un événement extérieur ou intérieur, il modifie l’´etat d’un indicateur qui est régulièrement testé par l’unité centrale. Une fois que le signal est détecté, il faut déterminer la cause de l’interruption. Pour cela on utilise un indicateur, pour les différentes causes, on parle alors du vecteur d’interruptions. On distingue trois grands types d’interruptions : - externes (indépendantes du processus) interventions de l’opérateur, pannes, .. - déroutements: erreur interne dans l’exécution du processus courant (débordement de mémoire ,division par zéro,..) - appels systèmes: demande d’entrée-sortie par exemple. Généralement un numéro de priorité est affecté à un niveau d'interruption pour déterminer l'ordre de traitement lorsque plusieurs interruptions sont positionnées. L’horloge est l’interruption la plus prioritaire sur un syst`eme Unix. Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 11
Publicité
<!-- Slide number: 12 --> # 8-Processus et SE ● Plusieurs processus indépendants doivent pouvoir s'exécuter sans interférence -partage des ressources : processeur, mémoire, stockage... -isolation des processus (sécurité, fiabilité) ● l'inverse, les processus doivent pouvoir communiquer si leur programme le demande -mécanismes de Communication Inter-Processus: (IPC) Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 12
<!-- Slide number: 13 --> # 9-Informations sur les processus :gestionnaire de tâches Windows
 Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 13
<!-- Slide number: 14 --> # 9-Informations sur les processus :gestionnaire de tâches Linux
 Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 14
<!-- Slide number: 15 --> # 10- Bloc de contrôle processus PCB :Process Control Block ● Structure de données du SE contenant les informations sur un processus ● Ces informations sont dans une zone mémoire accessible uniquement par le noyau ● Pour obtenir des informations sur les processus, il est donc nécessaire de passer par des appels systèmes: getpid, getppid, getuid, geteuid, setuid... Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 15
<!-- Slide number: 16 --> # 11-Informations du PCB 1- Identité ●Identificateur de processus (PID): numéro unique (à un instant donné, mais réutilisable) ●Informations de généalogie: processus parent (PPID), éventuellement processus enfants ●Information de droits: -utilisateur propriétaire du processus -utilisateur effectif (augmentation ou diminution de droits), exemples : - droits d'administration « locale » - serveurs lancés par l'administrateur - serveur d'application Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 16
<!-- Slide number: 17 --> # 11-Informations du PCB 2- Exécution ●Etat du processus ●Contexte processeur: état des registres du processeur pour ce processus ●Autres informations d'ordonnancement exemple : priorité 3- Ressources ● Informations sur la mémoire utilisée / utilisable: tables de pages (cf. cours gestion de la mémoire) ● Informations sur le temps passé: temps réel (d’exécution), temps utilisateur ● Liste des fichiers ouverts: fichiers classiques, périphériques, moyens de communication avec d'autres processus (pipe...) ● Autres ressources utilisées...
Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 17
<!-- Slide number: 18 --> # 12-Exemple simplifié d’un processus
 Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 18
<!-- Slide number: 19 --> # 12-Exemple simplifié d’un processus (suite) Ce processus a le numéro 36. Il a été lancé par l'utilisateur qui a 106 pour UID. Il est en train d'exécuter le programme 'cmd1'. Il a consommé 0.3 seconde, avec une priorité de 20. Son masque de création de fichier est 027. Son terminal de contrôle est /dev/term/c4. Son répertoire courant est /usr/c1.
 0 :entrée standard 1 :sortie standard 2 :sortie standard d'erreur. Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 19
<!-- Slide number: 20 --> # 13-Etats d’un processus - Selon les systèmes, le nombre et le nom des états peut varier. Tous les systèmes comportent au minimum les trois états suivants : Élu ou Actif : - Le processus est en cours d’exécution par le processeur. -Si le processus épuise le temps qui lui est alloué par le SE, il est remis en file d’attente des prêts. -S’il a besoin d’une ressource non disponible (opérations sur les périphériques), il est mis en attente prolongée (Interruption : état bloqué) jusqu’à la libération de la ressource nécessaire. Eligible ou prêt: en attente de pouvoir s'exécuter sur le processeur (il passera alors à l’état Actif). Bloqué ou en attente: en attente d'un événement (interruption ou ressource). Dès sa libération il repasse à l’état Prêt Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 20
<!-- Slide number: 21 --> # 13-Etats d’un processus: transitions
 Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 21
<!-- Slide number: 22 --> 14- Création des processus La création d’un processus peut se faire suite à: L’initialisation du système : au chargement du système il y’a création automatique du processus racine père de tous les processus utilisateurs (id=0) Un processus peut lancer un autre processus, il en devient le parent, l’autre sera désigné comme processus fils. (Un processus père ne se termine que lorsque tous ses fils sont terminés). Une requête de l’utilisateur (commande par exemple) Initiation d’un travail en traitement par lot La destruction d’un processus (et la libération de toutes ses ressources allouées a quatre causes possibles : -Arrêt normal : volontaire, lorsque le processus termine sa tâche. -Arrêt pour erreur : volontaire suite à une erreur pour une instruction illégale -Arrêt pour erreur fatale : involontaire tel que les mauvais paramètres de l’exécution du processus - Arrêt volontaire par un autre processus Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 22
<!-- Slide number: 23 --> # 14- Création des processus: sous Windows ●Appel système CreateProcess : crée un processus dont les caractéristiques sont données en paramètres de l'appel système (10 paramètres) ● Exemple : STARTUPINFO si; // à renseigner PROCESS_INFORMATION pi; // utilisé en sortie bool succes = CreateProcess(0, "mon_prog.exe", 0, 0, FALSE, 0, 0, 0, &si, &pi); Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 23
<!-- Slide number: 24 --> # 14- Création des processus: sous Unix ● Appel système fork() : - duplique le processus courant avec toutes ses informations: copie de la zone mémoire du père (seul le PID et le PPID changent). A la création les 2 processus s’exécutent parallèlement, on ne connait pas lequel des processus continuera à s’exécuter avant l’autre. - retourne une valeur différente dans le processus père et le processus fils pour faire la distinction (0 dans le fils et le PID du fils dans le père) ● Exemple : int pid_fils = fork(); if (pid_fils == 0) // il s’agit du fils….. else // il s’agit du père…… Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 24
<!-- Slide number: 25 --> # 14- Création des processus: sous Unix (suite) ● Si on souhaite que le fils exécute un autre programme que le père, on utilise un appel système de type exec qui remplace le programme courant par un autre programme ● Exemple : int pid_fils = fork(); if (pid_fils == 0) exec("chemin d’un autre programme"); Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 25
<!-- Slide number: 26 --> # 15- Ordonnancement des processus
Publicité
Mémoire centrale
CPU Chargement
En M.C Exécution
Selon un ordre bien déterminé P1 ; P2 ; ……… ; Pn
Rôle de l'ordonnanceur : choisir, parmi tous les processus éligibles, lequel va devenir élu (utiliser la CPU pour s’exécuter). Stratégies / politiques d'ordonnancement: Algorithmes d’ordonnancement. Objectifs: - une bonne gestion du processeur (taux d'utilisation élevé de l'UC). - Augmenter le nombre de processus exécuté pendant une période - Minimiser le temps moyen d’exécution d’un processus - Minimiser le temps d’attente d’un processus (satisfaction des utilisateurs). - Minimiser les temps d’inactivité d’un processeur.
Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 26
<!-- Slide number: 27 --> # 16- Algorithmes d’ordonnancement Performance s des algorithmes d’ordonnancement:
Temps de rotation d’un processus = date de fin d’exécution - date d’arrivée
Temps de rotation moyen = ∑ Temps de rotation /nombre de processus
Temps d’attente d’un processus = temps de rotation - durée d’exécution
Temps moyen d’attente = ∑ temps d’attente / nombre de processus
Rendement = durée totale d’exécution /nombre de processus
Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 27
<!-- Slide number: 28 --> # 16- Algorithmes d’ordonnancement 1- Algorithme du premier venu premier servi (first come first serve : FCFS) : ● géré par une file d’attente FIFO (first in first out) ● Ordonnancement nom préemptif (pas de préemption) ● Quand l’unité centrale est libre, elle est allouée au processus en tête de la file d’attente des processus « prêt ». Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 28
<!-- Slide number: 29 --> # 16- Algorithmes d’ordonnancement Exemple:
*Ordre d’exécution : P1 ; P2 ; P3. 0 25 28 39 -Temps d’attente:
Temps d’attente moyen = (25 + 28) / 3 = 17,66.
*Ordre d’exécution : P2 ; P3 ; P1. -Temps d’attente:
Temps d’attente moyen = (14 + 3) / 3 = 5,66.
| Processus | Temps CPU | | --- | --- | | P1 | 25 | | P2 | 3 | | P3 | 11 | | P1 | P2 | P3 | | --- | --- | --- | | P1 | P2 | P3 | | --- | --- | --- | | 0 | 25 | 28 | | P1 | P2 | P3 | | --- | --- | --- | | 14 | 0 | 3 | Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 29
<!-- Slide number: 30 --> # 16- Algorithmes d’ordonnancement l’algorithme FCFS n’est généralement pas optimal. Il dépend de l’ordre de l’arrivée du processus, ainsi que le temps d’exécution. Cet algorithme est particulièrement incommode pour les systèmes à temps partagés. ● Avantages : - simple, surcoût faible, équitable - assez efficace en multi-processeurs, pour des processus très fréquemment bloqués(gestions E/S) ● Inconvénient : - temps de réponse dépend du processus qui a la main: tant qu'il ne se bloque pas, les autres doivent attendre - pénalise les processus courts: proportion temps d'attente / temps d'exécution
Publicité
Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 30
<!-- Slide number: 31 --> 16- Algorithmes d’ordonnancement 2- Algorithme du travail le plus court d’abord ou SJF (Shortest Job First) : ● Ordonnancement nom préemptif (pas de préemption) ● On donne toujours la main à celui qui met le moins de temps avant de se bloquer / terminer. ● Suppose d'avoir une connaissance / estimation de ce temps pour chaque processus :hypothèse forte(cas du travail par lot) ● En cas d’égalité, l’ordonnancement FCFS est utilisé. Exemple:
Donner un schéma illustrant l’exécution de ces processus.
| Processus | Temps d’arrivée | Temps CPU | | --- | --- | --- | | P1 | 0 | 5 | | P2 | 2 | 2 | | P3 | 4 | 1 | Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 31
<!-- Slide number: 32 --> # 16- Algorithmes d’ordonnancement 3- Algorithme du temps restant le plus court SRT (Shortest Remaining Time): ● version préemptive de l’algorithme SJF. ● L’ordonnanceur compare la valeur estimée du temps de traitement restant du processus en cours avec le temps d’exécution d’un nouveau processus qui vient d’arriver. Si le temps de traitement du nouveau processus est inférieur, le processus en cours est préempté c'est-à-dire interrompu pour que le nouveau processus prenne sa place. Exemple:
Donner un schéma illustrant l’exécution de ces processus.
| Processus | Temps d’arrivée | Temps CPU | | --- | --- | --- | | P1 | 0 | 5 | | P2 | 1 | 3 | | P3 | 2 | 1 | Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 32
<!-- Slide number: 33 --> # 16- Algorithmes d’ordonnancement 4- Algorithme du Tourniquet (Round Robin : RR) : ● FCFS avec préemption ● Chaque processus reçoit un quantum de temps ● Une fois le quantum épuisé, le processus passe la main et retourne dans la file d'attente .
Terminaison de l’exécution <= 1 quantum Processeur | P1 | P2 | P3 | … | …. | Pn | | --- | --- | --- | --- | --- | --- |
Partitionnement du temps du cycle en quantas
> 1 quantum Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 33
<!-- Slide number: 34 --> # 16- Algorithmes d’ordonnancement 4- Algorithme du Tourniquet (Round Robin : RR) : Exemple
* qantum = 2 unités commutation de contexte 0 2 4 6 8 9 Le processeur effectue une commutation de contexte uniquement lorsqu’il atteint la fin du quantum, et que le processus ne s’est pas terminé. * Temps d’attente de P1 : 0 * Temps d’attente de P2 : 1.97 + 2 = 3.97 (lorsque P3 est en exécution, P2 est en attente). * Temps d’attente de P3 : 3.96 + 2 = 5.96 Temps d’attente moyen : 9.93/3 = 3.31 unités * Si le temps CPU de P1 = 5 …? | Processus | Temps d’arrivée | Temps CPU | | --- | --- | --- | | P1 | 0 | 2 | | P2 | 1 | 4 | | P3 | 3 | 3 | | P1 | P2 | P3 | P2 | P3 | | --- | --- | --- | --- | --- | Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 34
<!-- Slide number: 35 --> # 16- Algorithmes d’ordonnancement 5- Algorithme avec priorité: Chaque processus est muni d’une priorité. Le processus le plus prioritaire va s’exécuter en premier lieu. Généralement, on considère toujours la priorité avec préemption Généralement, la priorité est croissante (processus à priorité élevée plus prioritaire) Exemple:
Priorité avec préemption : Priorité sans préemption :
| Processus | Temps d’arrivée | Temps CPU | Priorité | | --- | --- | --- | --- | | P1 | 0 | 6 | 3 | | P2 | 1 | 5 | 4 | | P3 | 4 | 3 | 2 | | P4 | 4 | 4 | 5 | Licence appliquée en TI- Cours Systèmes d'exploitation Beyaoui Walid 35