Processus

publicité
Théorie Système Exploitation
CPI 2004
Les Processus
Philippe Bancquart
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 1
Plan des systèmes d’exploitation
 Création
et suppression des processus
 Ordonnancement
des processus (scheduling)
 Mécanisme
de synchronisation entre processus
 Traitement
des interblocages.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 2
Processus : Est l'activité résultant de l'exécution d'un
programme séquentiel, avec ses données, par un processeur.
Un processus Un processus est
l'exécution d'un programme à un
instant donné.
La composition :
Programme
Instruction langage machine
partie fixe

Espace adressable

Des variables globales

Descripteurs de fichiers

Gestion de signaux

Compteur ordinal

Pile
En tête : description
Données
variables, constantes
taille variable
Pile
Varie selon l’imbrication
des appels de fonctions
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 3
Programme et Processus
Programme

Processus
Entité purement statique
associé à la suite des
instructions qui la composent

Entité purement dynamique
associé à la suite des actions
réalisés par un programme
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 4
Sous Processus et threads
 Chaque
thread possède son propre mot d'état, son propre
contexte du processeur mais partage le même segment de
code et de données que le processus.
 Comme
les threads partagent le même segment de
données il faut faire très attention, lorsqu'on les
programme, pour éviter tout conflit et incohérence dans
leur exécution.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 5
Threads
 Espaces
d’adressage distincts = forte limitation des
processus.
 Exemple
 Deux
du traitement de texte :
actions simultanées sur les mêmes données
 Caractères
 Ecriture
entrés au clavier
disque
 Correcteur
de la frappe
orthographique activé au fur et à mesure
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 6
Processus ≠ Threads

Informations locales à un
processus :



Espace adressage
Variables globales
Descripteurs de fichiers

Signaux

…

Informations locales à un thread :

PC

Registres

Pile

Etat
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 7
Etats d'un processus
 En
exécution (RUNNING)
: signifie que le
processus dispose du processeur à cet instant là .
Prêt (READY) signifie que le processus est en
attente du processeur
 En
attente (SLEEP) signifie en attente de
ressources autre que le processeur .
 C'est
le système d'exploitation qui détermine et modifie
l'état d'un processus sous l'effet des événements .
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 8
Etats d'un processus
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 9
Structure d'un processus : BCP ou PCB
 Un
processus est représenté par une structure appelé BCP
(Block Control Processus) :
 Etat
du processus (prêt, exécution)
 Un
numéro qui le désigne et le distingue des autres
processus du système
 La
valeur ou le compteur ordinal qui indique l'adresse de
la prochaine instruction exécutée par le processus .
 Les
registres : c'est une structure de données
concernant l‘exécution du processus
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 10
Structure d'un processus


Les registres et le compteur ordinal est sauvegardé lorsque le
processus quitte l'état "En execution" et seront rechargés une fois
que le processus revient à son état de "En execution". Le BCP
contient également
Les informations relatives à la quantité mémoire allouée au processus
et les pointeurs vers ces zones mémoires



Des informations qualitatives définies par le temps d'unité central
utilisé, et le temps restant autorisé
Des informations relatives aux opérations d'E/S du processus tel
que : Périphériques alloués, opération en attente de complétion,
fichiers ouverts, ...
Des informations concernant les files d'attente où figure le
processus tel que le numéro de priorité, des pointeurs vers des
files d'attente, ...
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 11
UC pour plusieurs processus
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 12
Opération sur un processus

C'est l'ensemble des
opérations qui permettent
de créer et de manipuler
les processus . L'ensemble
de ces opérations comprend
1.
Création
2.
Destruction
3.
Mise en attente / Réveiller
4.
Suspendre / Reprendre
5.
Changement de priorité
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 13
Création
 Un
processus peut en créer un autre. Le premier est
appelé père et le second fils. Le processus peut à son tour
créer d'autres processus. Il devient le père de ses
processus ... Ainsi on construit un graphe des autres
processus ou figure une racine
 Dans
le système Unix de nouveaux processus sont créés
par une primitive du système d'exploitation -> fork()
 La
combinaison de fork() et d'exec() permet d'exécuter
des processus en parallèles
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 14
Création d’un Processus

Création de processus permanents au démarrage du système (démons)


email, cron (séquencement de tâches, Unix),…
Création d’un processus par un autre processus


Hiérarchie de processus = groupe.
fork (appel système Unix):

processus fils, copie exacte du processus père (même programme,
mêmes données, mêmes fichiers, mêmes variables
d’environnement…), mais espaces d’adressage différents,

en pratique, le processeur fils pointe sur les données du processus
père, et la copie d’une adresse n’a lieu qu’en cas d’écriture,

puis exécution de l’appel système exec pour charger en mémoire
le nouveau programme.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 15
Création d’un Processus

Après appel de fork, comment
les processus font-ils pour
savoir s’ils sont père ou fils ?



