Gestion de Processus Chapitre 4 http://w3.uqo.ca/luigi/

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
Module 5 : Implémentation de l'impression
Le Concept du programme enregistré
Synchronisation des processus père - fils
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
GEF 435 Principes des systèmes d’exploitations
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 435 Principes des systèmes dexploitation Concepts des Systèmes dexploitation (Tanenbaum 1.5)
auxiliaires ou mémoires de masse ou alors secondaire).
Exécutif Temps réel. Limitation des système classiques Rappels Mise en œuvre lourde des communications entre processus Problème de prédictibilité avec.
Le Concept du programme enregistré
Mémoire & Processus Cours SE - SRC
Assistance à distance Parfois on se sent bien seul face à un problème informatique surtout si on n’est qu’un simple utilisateur. Lorsqu'un problème survient.
Module 1 : Préparation de l'administration d'un serveur
Parcours de formation SIN-7
Synchronisation et communication entre processus
Chapitre 2 Système d’Exploitation Gestion des Processus
1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.
Système d’exploitation
Bienvenue! INF3723: Systèmes d’exploitation Luigi Logrippo
Allocation de mémoire Allocation de mémoire.
Architecture introduction.
Composantes d’un Ordinateur
Module 2 : Préparation de l'analyse des performances du serveur
Chapitre 3 Interblocages 3.1. Ressources
Chapitre 9 Les sous-programmes.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Systèmes d’exploitation
Qu’est-ce qu’un système d’exploitation ?
L ’Ordonnancement Ordonnancement.
Systèmes d'exploitations Processus
Systèmes d’exploitation
Introduction aux systèmes d’exploitation
4 Introduction des objets. Les chaînes et tableaux
Cours Architecture des Systèmes Informatiques
Cours des Systèmes d’exploitations
L’attaque DNS Spoofing
Architecture Chapitre 4 Interruptions. 2 Plan Principe Schéma d’acquisition Les états d’une interruption Décentralisation des interruptions Exemples.
Module 8 : Surveillance des performances de SQL Server
PHP 5° PARTIE : LES COOKIES
Travailler avec des processus
Théorie Système Exploitation
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel Lectures: Chapitres.
Cours de Systèmes d’exploitations
Créer des packages.
Interactions entre Processus
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
La programmation système
Programmation Système et Réseau
Module 3 : Création d'un domaine Windows 2000
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
Cours Système LI324 Les Interruptions Cours Système LI324
Les Processus.
Architecture et technologie des ordinateurs II
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
1.1: notions de bases de l’informatique
Semaine 5 Registres spéciaux et périphériques internes Projet initial en ingénierie informatique et travail en équipe INF1995 Jérôme Collin et al.
1 Structures d’ordinateurs (matériel) Chapitre 2
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.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
1 Gestion de Processus Chapitre 4
Gestion de Processus Chapitre 4
Transcription de la présentation:

Gestion de Processus Chapitre 4 http://w3.uqo.ca/luigi/

Concepts importants du Chapitre 4 Processus Création, terminaison, hiérarchie États et transitions d’état des processus Process Control Block Commutation de processus Sauvegarde, rechargement de PCB Files d’attente de processus et PCB Ordonnanceurs à court, moyen, long terme Processus communicants Producteurs et consommateurs Ch.4

Processus et terminologie (aussi appelé job, task, user program) Concept de processus: un programme en exécution Possède des ressources de mémoire, périphériques, etc Ordonnancement de processus Opérations sur les processus Processus coopérants Processus communicants Ch.4

Création de processus Les processus peuvent créer d’autres processus, formant une hiérarchie (instruction fork ou semblables) V, Sessions Travaux Dirigés Ch.4

Création et synchronisation de processus En UNIX, le fork créé un processus identique au père, excepté son pid exec peut être utilisé pour exécuter un nouveau programme Ch.4

Arbre de processus en UNIX (pères et descendants) Ch.4

États et transitions d’états d’un processus Ch.4

Problème: Comment gérer l’exécution de plusieurs processus sur une seule UCT Un processus sera ● parfois en exécution sur l’UCT, ● parfois en attente d’une E/S, ● parfois en attente de l’UCT Ch.4

État de processus IMPORTANT Au fur et a mesure qu’un processus exécute, il change d’état nouveau: le processus vient d’être créé exécutant-running: le processus est en train d ’être exécuté par l’UCT attente-waiting: le processus est en train d ’attendre un événement (p.ex. la fin d’une opération d’E/S) prêt-ready: le processus est en attente d’être exécuté par l ’UCT terminated: fin d’exécution Ch.4

Ordonnanceur UCT Une UCT dans un ordi est une ressource qui peut être affectée tantôt à un processus, tantôt à un autre Quand une UCT se libère, un programme est invoqué qui décide quel processus lui sera affecté Ce programme est parfois appelé gestionnaire de tâches, task manager, etc. Nous l’appellerons ordonnanceur UCT Ch.4

