close

Se connecter

Se connecter avec OpenID

Chap4 - Gestion de processus

IntégréTéléchargement
Gestion de Processus
Chapitre 4
http://w3.uqo.ca/luigi/
1
Concepts importants du Chapitre 4

Processus




É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

Ch.4
Création, terminaison, hiérarchie
Producteurs et consommateurs
2
Processus et terminologie
(aussi appelé job, task, user program)

Concept de processus: un programme en
exécution

Ch.4
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
Création de processus

Les processus peuvent créer d’autres
processus, formant une hiérarchie
(instruction fork ou semblables)
 V,
Ch.4
Sessions Travaux Dirigés
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
5
Arbre de processus en UNIX (pères et descendants)
Ch.4
6
États et transitions d’états d’un processus
Ch.4
7
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
Ch.4
8
É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
Ch.4
9
Ordonnanceur UCT




Ch.4
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
É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)



La file des nouveaux travaux est souvent appelée
spoule travaux (job spooler)
Terminé:

Ch.4
pas encore alloué des ressources
Le processus n’est plus exécutable, mais le SE est
encore en train de nettoyer ses données
12
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

le processus exécutant perd l’UCT car il faut traiter une
interruption qulconque, p.ex.:
•
•
•
•
Ch.4
Terminaison d’E/S (probabl. pour un autre processus)
Le processus à épuisé temps d’UCT (minuterie-temporisation)
Un autre processus prêt devient urgent et doit être exécuté
Une action quelconque de l’usager
13
Transitions de processus

Exécution  Attente
 Lorsqu’un processus fait un appel de
(interruption causée par le processus lui-même)
système
 initie
une E/S: doit attendre le résultat
 a besoin de la réponse d’un autre processus

Attente  Prêt
 lorsque
Ch.4
l'événement attendu se produit
14
Exercice


Ch.4
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
Point de réflexion

Le diagramme de transition d’états suivant
serait approprié dans certaines situations
– Lesquelles?
Nouveau
Ch.4
Exécution
Attente
Terminé
16
Commutation de processus et
Process Control Block
Ch.4
17
Sauvegarde d’informations de processus



Ch.4
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
PCB = Process Control Block:
Représente la situation actuelle d’un processus, pour
le reprendre plus tard
Registres UCT
Ch.4
19
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
Ch.4
20
Commutation de processeur
Aussi appélé commutation de contexte ou context switching

Ch.4
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
Commutation de processeur (context switching)
inactif?
Ch.4
On reviendra enfin à P0
22
Rôle du matériel et du logiciel dans le traitement
d’interruptions
MATÉRIEL
Signal d’interruption généré
UCT termine l’instruction courante
et 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
LOGICIEL
Infos
sauvegardées dans PCB
Le code de traitement de
l’interruption est exécuté
L’ordonnanceur choisit un
processus P1 qui est prêt
Les infos relatives à P1
sont rétablies à partir de son PCB
Les registres d’UCT sont rechargés
avec ces infos
dispatcher
L’UCT reprend l’exec de P1
Ch.4
23
Le PCB n ’est pas la seule information à
sauvegarder... (le manuel n’est pas clair ici)



Ch.4
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
La pile d’un processus (v. Stallings App. 1B)
aussi à sauvegarder





Ch.4
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
25
La Pile d’un processus
P
Appel A
A
Appel B
B
Données B
Données A
Données P
PILE
Ch.4
26
Pointeurs de pile processus à sauvegarder:
base et borne
pointeur de borne
cadre 4
cadre 3
cadre 2
pointeur de base
Ch.4
cadre 1
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
Configuration typique de mémoire pour un processus
Pile de contrôle
Mémoire libre
Tas pour structures
dynamiques (listes)
Données fixes
programme
Ch.4
28
Le rôle du système d’exécution



Ch.4
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
Files d’attentes de processus
Ch.4
30
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
31
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
32
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
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
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 appelsretours 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
Ch.4
35
Ces listes sont différentes!



Ch.4
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
Ordonnanceurs (schedulers)
Ch.4
37
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
38
Dispatcheur

Programme qui, faisant suite à la décision
de l’ordonnanceur, effectue la
commutation de contexte
 Parfois
Ch.4
considéré partie de l’ordonnanceur
39
Ordonnanceur travaux = long terme
et ordonnanceur processus = court terme
Ordonnanceur travaux
Ordonnanceur processus
Ch.4
40
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
41
Long terme
Ch.4
Court terme
42
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
Ch.4
out`, `swap in` , va-et-vien
43
Ordonnanceurs à long, court et moyen terme
moyen
long
court
Ch.4
44
Exemple: Unix SVR 4
Ch.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
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
47
Processus coopérants et le tampon borné
Ch.4
48
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
49
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

Ch.4
Nécessité d’un tampon pour stocker les
items produits (attendant d’être
consommés
50
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
Ch.4
51
Tampons de communication
Prod
Prod
1 donn
1 donn 1 donn 1 donn
Cons
Cons
Des tampons de longueur plus grande permettent une certaine
indépendance. P.ex. à droite le consommateur a été plus lent
Ch.4
52
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)
Ch.4
53
Le tampon borné (bounded buffer)
une structure de données fondamentale dans les SE
bleu: plein, blanc: libre
in: 1ère
pos. libre
b[0] b[1]
b[7]
b[2]
b[6]
b[3]
b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7]
ou
b[5] b[4]
in: 1ère
pos. libre
out: 1ère
pos. pleine
out: 1ère
pos.
pleine
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
Ch.4
54
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.



Ch.4
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
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,



Files d’attente de processus et PCB
Ordonnanceurs à court, moyen, long terme
Processus communicants
 Producteurs
Ch.4
rechargement de PCB
et consommateurs
56
Par rapport au manuel…


Ch.4
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
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
58
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

Ch.4
P.ex. une ou plusieurs pourraient être réservées aux
opérations d’E/S
59
Différences dans la logique?


Ch.4
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
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
Ch.4
61
Tas et pile: Implications pour la sécurité



Ch.4
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
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
63
Questions de révision 1




Ch.4
Dessiner le système de transitions d’états
des processus
Expliquer les raisons qui peuvent causer
chaque transition dans le diagramme
Quelles transitions d’états d’un processus
peuvent causer des transitions d’un autre
processus
Quels sont les données principales qui
sont stockées dans un Process Control
Block PCB
64
Questions de révision 2


Quelle est la différence entre
ordonnanceur et répartiteur (dispatcher)
Expliquer brièvement les fonctions de
chaque:
 Ordonnanceur
à court terme
 Ordonnanceur à moyen terme
 Ordonnanceur à long terme

Comprendre la structure des files d’attente
des PCBs pour une situation donnée
 Étant
donné une certaine structure et un
événement, quelle est la structure résultante
Ch.4
65
Auteur
Document
Catégorie
Uncategorized
Affichages
5
Taille du fichier
1 260 KB
Étiquettes
1/--Pages
signaler