Chaque processus a un
identifiant (PID),
fork renvoie 0 au fils, et le
PID du fils au père,
Le programme du processus
père peut alors exploiter
cette valeur.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 16
Destruction :

Il se termine normalement après l'exécution de la dernière
instruction du programme associé .

Il peut exécuter une instruction d'auto-destruction Ex : exit(...).

Un processus peut-être détruit par un autre processus Ex : kill(...)

La relation hiérarchique entre un processus et ses descendants est
utilisé essentiellement pour contrôler la destruction des processus.
Généralement la destruction d'un processus entraine :
1.
La libération des ressources qui lui avait été affecté .
2.
Le BCP est effacé . Il disparaît de la table et des files d'attente du
système .
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 17
Mettre en attente et réveiller
 Utilisé
lorsqu'un processus a besoin de ressources autre
que l'unité centrale (le processeur). Pour poursuivre son
exécution il est alors placé par le système dans l'état en
attente.
 Comment
un scheduler sait-il qu'un processus demande
une ressource ?
 Lorsque
plus tard le système d'exploitation est en mesure
de lui affecter la ressource demandée il réveille le
processus en attente et le met dans l'état prêt. Cela
signifie que le processus dispose maintenant de la totalité
des ressources sauf le micro-processeur.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 18
Suspendre / Reprendre
 Il
s'agit d'un retrait temporaire ou passager d'un
processus . L'opération emmène un processus d'un état
quelconque à l'état suspendu . Lorsque la reprise
intervient le processus passe de l'état suspendu vers
l'état prêt ou en attente . Les systèmes d'exploitation ne
laissent jamais trop longtemps un processus dans l'état
suspendu par souci d'équité.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 19
Changement de priorité


Il se fait en modifiant l'état du
champ correspondant dans le
BCP.
Cette
opération
est
effectuée par le système
d'exploitation.
Diagramme d'état
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 20
Ordonnancement et file d'attente
 Dans
un système multi-programmé mono-processeur on
définit une procédure système, l'ordonnanceur qui définit
l'ordre dans lequel les processus "prêts" accèdent à la
ressource UC et la durée pendant laquelle ils l'utilisent.
 Le
terme Ordonnanceur a un sens plus large parce qu'il
peut désigner une processus qui demande des ressources
telles que :
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 21
Ordonnancement
 Le
Système d'Exploitation doit choisir le processus à
exécuter. C’est l’Ordonnanceur (scheduler) qui doit choisir
le processus.
 Il
doit faire son choix en fonction de : Equité (assurer que
chaque processus reçoit sa part du temps processeur),
efficacité (utiliser le temps processeur à 100%), temps
de réponse (minimiser le temps de réponse pour les
utilisateurs en mode interactif), temps d’exécution
(minimiser le temps de réponse pour les qui travaille par
lots), rendement
(maximiser le nombre de travaux
effectués en une heure).
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 22
Tourniquet (round robin)


Chaque processus possède un intervalle de temps « quantum » pendant
lequel il est autorisé à tourner, ceci régulièrement sauf s’il est en E/S
dans ce cas on passe à un autre. La difficulté est de régler le quantum,
une table garde les processus prêts, la commutation prend du temps
(sauvegarde registre, mappage mémoire, etc). Cette commutation de
contexte prend par exemple 5ms, le quantum 20ms, donc 20% du temps
est gâché pour la gestion du système (overhead).
On peut augmenter le quantum à 500ms, mais dans ce cas si 10
utilisateurs tapent simultanément sur « return » le premier tourne ½
seconde, le 10eme au bout de 5s. Un bon compromis est 200 ms.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 23
quantum
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 24
Priorité



Chaque processus possède un niveau de priorité, on lance le processus
avec la priorité la plus forte. Mais pour empêcher d’exécuter les
processus avec priorités élevées, l’Ordonnanceur diminue à chaque top
horloge cette priorité.
Sous Unix commande (nice)
Gestion dynamique, où la priorité est 1/f , f étant le quantum utilisé
lors de la dernière utilisation. Cas où des process font beaucoup
d’E/S.

Exemple 2ms  p=50 , 50msp=2, 100p=1

Généralement les processus sont groupés par classes de priorité.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 25
priorité
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 26
Ordonnancement
 Ordonnancement
du plus court.
On donne préférence au processus les plus courts, ceci
étant fait par des estimations issues du passé, et des
calculs de moyenne pondérée.
 Ordonnancement
garanti
Le principe st de donné de façon équitable dans ce cas aux
utilisateurs, en fonction du paramètre UC. Dans le cas du
temps réel, un processus qui doit se terminer dans les 10S
et plus prioritaire que celui dans 10mn.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 27
Exemple d’ordonnancement
 Dans
un système de traitement par lots, les processus
sont exécutés l’un à la suite de l’autre selon l’ordre
d’arrivée.
 Dans