Diagramme de transition d`états d`un processus Ordonnanceur = angl. scheduler Ch.4

États Nouveau, Terminé: Le SE a créé le processus a construit un identificateur pour le processus a construit les tableaux pour gérer le processus mais ne s’est pas encore engagé à exécuter le processus (pas encore admis) pas encore alloué des ressources La file des nouveaux travaux est souvent appelée spoule travaux (job spooler) Terminé: Le processus n’est plus exécutable, mais le SE est encore en train de nettoyer ses données Ch.4

Transitions de processus Prêt  Exécution Lorsque l’ordonnanceur UCT choisit un processus pour exécution Exécution  Prêt Préemption: Résultat d’une interruption causée par un événement indépendant du processus Il faut traiter cette interruption, donc le processus exécutant perd l’UCT Le processus à épuisé temps d’UCT (minuterie-temporisation) Un autre processus prêt devient urgent et doit être exécuté Ch.4

Transitions de processus Exécution  Attente Lorsqu’un processus fait un appel de système (interruption causée par le processus lui-même) initie une E/S: doit attendre le résultat a besoin de la réponse d’un autre processus Attente  Prêt lorsque l'événement attendu se produit Ch.4

Exercice Dans un système dans lequel plusieurs processus sont actifs, le fait qu’un processus exécute une transition peut causer une autre transition dans un autre processus! Exercice: déterminer quelles transitions d’un processus peuvent causer une autre transition dans un autre processus Ch.4

Commutation de processus et Process Control Block Ch.4

Sauvegarde d’informations de processus Un processus exécute sur l’UCT de façon intermittente Chaque fois qu’un processus reprend l ’UCT (transition prêt  exécution) il doit la reprendre dans la même situation où il l’a laissée (même contenu de registres UCT, etc.) Donc au moment où un processus sort de l’état exécution il est nécessaire de sauvegarder ses informations essentielles, qu’il faudra récupérer quand il retourne à cet état Ch.4

PCB = Process Control Block: Représente la situation actuelle d’un processus, pour le reprendre plus tard Registres UCT Ch.4

Process Control Block (PCB) IMPORTANT pointeur: les PCBs sont rangés dans des listes enchaînées (à voir) état de processus: prêt, exec, attente… compteur programme: le processus doit reprendre à l’instruction suivante autres registres UCT Accumulateur etc. bornes de mémoire fichiers qu’il a ouvert etc., v. manuel Ch.4

Commutation de processeur Aussi appélé commutation de contexte ou context switching Quand l’UCT passe de l’exécution d’un processus 0 à l’exécution d`un proc 1, il faut mettre à jour et sauvegarder le PCB de 0 reprendre le PCB de 1, qui avait été sauvegardé avant remettre les registres d’UCT tels que le compteur d’instructions etc. dans la même situation qui est décrite dans le PCB de 1 Ch.4

Commutation de processeur (context switching) inactif? Nous faisons l’hypothèse que seulement 2 procs soient actifs Ch.4

Rôle du matériel et du logiciel dans le traitement d’interruptions Infos sauvegardées dans PCB Signal d’interruption généré Le code de traitement de l’interruption est exécuté UCT termine l’instruction courante et détecte interruption L’ordonnanceur choisit un processus qui est prêt Registres d’UCT sont sauvegardés dans la pile des interr. Les infos relatives à ce processus sont rétablies à partir de son PCB UCT saute à l’adresse trouvée dans le vecteur d’interruption Les registres d’UCT sont rechargés avec ces infos dispatcher L’UCT reprend l’exec de ce proc Ch.4

Le PCB n ’est pas la seule information à sauvegarder Le PCB n ’est pas la seule information à sauvegarder... (le manuel n’est pas clair ici) Il faut aussi sauvegarder l’état des données du programme Ceci se fait normalement en gardant l’image du programme en mémoire primaire ou secondaire (RAM ou disque) Le PCB pointera à cette image Ch.4

La pile d’un processus (v. Stallings App. 1B) aussi à sauvegarder Quand un processus fait appel à une procédure, à une méthode, etc., il est nécessaire de mettre dans une pile l’adresse à laquelle le processus doit retourner après avoir terminé cette procédure, méthode, etc. Aussi on met dans cette pile les variables locales de la procédure qu’on quitte, les paramètres, etc., pour les retrouver au retour Chaque élément de cette pile est appelé stack frame ou cadre de pile Donc il y a normalement une pile d’adresses de retour après interruption et une pile d’adresses de retour après appel de procédure Ces deux piles fonctionnent de façon semblable, mais sont indépendantes Les informations relatives à ces piles (base, pointeur…) doivent aussi être sauvegardées au moment de la commutation de contexte Ch.4

La Pile d’un processus P A B Appel A Appel B Données B Données A Données P PILE Ch.4

Pointeurs de pile processus à sauvegarder: base et borne pointeur de borne cadre 4 cadre 3 cadre 2 cadre 1 pointeur de base La pile fait normal. partie de l’image du programme, mais les pointeurs sont souvent des registres d’UCT donc il sont sauvegardés dans le PCB Ch.4

Configuration typique de mémoire pour un processus Pile de contrôle Tas pour structures dynamiques (listes) Données fixes programme Ch.4

Files d’attentes de processus Ch.4

Files d’attente IMPORTANT Les ressources d’ordi sont souvent limitées par rapport aux processus qui en demandent Chaque ressource a sa propre file de processus en attente Quand il y a interruption sur une ressource (pex fin d’E/S) les files permettent aussi de déterminer quel processus doit être notifié En changeant d’état, les processus se déplacent d ’une file à l`autre File prêt: les processus en état prêt=ready Files associés à chaque unité E/S etc. Ch.4

