0% ont trouvé ce document utile (0 vote)
188 vues7 pages

Gestion des Processus en OS

Transféré par

Issouf Boubacar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
188 vues7 pages

Gestion des Processus en OS

Transféré par

Issouf Boubacar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 2: les processus

 Concepts des processus


 Ordonnancement des processus
 Opérations sur les processus
 Coopération des processus
 Communication interprocessus

2.1. Concepts des processus

2.1.1. Le processus

Le processus est un programme en exécution. Un programme en lui-même n’est pas un


processus; un programme est une entité passive alors qu'un processus est une entité active.

Un processus comprend:

 compteur d'instructions (program counter)


 la pile (stack) : contenant variables locales, paramètres des méthodes
 section de données (data section) : contenant des variables globales

2.1.2. Les états d’un processus

Comme un processus s’exécute, il change de l'état.

L’état bloqué est l’état d’attente d’une ressource autre que le processeur. Dès que la
ressource est obtenue, le processus est donc à même de reprendre son exécution. Il est dans
l’attente du processeur, de nouveau l’état prêt.

Le passage de l’état prêt vers l’état élu constitue l’opération d’élection.

Le passage de l’état élu vers l’état bloqué est l’opération de blocage.

Le passage de l’état bloqué vers l’état prêt est l’opération de déblocage.

1
2.1.3. Bloc de contrôle de processus

Chaque processus est représenté dans le système d'exploitation par un bloc de contrôle de
processus (process control bloc : PCB) également appelé un bloc de contrôle des tâches. Il
contient de nombreux éléments d'information associée à un processus spécifique,
notamment :

 l’état du processus :
 compteur d’instruction : Le compteur indique l'adresse de la prochaine instruction à
exécuter pour le processus
 registres : permettant de sauvegarder l’état du processus en cas d’interruption et de
le restaurer plutard au besoin
 pointeur : pointe l’information (de la priorité du processus) utilisée dans
l’ordonnancement
 information de gestion de la mémoire :
 information d’E/S : information contenant la liste des périphériques d’E/S alloués au
processus, liste des fichiers ouverts, etc…

2
Le PCB sert simplement comme référentiel pour toute information qui peut varier d'un
processus à un autre.

Commutation du processeur d’un processus à un autre :

2.1.4. Threads

 Un thread est un processus léger, résultat de la décomposition d’un processus en


plusieurs entités exécutables de façon indépendante ou isolée.
 Le thread est l’élément primordial lorsque l’on parle de multitâche.
 Un OS capable de gérer plusieurs processeurs différents (multiprocessing) peut
exécuter des threads sur des processeurs différents.
 Un OS non capable de gérer plusieurs processeurs peut exécuter chaque thread en
affectant cycliquement du temps CPU à chacun de ces threads.

3
2.2. Ordonnancement du processus

L'objectif de multiprogrammation est d'avoir un processus en cours d'exécution à tout


moment, de manière à maximiser l'utilisation du processeur.

L'objectif de multitâche est de multiplexer le CPU entre les processus de façon que les
utilisateurs puissent interagir avec chaque programme en cours d'exécution.

Un système monoprocesseur peut avoir qu'un seul processus en cours. Si plusieurs


processus existent, le reste doit attendre jusqu'à ce que le CPU soit libre pour être
reprogrammé.

2.2.1. La queue d’ordonnancement

 Job queue : ensemble de tous les processus dans le système.


 Ready queue : ensemble de tous les processus résidant dans la mémoire principale,
prêts et en attente d'exécution.
 Device queue : ensemble de processus en attente d'un dispositif d'E / S.

2.2.2. Ordonnanceur

Ordonnanceur à long terme (ou job scheduler) : sélectionne quel processus sera transferes
dans la file d’attente des processus prêts.

Ordonnanceur à court terme (ou CPU scheduler) : sélectionne le suivant processus à être
exécuté et alloue le CPU.

