Vous êtes sur la page 1sur 27

GESTION PROCESSUS

Prof Ahmed EL OIRRAK


Dépt D’Informatique, SMI S4
Faculté des sciences Semlalia
PROCESSUS
Les processus correspondent à l’exécution de
tâches:
les programmes des utilisateurs, les entrées-sorties… par
le système. Un système d’exploitation doit en général
traiter plusieurs tâches en même temps. Comme il n’a, la
plupart du temps, qu’un processeur, il résout ce problème
grâce à un pseudo-parallélisme. Il traite une tâche à la
fois, s’interrompt et passe à la suivante. La commutation
des tâches étant très rapide, l’ordinateur donne l’illusion
d’effectuer un traitement simultané.
HIÉRARCHIE DES PROCESSUS
PCB = PROCESS CONTROL BLOCK
 Les processus sont composés d’un espace de travail en
mémoire formé de 3 segments : la pile, les données et le
code et d’un contexte.
PCB = PROCESS CONTROL BLOCK
PCB = PROCESS CONTROL BLOCK
 Le code correspond aux instructions, en langage
d’assemblage, du programme à exécuter.
 La zone de données contient les variables globales ou
statiques du programme ainsi que les allocations
dynamiques de mémoire
PCB = PROCESS CONTROL BLOCK
la pile d’un processus
_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
_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
normalement séparées
_ Les informations relatives à ces piles (base, pointeur…) doivent
aussi être sauvegardées au moment de la commutation de contexte
PCB = PROCESS CONTROL BLOCK
 La position en mémoire de l'instruction à exécuter est
donnée par le compteur ordinal ou compteur de
programme, dont le contenu est mis à jour durant
l'exécution de chaque instruction. 
PCB = PROCESS CONTROL BLOCK
 Registre instruction = contient l’instruction en cours
d’exécution, elle demeure dans ce registre pendant toute
la durée de son exécution.
 Compteur ordinal = contient le moyen de calculer
l’adresse de la prochaine instruction à exécuter.
 Registre adresse = contient l’adresse de la prochaine
instruction à exécuter.
 Décodeur de fonction = associé au registre instruction,
il analyse l’instruction à exécuter et entreprend les actions
appropriées dans l’UAL ou dans la mémoire centrale.
PCB = PROCESS CONTROL BLOCK
PCB = PROCESS CONTROL BLOCK
 pointeur: les PCBs sont rangés dans des listes
enchaînées
 – état de processus: ready, running, waiting…

 – compteur programme: le processus doit reprendre à l


‟instruction suivante
 – autres registres UCT

 – bornes de mémoire

 – fichiers qu‟il a ouvert

 – etc.,
UNIX PROCESSUS
 Le contexte d'un processus:
 C’est l'ensemble des informations dynamiques qui représentent l'état d'exécution d'un
processus.
C.à.d. les informations du processus interrompu qui une fois sauvegardées, puis restaurées (ou
rechargées) plus tard, permettent de reprendre l’exécution du processus. Exemple: les tâches
d’une secrétaire.

 Le contexte d’un processus est représenté dans son vecteur d’état appelé le P.C.B
(Processus Contrôle Block).

Le P.C.B. contient  2 types d’informations :

1) des informations utilisées par le S.E pour gérer les processus, regroupées dans le PSW,(Program
Status Word) : ensemble des bits qui reflètent l’état du processus et qui sont consultés au moment de
la commutation de contexte. PSW comporte: état (actif/attente/), pouvoir(maître/esclave), condition
d’interruption, priorité, etc..

2) des informations utilisées par le processus :


 Les registres ( entre autre le compteur ordinal)
 La pile de travail 12
 L’allocation mémoire
UNIX PROCESSUS
 Exemple dans UNIX :
L’environnement d’un processus dans Unix appelé aussi contexte, comprend entre autre :
 un numéro d’identification unique appelé PID (Process IDentifier) ;
 le numéro d’identification de l’utilisateur qui a lancé ce processus, appelé UID (User
IDentifier), et le numéro du groupe auquel appartient cet utilisateur, appelé GID (Group
IDentifier) ;
 le répertoire courant ;
 les fichiers ouverts par ce processus ;
 le masque de création de fichier, appelé umask ;
 la taille maximale des fichiers que ce processus peut créer, appelée ulimit ;
 la priorité ;
 les temps d’exécution ;
 le terminal de contrôle, c’est−à−dire le terminal à partir duquel la commande a été