Ce sont les PCBs qui sont dans les files d’attente (dont le besoin d’un pointeur dans le PCB) file prêt Nous ferons l’hypothèse que le premier processus dans une file est celui qui utilise la ressource: ici, proc7 exécute, proc3 utilise disque 0, etc. Ch.4

prêt  7  2 bandmag0  bandmag1  disq0  3  14  6 term0  5 Une façon plus synthétique de décrire la même situation (pour les devoirs et les examens) prêt  7  2 bandmag0  bandmag1  disq0  3  14  6 term0  5 Ch.4

Les PCBs ne sont pas déplacés en mémoire pour être mis dans les différentes files: ce sont les pointeurs qui changent. ready disk unit 0 . . . PCB4 PCB2 PCB3 PCB5 PCB6 PCB7 PCB14 term. unit 0 Ch.4

Trois structures de données essentielles pour la gestion des processus Les structures de données suivantes sont reliées mais distinctes dans leur utilisation et contenu Pile propre à chaque processus pour gérer les appels-retours aux procédures, méthodes, fonctions etc. Pile du SE pour gérer les interruptions et retours des interruptions Liste des PCBs actifs dans le système à un moment donné, est partitionnée en plusieurs listes d’attente, une pour chaque ressource qui peut être affectée à un proc Chacune de ces piles ou listes doit sauvegarder des informations pour pouvoir retourner à la bonne place du bon processus avec le bonnes données après avoir fait d’autres traitements Ch.4

Ces listes sont différentes! Pile propre à chaque processus pour gérer les appels-retours aux procédures, méthodes, fonctions etc. Cette pile doit exister dans tout système qui admet ces appels, même si le système n’admet ni les interruptions, ni la multiprogrammation Elle est gérée par le système d’exécution du programme compilé Pile du SE pour gérer les interruptions et retours des interruptions Cette pile doit exister dans tout système qui admet des interruptions, même s’il n’admet pas de multiprogrammation Elle est gérée directement par le matériel Liste des PCBs actifs dans le système Nécessaire pour la multiprogrammation Elle est gérée par le SE Ch.4

Ordonnanceurs (schedulers)

Ordonnanceurs (schedulers) Programmes qui gèrent l’utilisation de ressources de l`ordinateur Trois types d`ordonnanceurs : À court terme = ordonnanceur processus: sélectionne quel processus doit exécuter la transition prêt  exécution À long terme = ordonnanceur travaux: sélectionne quels processus peuvent exécuter la transition nouveau  prêt (événement admitted) (de spoule travaux à file prêt) À moyen terme: nous verrons Ch.4

Dispatcheur Programme qui, faisant suite à la décision de l’ordonnanceur, effectue la commutation de contexte Souvent considéré partie de l’ordonnanceur Ch.4

Ordonnanceur travaux = long terme et ordonnanceur processus = court terme Ch.4

Ordonnanceurs L`ordonnanceur à court terme est exécuté très souvent (millisecondes) doit être très efficace L`ordonnanceur à long terme doit être exécuté beaucoup plus rarement: il contrôle le niveau de multiprogrammation Un des ses critères pourrait être la bonne utilisation des ressources de l’ordinateur P.ex. établir une balance entre travaux liés à l’UCT et ceux liés à l ’E/S Ch.4

Ordonnancement de processus (court terme) Ch.4

Ordonnanceur à moyen terme Le manque de ressources peut parfois forcer le SE à suspendre des processus ils seront plus en concurrence avec les autres pour des ressources ils seront repris plus tard quand les ressources deviendront disponibles Ces processus sont enlevés de mémoire centrale et mis en mémoire secondaire, pour être repris plus tard `swap out`, `swap in` , va-et-vien  Ch.4