Le processus peut être soit :

 Processus de I/O-bound : passe plus de temps à faire des opérations d’E / S que de
calcul
 Processus de CPU-bound : passe plus de temps à faire des calculs que des opérations
d’E / S

4
2.3. Opérations sur les processus

Les processus dans le système peuvent exécuter simultanément, et ils doivent être créés et
supprimés de façon dynamique. Ainsi, le système d'exploitation doit fournir un mécanisme
pour la création et la suppression des processus.

2.3.1. Création des processus

 Un processus peut créer plusieurs nouveaux processus, via un appel système créer-
processus, au cours de l'exécution.
 Le processus créateur est appelé processus parent
 les nouveaux processus sont appelés les enfants de ce processus.
 Chacun de ces nouveaux processus peut à son tour créer d'autres processus, formant
ainsi un arbre de processus.

Partage des ressources :

 Le processus parent partage ses ressources () avec ses enfants


 Ou bien le processus parent partage une partie de ses ressources avec ses enfants
 Ou bien le processus parent ne partage pas ses ressources avec ses enfants

Exécution :

 Parent et enfants exécutent simultanément.


 Parent attend jusqu'à ce que les enfants terminent.

Il ya aussi deux possibilités en termes de l'espace d'adressage du nouveau processus:

 Le processus enfant est un duplicata du processus parent.


 Le processus enfant a un programme chargé.

Exemples UNIX/LINUX

 fork appel système crée un nouveau processus


 Appel système exec utilisé après fork pour remplacer l'espace mémoire du processus
avec un nouveau programme.

5
2.3.2. Terminaison des processus

 Un processus se termine quand il termine l'exécution de sa dernière instruction et


demande au système d'exploitation de le supprimer en utilisant l'appel système exit.
 À ce moment, le processus peut renvoyer des données à son processus parent (via
l'appel système wait).
 Toutes les ressources affectées au processus sont désalloués par le système
d'exploitation.

Le processus parent peut mettre fin à l'exécution de l'un de ses enfants, pour diverses
raisons, telles que celles-ci:

 L'enfant a dépassé l’utilisation d'une partie des ressources qu'il lui a été alloué. Cela
implique que le parent doit avoir un mécanisme pour inspecter l'état de ses enfants.
 La tâche assignée à l'enfant n’est plus nécessaire.
 Le parent est sorti, et le système d'exploitation ne permet pas à un enfant de
continuer si son parent se termine.

2.4. Coopération des processus

 Les processus en exécution simultanée dans le système d'exploitation peuvent être


soit processus indépendants ou processus coopérants.
 Un processus est indépendant s’il ne peut affecter ou être affecté par les autres
processus en exécution dans le système.
 D'autre part, un processus coopère s’il peut affecter ou être affecté par les autres
processus en exécution dans le système.
 De toute évidence, tout processus qui partage des données avec d'autres processus
est un processus coopérant.

Avantages :

Partage de l'information : plusieurs utilisateurs peuvent être intéressés par le même


élément d'information (par exemple, un fichier partagé).

6
Accélération du Calcul: Si nous voulons une tâche particulière de courir plus vite, nous
devons la diviser en sous-tâches qui seront exécutées en parallèle.

Modularité: Nous pourrions construire le système de façon modulaire.

Commodité: un utilisateur individuel peut avoir de nombreuses tâches sur lesquelles


travailler en même temps. Par exemple, un utilisateur peut faire l'édition, l'impression, et la
compilation en parallèle.

L'exécution simultanée des processus coopérants nécessite des mécanismes qui permettent
à un processus de communiquer avec l'autre et de synchroniser leurs actions.

2.5. Communication interprocessus

Mécanisme pour les processus de communiquer et de synchroniser leurs actions.

IPC fournit deux opérations:

 envoyer (message)
 recevoir (message)

Si des processus P et Q désirent communiquer, ils doivent :

 établir une liaison de communication entre eux


 échanger des messages via envoyer (message) / recevoir (message)

Vous aimerez peut-être aussi