1 Gestion de Processus Chapitre 4

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

Transcript of 1 Gestion de Processus Chapitre 4

Page 1: 1 Gestion de Processus Chapitre 4

1

Gestion de ProcessusGestion de Processus

Chapitre 4Chapitre 4

http://w3.uqo.ca/luigi/http://w3.uqo.ca/luigi/

Page 2: 1 Gestion de Processus Chapitre 4

Ch.4 2

Concepts importants du Chapitre 4Concepts 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

Page 3: 1 Gestion de Processus Chapitre 4

Ch.4 3

ProcessusProcessus et terminologie et terminologie(aussi appelé (aussi appelé job, task, user programjob, 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

Page 4: 1 Gestion de Processus Chapitre 4

Ch.4 4

Création de processusCréation de processus

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

Page 5: 1 Gestion de Processus Chapitre 4

Ch.4 5

Création et synchronisation de processusCré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

Page 6: 1 Gestion de Processus Chapitre 4

Ch.4 6

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

Page 7: 1 Gestion de Processus Chapitre 4

États et transitions d’états d’un processusÉtats et transitions d’états d’un processus

Ch.4 7

Page 8: 1 Gestion de Processus Chapitre 4

Problème:Problème:

Comment gérer l’exécution de plusieurs Comment gérer l’exécution de plusieurs processus sur une seule UCTprocessus sur une seule UCT

Un processus sera Un processus sera ● parfois en exécution sur l’UCT, ● parfois en exécution sur l’UCT, ● parfois en attente d’une E/S, ● parfois en attente d’une E/S, ● parfois en attente de l’UCT ● parfois en attente de l’UCT

Ch.4 8

Page 9: 1 Gestion de Processus Chapitre 4

Ch.4 9

ÉtatÉtat de processus de processus IMPORTANTIMPORTANT

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

Page 10: 1 Gestion de Processus Chapitre 4

Ch.4 10

Ordonnanceur UCTOrdonnanceur 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

Page 11: 1 Gestion de Processus Chapitre 4

Ch.4 11

Diagramme de transition d`états d`un processusDiagramme de transition d`états d`un processus

Ordonnanceur = angl. scheduler

Page 12: 1 Gestion de Processus Chapitre 4

Ch.4 12

États Nouveau, Terminé:États Nouveau, Terminé: Nouveau

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

Page 13: 1 Gestion de Processus Chapitre 4

Ch.4 13

Transitions de processusTransitions 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é

Page 14: 1 Gestion de Processus Chapitre 4

Ch.4 14

Transitions de processusTransitions 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

Page 15: 1 Gestion de Processus Chapitre 4

ExerciceExercice

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 15

Page 16: 1 Gestion de Processus Chapitre 4

Commutation de processus et Commutation de processus et Process Control BlockProcess Control Block

Ch.4 16

Page 17: 1 Gestion de Processus Chapitre 4

Ch.4 17

Sauvegarde d’informations de processusSauvegarde 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

Page 18: 1 Gestion de Processus Chapitre 4

Ch.4 18

PCB = Process Control Block: PCB = Process Control Block: Représente la situation actuelle d’un processus, pour Représente la situation actuelle d’un processus, pour le reprendre plus tardle reprendre plus tard

Registres UCT

Page 19: 1 Gestion de Processus Chapitre 4

Ch.4 19

Process Control Block (PCB) Process Control Block (PCB) IMPORTANTIMPORTANT

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

Page 20: 1 Gestion de Processus Chapitre 4

Ch.4 20

Commutation de processeur Commutation de processeur Aussi appélé commutation de contexte ou context switchingAussi 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

Page 21: 1 Gestion de Processus Chapitre 4

Ch.4 21

Commutation de processeur (context switching)Commutation de processeur (context switching)

Nous faisons l’hypothèse que seulement 2 procs soient actifs

inactif?

Page 22: 1 Gestion de Processus Chapitre 4

Ch.4 22

Rôle du matériel et du logiciel dans le traitement Rôle du matériel et du logiciel dans le traitement d’interruptionsd’interruptions

MATÉRIEL LOGICIEL

Signal d’interruption généré

UCT termine l’instruction couranteet détecte interruption

Registres d’UCT sont sauvegardés dans la pile des interr.

UCT saute à l’adresse trouvée dans le vecteur d’interruption

Infossauvegardées dans PCB

Le code de traitement de l’interruption est exécuté

L’ordonnanceur choisit unprocessus qui est prêt

Les registres d’UCT sont rechargésavec ces infos

Les infos relatives à ce processus sont rétablies à partir de son PCB

dispatcher

L’UCT reprend l’exec de ce proc

Page 23: 1 Gestion de Processus Chapitre 4

Ch.4 23

Le PCB n ’est pas la seule information à Le PCB n ’est pas la seule information à sauvegarder...sauvegarder... (le manuel n’est pas clair ici)(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

Page 24: 1 Gestion de Processus Chapitre 4

Ch.4 24

La pile d’un processus La pile d’un processus (v. Stallings App. 1B)(v. Stallings App. 1B)aussi à sauvegarderaussi à 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

Page 25: 1 Gestion de Processus Chapitre 4

Ch.4 25

La Pile d’un processusLa Pile d’un processus

A

BAppel A Appel B

PILE

Données P

Données B

Données A

P

Page 26: 1 Gestion de Processus Chapitre 4

Ch.4 26

Pointeurs de pile processus à sauvegarder: Pointeurs de pile processus à sauvegarder: base et bornebase et borne

cadre 1

cadre 2

cadre 3

cadre 4

pointeur de base

pointeur de borne

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

Page 27: 1 Gestion de Processus Chapitre 4

Ch.4 27

Configuration typique de mémoire Configuration typique de mémoire pour un processuspour un processus

programme

Données fixes

Tas pour structures dynamiques (listes)

Pile de contrôle

Page 28: 1 Gestion de Processus Chapitre 4

Files d’attentes de processusFiles d’attentes de processus

Ch.4 28

Page 29: 1 Gestion de Processus Chapitre 4

Ch.4 29

Files d’attenteFiles d’attente IMPORTANTIMPORTANT

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.

Page 30: 1 Gestion de Processus Chapitre 4

Ch.4 30

Ce sont les PCBs qui sont dans les files Ce sont les PCBs qui sont dans les files d’attente d’attente (dont le besoin d’un (dont le besoin d’un pointeurpointeur dans le PCB) 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.

Page 31: 1 Gestion de Processus Chapitre 4

Ch.4 31

Une façon plus synthétique de décrire la même Une façon plus synthétique de décrire la même situation situation (pour les devoirs et les examens)(pour les devoirs et les examens)

prêt 7 2

bandmag0

bandmag1

disq0 3 14 6

term0 5

Page 32: 1 Gestion de Processus Chapitre 4

Ch.4 32

Les PCBs ne sont pas déplacés en mémoire Les PCBs ne sont pas déplacés en mémoire pour être mis dans les différentes files: pour être mis dans les différentes files: ce sont les pointeurs qui changent.ce sont les pointeurs qui changent.

ready

disk unit 0

. . . PCB4 . . .PCB2 PCB3 PCB5 PCB6 PCB7 PCB14

term. unit 0

Page 33: 1 Gestion de Processus Chapitre 4

Trois structures de données essentielles pour la Trois structures de données essentielles pour la gestion des processusgestion des processus

Les structures de données suivantes sont reliées mais distinctes dans leur utilisation et contenuPile 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 interruptionsListe 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 33

Page 34: 1 Gestion de Processus Chapitre 4

Ces listes sont différentes!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 34

Page 35: 1 Gestion de Processus Chapitre 4

Ordonnanceurs (schedulers)Ordonnanceurs (schedulers)

Ch.4 35

Page 36: 1 Gestion de Processus Chapitre 4

Ch.4 36

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

Page 37: 1 Gestion de Processus Chapitre 4

DispatcheurDispatcheur

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

Ch.4 37

Page 38: 1 Gestion de Processus Chapitre 4

Ch.4 38

Ordonnanceur travaux = long termeOrdonnanceur travaux = long termeet ordonnanceur processus = court termeet ordonnanceur processus = court terme

Ordonnanceur travaux

Ordonnanceur processus

Page 39: 1 Gestion de Processus Chapitre 4

Ch.4 39

OrdonnanceursOrdonnanceurs

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

Page 40: 1 Gestion de Processus Chapitre 4

Ch.4 40

Ordonnancement de processus Ordonnancement de processus (court terme)(court terme)

Page 41: 1 Gestion de Processus Chapitre 4

Ch.4 41

Ordonnanceur à moyen termeOrdonnanceur à 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 

Page 42: 1 Gestion de Processus Chapitre 4

Ch.4 42

Ordonnanceurs à long, Ordonnanceurs à long, courtcourt et et moyen moyen termeterme

court

moyen

long

Page 43: 1 Gestion de Processus Chapitre 4

Ch.4 43

États de processus dans UNIX SVR4 États de processus dans UNIX SVR4 (Stallings)(Stallings)

Un exemple de diagramme de transitions d’états pour un SE réelUn exemple de diagramme de transitions d’états pour un SE réel

Kernel, user mode = monitor, user mode

Page 44: 1 Gestion de Processus Chapitre 4

Ch.4 44

UNIX SVR4 UNIX SVR4 ÉtatsÉ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

Page 45: 1 Gestion de Processus Chapitre 4

Processus coopérants et le tampon bornéProcessus coopérants et le tampon borné

Ch.4 45

Page 46: 1 Gestion de Processus Chapitre 4

Ch.4 46

Processus coopérants 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

Page 47: 1 Gestion de Processus Chapitre 4

Ch.4 47

Le pb du producteur - consommateurLe 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

Page 48: 1 Gestion de Processus Chapitre 4

Ch.4 48

Tampons de communicationTampons de communication(sections 4.4 et 4.5 à voir dans le lab)(sections 4.4 et 4.5 à voir dans le lab)

Prod

Cons

1 donn

Prod

Cons

1 donn 1 donn1 donn

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

Page 49: 1 Gestion de Processus Chapitre 4

Ch.4 49

Laisse courte: peu d’indépendance entre homme et chien

Laisse longue: plus d’indépendance

Page 50: 1 Gestion de Processus Chapitre 4

Ch.4 50

Le tampon borné Le tampon borné (bounded buffer)(bounded buffer)une structure de données fondamentale dans les SEune structure de données fondamentale dans les SE

b[0] b[1]

b[7] b[2]

b[6] b[3]

b[4]b[5]

ou

out: 1ère pos. pleine

in: 1ère pos. libre b[0] b[1] b[7]b[2] b[6]b[3] b[4] b[5]

in: 1ère pos. libre

out: 1ère pos. pleine

bleu: plein, blanc: libre

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

Page 51: 1 Gestion de Processus Chapitre 4

Ch.4 51

Utilisation du concept du tampon borné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.

Page 52: 1 Gestion de Processus Chapitre 4

Ch.4 52

Concepts importants du Chapitre 4Concepts 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

Page 53: 1 Gestion de Processus Chapitre 4

Ch.4 53

Par rapport au manuel…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

Page 54: 1 Gestion de Processus Chapitre 4

Ch.4 54

Différentes significations de Différentes significations de ‘processus en exécution’‘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’

Page 55: 1 Gestion de Processus Chapitre 4

Implications pour la sécurité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 55

Page 56: 1 Gestion de Processus Chapitre 4

TerminologieTerminologie

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 56