Transcript Chap4 - Gestion de processus
Gestion de Processus
Chapitre 4
http://w3.uqo.ca/luigi/ 1
Ch.4
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 2
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
3
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 4
Création et synchronisation de processus
Ch.4
En UNIX, le fork créé un processus identique au père, excepté son pid exec peut être utilisé pour exécuter un nouveau programme 5
Ch.4
Arbre de processus en UNIX (pères et descendants)
6
Ch.4
États et transitions d’états d’un processus
7
Ch.4
Problème: Comment gérer l’exécution de plusieurs processus sur beaucoup moins d’UCT Un processus sera ● parfois en exécution sur une UCT, ● parfois en attente d’une E/S, ● parfois en attente d’une UCT
8
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 une 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 une UCT terminated: fin d’exécution 9
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
10
Diagramme de transition d`états d`un processus
Ch.4
Ordonnanceur = angl. scheduler 11
Ch.4
É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 12
Transitions de processus
Ch.4
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é 13
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 14
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
15
Ch.4
Point de réflexion
Le diagramme de transition d’états suivant serait approprié dans certaines situations – Lesquelles?
Nouveau Exécution Attente Terminé 16
Ch.4
Commutation de processus et Process Control Block
17
Ch.4
Sauvegarde d’informations de processus
Un processus exécute sur une 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
18
Ch.4
PCB = Process Control Block:
Représente la situation actuelle d’un processus, pour le reprendre plus tard
Registres UCT 19
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 registres d’adresses etc.
bornes de mémoire fichiers qu’il a ouvert etc., v. manuel 20
Ch.4
Commutation de processeur Aussi appélé commutation de contexte ou context switching
Quand une 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
21
inactif?
Ch.4
Commutation de processeur (context switching)
On reviendra enfin à P 0 22
Rôle du matériel et du logiciel dans le traitement d’interruptions MATÉRIEL LOGICIEL 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 P 1 qui est prêt Registres d’UCT sont sauvegardés dans la pile des interr.
Les infos relatives à P 1 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 P 1
Ch.4
23
Ch.4
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
24
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 pile ou cadre de 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
25
Ch.4
La Pile d’un processus P Appel A A Appel B B Données B Données A Données P PILE
26
Pointeurs de pile processus à sauvegarder: base et borne
pointeur de borne cadre 4 cadre 3 cadre 2 pointeur de base cadre 1 Ch.4
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 27
Ch.4
Configuration typique de mémoire pour un processus
Pile de contrôle Mémoire libre Tas pour structures dynamiques (listes) Données fixes programme 28
Ch.4
Le rôle du système d’exécution
Cependant ces mécanismes ne sont pas une préoccupation du SE Ils sont gérés par le système d’exécution du langage utilisé Le SE sauvegarde toutes les informations comme partie de l’espace de mémoire et des registres du processus
29
Ch.4
Files d’attentes de processus
30
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.
31
file prêt
Ce sont les PCBs qui sont dans les files d’attente (dont le besoin d’un pointeur dans le PCB)
Ch.4
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.
32
Ch.4
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
33
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.
term. unit 0 ready
. . .
PCB2 PCB3 PCB4 PCB5 PCB6 PCB7
. . .
PCB14 disk unit 0 Ch.4
34
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 Pour chacune de ces piles ou listes on 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
35
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 36
Ch.4
Ordonnanceurs (schedulers)
37
Ch.4
Ordonnanceurs (schedulers)
Programmes qui gèrent l’utilisation de ressources de l`ordinateur Trois types d`ordonnanceurs :
À court terme = transition prêt ordonnanceur processus exécution : sélectionne quel processus doit exécuter la À long terme = la transition ordonnanceur travaux nouveau prêt : sélectionne quels processus peuvent exécuter (événement
admitted
) (de spoule travaux à file prêt) À moyen terme: nous verrons 38
Ch.4
Dispatcheur
Programme qui, faisant suite à la décision de l’ordonnanceur, effectue la commutation de contexte
Parfois considéré partie de l’ordonnanceur 39
Ch.4
Ordonnanceur travaux = long terme et ordonnanceur processus = court terme Ordonnanceur travaux Ordonnanceur processus
40
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 41
Long terme Court terme Ch.4
42
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 43
moyen
Ordonnanceurs à long, court et moyen terme
long court Ch.4
44
Ch.4
Exemple: Unix SVR 4
45
É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
46
UNIX SVR4
États
Ch.4
Created Zombie User running Nouveau Terminé Exécute en mode usager Kernel running Exécute en mode superviseur Ready in memory Asleep in memory Prêt en mém centrale En attente en mém centrale Ready swapped Prêt en mém secondaire Asleep swapped Preempted En attente, mém secondaire Par un proc + prioritaire 47
Ch.4
Processus coopérants et le tampon borné
48
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 49
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 consommés tampon pour stocker les items produits (attendant d’être
50
Ch.4
Tampons de communication (sections 4.4 et 4.5 à voir dans le lab)
Prod 1 donn Cons Si le tampon est de longueur 1, le producteur et consommateur doivent forcement aller à la même vitesse 51
Ch.4
Tampons de communication
Prod Prod 1 donn Cons 1 donn 1 donn 1 donn Cons Des tampons de longueur plus grande permettent une certaine indépendance. P.ex. à droite le consommateur a été plus lent 52
Ch.4
Laisse courte: peu d’indépendance entre homme et chien Laisse longue: plus d’indépendance (Mais à longue échéance les vitesses sont les mêmes) 53
Le tampon borné (bounded buffer) une structure de données fondamentale dans les SE
bleu: plein, blanc: libre
b[0] b[1] in
: 1ère pos. libre
b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] b[7] b[6] b[2] b[3] ou b[5] b[4] in
: 1ère pos. libre
out
: 1ère pos. pleine
out
: 1ère pos. pleine Ch.4
Le tampon borné se trouve dans la mémoire partagée entre producteur et consommateur À 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 54
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.
55
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 56
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
57
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’ 58
Ch.4
Une ou plusieurs UCTs
Parfois on pourrait parler comme s’il y avait une seule UCT par ordi C’était la situation jusqu’à quelques années Aujourd’hui les ordis ont plusieurs UCTs Quand un processus est prêt à être exécuté, il est assigné à une UCT disponible Cependant certaines UCT pourraient être réservées à certains types de travaux
P.ex. une ou plusieurs pourraient être réservées aux opérations d’E/S 59
Ch.4
Différences dans la logique?
Dans un magasin la logique d’exécution avec un seul caissier est la même qu’avec plusieurs caissiers La logique d’un SE ne change pas qu’il y ait une ou plusieurs UCT
60
Ch.4
Unité Centrales et ‘cœurs’
Dans les ordis récents, on a normalement plusieurs unités capables chacune d’exécuter des instructions dans une seule puce: elles sont appelées ‘cœurs’ Chacun de ces cœurs pourrait être traité de différentes manières
Comme UCT à part entière Ou seulement pour exécuter des séquences d’instructions indépendantes quand elles se présentent sous contrôle du matériel ou logiciel 61
Ch.4
Tas et pile: 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 injecter des adresses de retour qui dirigent l’exécution du processus vers un programme malveillant
62
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.
63