Ordonnanceurs à long, court et moyen terme Ch.4

États de processus dans UNIX SVR4 (Stallings) Un exemple de diagramme de transitions d’états pour un SE réel Kernel, user mode = monitor, user mode Ch.4

UNIX SVR4 États Created Nouveau Zombie Terminé User running Exécute en mode usager Kernel running Exécute en mode superviseur Ready in memory Prêt en mém centrale Asleep in memory En attente en mém centrale Ready swapped Prêt en mém secondaire Asleep swapped En attente, mém secondaire Preempted Par un proc + prioritaire Ch.4

Processus coopérants et le tampon borné Ch.4

Processus coopérants Les processus coopérants peuvent affecter mutuellement leur exécution Avantages de la coopération entre processus: partage de l’information efficacité en faisant des tâches en parallèle modularité la nature du problème pourrait le demander P.ex. gestion d’événements indépendants Un proc traite le clavier, un autre traite le modem Ch.4

Le pb du producteur - consommateur Un problème classique dans l’étude des processus communicants un processus producteur produit des données (p.ex.des enregistrements d ’un fichier) pour un processus consommateur un pgm d’impression produit des caractères -- consommés par une imprimante un assembleur produit des modules objet qui seront consommés par le chargeur Nécessité d’un tampon pour stocker les items produits (attendant d’être consommés Ch.4

Tampons de communication (sections 4.4 et 4.5 à voir dans le lab) Prod Prod 1 donn 1 donn 1 donn 1 donn Cons Cons Si le tampon est de longueur 1, le producteur et consommateur doivent forcement aller à la même vitesse Des tampons de longueur plus grandes permettent une certaine indépendance. P.ex. à droite le consommateur a été plus lent Ch.4

peu d’indépendance entre homme et chien Laisse courte: peu d’indépendance entre homme et chien Laisse longue: plus d’indépendance Ch.4

Le tampon borné (bounded buffer) une structure de données fondamentale dans les SE bleu: plein, blanc: libre in: 1ère pos. libre b[1] b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] b[0] b[7] b[2] ou b[6] b[3] in: 1ère pos. libre out: 1ère pos. pleine b[5] b[4] out: 1ère pos. pleine Le tampon borné se trouve dans la mémoire partagée entre consommateur et usager À l’écriture d’une info dans le tampon, le producteur met à jour le pointeur in À la lecture d’une info dans le tampon, le consommateur mette à jour out Si le tampon est plein, le prod devra s’endormir, il sera plus tard réveillé par le consommateur Le rôle du consommateur est symétrique Notez que dans cette simple gestion, in=out peut vouloir dire tampon plein ou tampon vide V. solution plus sophistiquée plus tard Ch.4

Utilisation du concept du tampon borné Les tampons bornés sont partout en informatique, et partout dans les SE Les files utilisées dans un SE sont des tampons bornés: ‘pipes’ dans Unix files d’attente pour ressources: file prêt, files pour imprimante, pour disque, etc. Les protocoles de communications utilisent des tampons bornés: TCP, et autres Un client communique avec un serveur par des tampons bornés, etc. Ch.4

Concepts importants du Chapitre 4 Processus Création, terminaison, hiérarchie États et transitions d’état des processus Process Control Block PCB Commutation de processus Sauvegarde, rechargement de PCB Files d’attente de processus et PCB Ordonnanceurs à court, moyen, long terme Processus communicants Producteurs et consommateurs Ch.4

Par rapport au manuel… Tout à étudier à l’exception des sections 4.5.6, 4.5.7, 4.6 (tout) Les exemples contenant du code Java et C seront expliqués aux sessions d’exercices Ch.4

Différentes significations de ‘processus en exécution’ Si nous parlons d’ordonnancement d’UCT, un processus est en exécution quand une UCT l’exécute Si nous parlons d’ordonnancement de travaux, un processus est en exécution s’il a été admis et n’est pas encore terminé et donc il est dans un des états: Prêt, attente, exécution Pour ceci, je chercherai à utiliser le mot ‘actif’ Ch.4

Implications pour la sécurité Les concepts de ‘tas’ et ‘pile’ (heap and stack) sont importants dans la sécurité Certains types d’attaques sont basés sur l’idée d’y introduire des informations truquées p.ex. y introduire des adresses de retour qui dirigent l’exécution vers un programme malveillant Ch.4

Terminologie Tampon = anglais buffer Zone de mémoire contenant des informations en transfert P.ex. informations qui viennent d’être lues d’une périphérique et sont en attente de traitement Ou informations qui sont prêtes pour la sortie Ou informations préparées par un processus pour un autre On peut avoir une zone tampon pour le disque, pour l’imprimante, etc. Ch.4