un système en temps partagé, le processeur est
alloué à chaque processus pendant au plus un quantum
de temps. Au bout de ce quantum, le processeur est
alloué à un autre processus.
 Un
système multiprogrammé gère le partage des
ressources (mémoire, processeur, périphériques…) de
l’ordinateur entre plusieurs programmes chargés en
mémoire.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 28
Critères d’Ordonnancement
 Utilisation
processeur.
du processeur: maximiser l’utilisation du
 Débit
des processus: maximiser le nombre de processus
qui terminent leur exécution par seconde.
 Temps
total d’exécution d’un processus.
 Temps
d’attente d’un processus (dans la Ready Queue).
 Délai
de réponse (commandes interactives).
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 29
Algorithmes d’Ordonnancement

Selon les applications de
l’ordinateur, on utilise
différents algorithmes:
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 30
First Come, First Served (FCFS)
 Le
processus «choisi» comme actif est celui qui se trouve
le plus anciennement dans la liste des processus éligibles
 Ordonnanceur
 Simple

non préemptif
à implémenter
Peu performant
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 31
Shortest Job First (SJF)
 Le
processus «choisi» comme actif est celui qui va
consommer le moins de temps processeur
 difficile

à prévenir l’avenir
Effectuer des estimations à partir du « passé »

Ordonnanceur non préemptif

Difficile à implémenter

Le meilleur ordonnanceur non préemptif
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 32
Priorité
 Affecter


à chaque processus une priorité

Priorité fixe : statique

Priorité variable : dynamique
Affectation de la priorité :

Décidé par l’administrateur

En fonction des ressources demandés par le processus
Préemptif/Non préemptif
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 33
Round-Robin
 Une
période de temps (quantum)
 processeur

est allouée à chaque processus

Allocation cyclique

Partage de temps (time sharing)
Le quantum de temps

Fixé par l’administrateur

Peut varier selon la priorité du processus
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 34
Algorithmes d’ordonnancement
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 35
Systèmes préemptifs
 Dans
les systèmes d'exploitation préemptifs,
l'ordonnanceur a la possibilité d'interrompre de luimême le processus en cours d'exécution (sur
déclenchement d'une interruption horloge) pour attribuer
le processeur à un autre processus, alors que dans les
systèmes d'exploitation non préemptifs, c'est au
processus courant de rendre la main à l'ordonnanceur.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 36
Ordonnancement peut être
 Non
préemptif :
 un
processus s ’exécute jusqu ’à ce qu ’il se termine ou se
bloque en attente d ’un évenement extérieur
 Préemptif
:
 un
processus peut être interrompu à tout moment de son
éxécution pour laisser le cpu à un autre.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 37
Processus Windows Processus Windows - Introduction





Windows est architecturé en services (processus) fonctionnant en
arrière-plan.
Il est possible d'afficher la liste des processus en cours dans le
gestionnaire des tâches en appuyant simultanément sur
«CTRL+ALT+Suppr», puis en cliquant sur l'onglet Processus.
l'appelant dans le menu démarrer / exécuter avec la commande
taskmgr.exe.
La fenêtre affiche alors la liste des processus en cours d'exécution
et les ressources qui leur sont alloués.
La présence de vers, virus, et chevaux de Troie sur le système est
généralement trahie par la présence de processus suspects.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 38
Le gestionnaire des tâches




•
Applications: permet de voir les
applications en cours de fonctionnement
et d'agir sur ces dernières en activant
le menu contextuel avec le bouton droit.
Processus :permet de voir la liste des
processus en cours d'exécution et de
donner des informations relatives àleur
fonctionnement
Performances: donne des
représentations graphiques de
l'utilisation du processeur et du fichier
d'échange
Mise en réseau: donne des statistiques
d'utilisation de la bande passante sur les
interfaces réseaux de l'ordinateur
Utilisateurs :affiche des informations
sur les utilisateurs ayant accès à
l'ordinateur et le statut des sessions.
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 39
Gestionnaire des tâches :Applications
 Applications:
 Basculer
Il est alors possible de:
vers la tâche
 Mettre
fin à la tâche
 Réduire
la fenêtre de la tâche
 Agrandir
 Mettre
la fenêtre de la tâche
la tâche au premier plan
 Afficher
le processus correspondant à la tâche
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 40
Gestionnaire des tâches :Processus
 Par
défaut le gestionnaire des tâches affiche les
informations suivantes:
 Nom

de l'image (nom de l'exécutable)
Nom de l'utilisateur
 Processeur
 Util.
Mémoire
 Il
est possible d'afficher d'autres indicateurs, parmi les
25 indicateurs disponibles, en allant dans «Affichage /
Sélectionner les colonnes»
EPID-CPI-ISAIP
Philippe Bancquart - mise à jour 24/02/2005 - page 41
Téléchargement