13
lancée.
ETATS D’UN PROCESSUS
COMMUTATION(SWITCHING )
 appelé aussi 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 le PCB de 0
– sauvegarder le PCB de 0
– reprendre le PCB de 1, qui avait été sauvegardé avant
– remettre les registres d’UCT, compteur
d’instructions etc. dans la même situation
qui est décrite dans le PCB de 1
COMMUTATION PROCESSUS
ORDONNANCEURS (SCHEDULERS)
L’ordonnanceur à court terme est exécuté
très souvent (millisecondes), Il faut donc
que ça aille très vite
– typiquement de 1 à 1000 microsecondes

L’ordonnanceur à long terme doit être


exécuté beaucoup plus rarement: il contrôle
le niveau de multiprogrammation

– doit établir une équilibre entre les travaux liés à


L’UCT et ceux liés à l’E/S de sorte à ce que les
ressources de l’ordinateur soient bien utilisées
CONTEXTE PROCESSUS
 Le contexte est formé des données nécessaires à la
gestion des processus
 La commutation des tâches, le passage d’une tâche à une
autre, est réalisée par un ordonnanceur au niveau le plus
bas du système. Cet ordonnanceur est activé par des
interruptions d’horloge, de disque, de terminaux.
ETATS D’UN PROCESSUS
Au fur et a mesure qu’un processus s’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 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

– terminé: fin d’exécution


NOTION DE PRÉEMPTION
Définition : la préemption est la mise en attente forcée d’un processus.

Un processus spécial s’occupe de faire « tourner » les processus qui sont en


running : c’est l'ordonnanceur ou scheduler en anglais. La gestion de la
préemption est appelé l’ordonnancement ou le scheduling.
Les critères de choix appliqué par le S.E. déterminent les performances du
système.

20
PROCESSUS UNIX
Informations sur les processus UNIX
S : état du processus, S – Sleeping, R – Runnable
UID : numéro de l’utilisateur
PID : numéro du processus
PPID : numéro du processus père
PRI : priorité du processus
ADDR : l’adresse mémoire du processus
SZ : taille de l’image mémoire du processus
WCHAN : l’adresse de l’évènement si processus en attente
TIME : durée de l’exécution du processus
CMD : nom de la commande à l’origine de la création du processus

goedel> ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 4518 969 968 0 75 0 - 811 rt_sig pts/1 00:00:00 tcsh
000 R 4518 1029 969 0 74 0 - 790 - pts/1 00:00:00 ps 21
PROCESSUS
EXEMPLE DE CRÉATION – SIMPLE 1

#include <stdio.h>
#include <unistd.h>
int main()
{
printf(“Bonjour de %d \n ”, getpid());
fork();
printf(“Fin de %d \n ”, getpid());
}

22
CREATION PROCESSUS NODEJS
Qu’est-ce qu’un processeur multi-cœurs ?
Un processeur multi-cœur est composé de
deux ou plusieurs cœurs indépendants, chacun
étant capable de traiter des instructions
individuellement. Un processeur dual-core
contient deux cœurs, un processeur quad-core
quatre cœurs, un processeur hexa-core six
cœurs…
Un processeur multi-cœur permet à l’utilisateur d’exécuter plusieurs tâches
en même temps sans subir de ralentissements ! Autrement dit, les cœurs
sont utiles si vous utilisez plusieurs logiciels à la fois. Quand un programme
(un logiciel de retouche photo par exemple) est en cours d’exécution et traité
par un cœur, vous pouvez solliciter un autre cœur pour utiliser votre
navigateur Web ou écrire un document, sans subir de ralentissements.
Avoir plusieurs cœurs est aussi utile lorsque vous utilisez un logiciel qui peut
utiliser plus d’un cœur. En effet, la majorité des programmes est conçue pour
n’utiliser qu’un seul et unique cœur. Un logiciel qui est compatible avec le
multi-cœur fonctionne lui beaucoup plus rapidement puisqu’il peut exécuter
plusieurs instructions en même temps. C’est le cas notamment des logiciels
de retouche photo mais aussi certains jeux vidéo.
Les cœurs sont-il révélateurs de la puissance d’un
processeur ?
Oui, mais ce n’est pas le seul indicateur ! Le nombre de cœurs
est certes le premier indicateur de la puissance d’un processeur
mais il ne faut pas se focaliser uniquement sur cette donnée. il
faut regarder d’autres caractéristiques, notamment chez les
processeurs Intel Core : la fréquence, la mémoire cache, les
technologies utilisées…

Vous aimerez peut-être aussi