Systèmes d’Exploitation I Chapitre II : La gestion des processus Amine DHRAIEF

Systèmes d’Exploitation I Chapitre II : La gestion des processus Amine DHRAIEF 1ère année Licence LFIG ESEN, Université De La Manouba Définition source#1 : Dictionnaire Larousse ●Processus nom masculin , latin processus, de procedere, progresser – Enchaînement ordonné de faits ou de phénomènes, répondant à un certain schéma et aboutissant à quelque chose : Le processus d'une crise. – Suite continue d'opérations, d'actions constituant la manière de faire, de fabriquer quelque chose : Les processus de fabrication doivent être revus. Définition source#2 : ISO 9000 ●Processus : ensemble d'activités corrélées ou interactives qui transforme des éléments d'entrée en éléments de sortie. Définition source#3 : Dictionnaire de l'informatique de Pierre Yves Morvan ●Processus : – Suite d'actions élémentaires dont le résultat est équivalent à l'action principale dont elles sont la décomposition. – La notion de processus permet de décrire le comportement d'un système d'exploitation Définition source#4 : Définition source#5 : wikipedia ●Un processus est un programme en cours d'exécution par un ordinateur. De façon plus précise, il peut être défini comme : – Un ensemble d'instructions à exécuter, pouvant être dans la mémoire morte, mais le plus souvent chargé depuis la mémoire de masse vers la mémoire vive ; – un espace d'adressage en mémoire vive pour stocker la pile, les données de travail, etc. ; – des ressources telles que les ports réseau. Chaîne de production d’un programme exécutable La chaîne de production est l'ensemble des opérations de fabrication nécessaires, à la réalisation d'un produit manufacturé, des matières premières jusqu'à la mise sur le marché Chaîne de production d’un programme exécutable Chaîne de production Programme écrit dans un langage de haut niveau Programme dit exécutable, écrit en langage machine Chaîne de production d’un programme exécutable (1) Éditeur de texte (2) Compilateur : $gcc -c monprog.c (3) Éditeur de lien $gcc monprog.o -o monprog (4) Chargeur Source : monprog.c objet: monprog.o Bibliothèque Ficher exécutable sur le disque : monprog monprog : Exécutable en mémoire processus Chaîne de production d’un programme exécutable ●(1) Le programme est saisie à l'aide de l'éditeur de texte → création un fichier sur le disque que l'on appelle le fichier source (monprog.c). ●(2) le fichier source (monprog.c) est ensuite compilé à l'aide d'un compilateur (gcc) dépendant du langage de programmation utilisé . – Le compilateur vérifie que la syntaxe du langage est respectée – Le compilateur génère ensuite l'équivalent du programme source en langage machine – On obtient le fichier objet (monprog.o) ●(3) le fichier objet est ensuite soumis à l'éditeur de liens (ld invoqué via gcc -o) dont le rôle est de résoudre les références externes, c'est-à-dire par exemple, d'associer les appels système inclus dans le programme à leur adresse dans le système. – L'éditeur de liens produit sur disque le fichier exécutable (monprog) ●(4) Lorsque l'utilisateur demande l'exécution de son programme, le fichier exécutable est alors monté en mémoire centrale : c'est l'étape de chargement. Le système alloue de la place mémoire pour placer le code et les données du programme. 05/02/18 OS I 11 Du monotâche vers le multitâche ●Les premiers OS autorisaient un seul programme à être exécuter à la fois. – Un tel programme avait un contrôle complet du système et un accès à toutes les ressources du système ●Les OS actuels permettent à plusieurs programmes d'être charger en mémoire et exécuter en même temps. – Cette évolution a nécessité un contrôle plus strict et un cloisonnement plus rigoureux des différents programmes. 05/02/18 OS I 12 Du monotâche vers le multitâche ●Ces besoins ont conduit à la création de la notion de processus, qui est « un programme en exécution ». – Un processus est l'unité fondamental dans le cadre d’un OS moderne temps partagé. ●Un système se compose d'un ensemble de processus: – les processus du OS exécutent le code du OS – et des processus utilisateurs exécutent le code de l'utilisateur. ●Tous ces processus s'exécutent en même temps. → En commutant le processeur entre les processus, le système d‘exploitation peut rendre l'ordinateur plus productif. 05/02/18 OS I 13 Définition d’un processus ●Un processus est souvent définit comme étant un programme en exécution. – Un processus est plus que le code du programme (text section) ●Un processus inclus une représentation de l'activité en cours du programme : – Le contenu des registres du processeur tel qur le program counter (PC) (un registre qui contient l’adresse mémoire de l’instruction en cours/prochaine selon les architectures des CPUs) – une pile d’exécution qui contient des données provisoires (tels que la fonction, les paramètres, des adresses de retour, et les variables locales), – une section de données (data section), qui contient les variables globales. – un tas (heap) qui est un mémoire allouée dynamiquement lors de l'exécution processus. 05/02/18 OS I 14 Définition d’un processus ●Un processus est un programme en cours d'exécution auquel est associé : (i) un environnement processeur (les registres, compteurs,...)) et (ii) un environnement mémoire appelés contexte du processus. ●Un processus est l'instance dynamique d'un programme et incarne le fil d'exécution de celui-ci dans un espace d'adressage protégé 05/02/18 OS I 15 Définition d’un processus (1) Programme en cours d’exécution (2) Environnement CPU (3) Environnement Mémoire PROCESSUS 05/02/18 OS I 16 Programme vs. Processus ●Le programme n'est pas en soi un processus ! – un programme est une entité passive, comme un fichier contenant une liste d'instructions – alors qu'un processus est une entité active avec un ensemble de ressources associées. → Un programme devient un processus lorsqu'un fichier exécutable est chargé en mémoire. ●Même si deux processus peuvent être associés à un même programme, ils sont néanmoins considérés comme deux séquences d'exécution séparées. – Chacune d'elles est un processus distinct, et bien que les sections de texte sont équivalentes, les data section, la pile, le tas sont différents. 05/02/18 OS I 17 Les états d’un processus ●Lors de son exécution, un processus est caractérisé par un état ●Lorsque le processus obtient le processeur et s'exécute, il est dans l'état élu. – L'état élu est l'état d'exécution du processus. ÉLU PRÊT BLOQUÉ Élection Blocage Déblocage Mort Naissance En attente du processeur En exécution En attente des ressources 05/02/18 OS I 18 Les états d’un processus ●lors de cette exécution, le processus peut demander à accéder à une ressource qui n'est pas immédiatement disponible – le processus ne peut pas poursuivre son exécution tant qu'il n'a pas obtenu la ressource ●le processus quitte alors le processeur et passe dans l'état bloqué. – L'état bloqué est l'état d'attente d'une ressource autre que le processeur. ÉLU PRÊT BLOQUÉ Élection Blocage Déblocage Mort Naissance En attente du processeur En exécution En attente des ressources 05/02/18 OS I 19 Les états d’un processus ●Lorsque le processus a enfin obtenu la ressource qu'il attendait, celui-ci peut potentiellement reprendre son exécution. ●Or, lorsque le processus est passé dans l'état bloqué, le processeur a été alloué à un autre processus. – Le processeur n'est donc pas forcément libre. ●Le processus passe alors dans l'état Prêt. – L'état Prêt est l'état d'attente du processeur. ÉLU PRÊT BLOQUÉ Élection Blocage Déblocage Mort Naissance En attente du processeur En exécution En attente des ressources 05/02/18 OS I 20 Process Control Block (PCB) ●Chaque processus est représenté dans le système d'exploitation par un bloc de contrôle de processus (Process Control Block - PCB) appelé aussi un task-control block ●Le système d’exploitation maintient dans une table appelée «table des processus» – les informations sur tous les processus créés (une entrée par processus : PCB). 05/02/18 OS I 21 Process Control Block (PCB) ●Le bloc de contrôle d'un processus (PCB) contient les informations suivantes : – un identificateur unique du processus (un ‘entier’) : le PID (process identifier) – l'état courant du processus (élu, prêt, bloqué) – le contexte processeur du processus : la valeur du CO, la valeur des autres registres du processeur – le contexte mémoire : ce sont des informations mémoire qui permettent de trouver le code et les données du processus en mémoire centrale – des informations diverses de comptabilisation pour les statistiques sur les performances système – des informations liées à l' ordonnancement du processus. Le PCB permet la sauvegarde et la restauration du contexte mémoire et du contexte processeur lors des opérations de commutations de contexte . 05/02/18 OS I 22 Process Control Block (PCB) 05/02/18 OS I 23 Commutation de contextes de processus 05/02/18 OS I 24 La mémoire associée à un processus Allocation de la mémoire ●Au cours de son exécution, un processus alloue de la mémoire. Il existe trois types d’allocations : 1)allocation statique 2)allocation sur la pile (« stack allocation ») 3)allocation sur le tas (« heap allocation ») 05/02/18 OS I 25 La mémoire associée à un processus Allocation de la mémoire ●Rappel : variable statique – Les variables statiques sont allouées au début de l'exécution du programme, et ne sont libérées qu'à la fin de l'exécution du programme. – Permet de donner une variable locale une durée de vie égale à celle du processus 05/02/18 OS I 26 La mémoire associée à un uploads/Industriel/ systemes-d-x27-exploitation-i-chapitre-ii-la-gestion-des-processus.pdf

  • 27
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager