Vous êtes sur la page 1sur 43

Système d’Exploitation

Cours 04: La Gestion


des Processus

1
Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Plan du cours

Contexte &
Notion de Implémentation

Cours 3: La gestion des Processus


États des
Processus de processus
processus

Les opérations sur


les processus Les thread
et le parallélisme

Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Section 1 : Notion de
Processus

Section 1: Notion de processus


Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Programme vs processus 1

Programme ≠ Processus
Instance d’une tâche
description en cours d’éxecution
statique
 Paramètres d’entrées

Cours 3: La gestion des Processus


 Résultat
 Séquence d’appels de fonctions
(adresses de retour)
 Variables locales

 new
 malloc

 Bibliothèques

Section 1: Notion de processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Qu’est ce qu’un Processus?


2

 Processus
o Le terme a été introduit dans les années 60 pour généraliser “job concept”.

Cours 3: La gestion des Processus


o Instance de programme binaire

o Différents processus peuvent exécuter différentes instances du même programme.


 Au minimum, l'exécution du processus nécessite les ressources suivantes:
o Mémoire pour contenir le code de programme et les données.
o Un ensemble de registres CPU pour supporter l'exécution.
•  Nécessité de la gestion
•  Unité de base d’éxecution dans le SE (thread)

Section 1: Notion de processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Processus et ressources 3

• SE: Interface entre le programme et le matériel.

Cours 3: La gestion des Processus


Processus = Processeur virtuel

CPU, Mémoire

Ressources virtualisation

Section 1: Notion de processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation
Processus et ressources

SE: Gère l’utilisation des resources de processus (processor cycles, main memory, I/O devices) 4

Cours 3: La gestion des Processus


Tables de Ressources
Tables de mémoire
oGarder une trace de la mémoire physique et de la mémoire virtuelle par processus
oAllocation de l'espace de permutation aux processus
oAttributs de protection
Tables d'E/S
oÉtat de l'opération d'E/S en cours
oEmplacement de mémoire utilisé comme source ou destination de l'opération
Tables de fichiers
o Les informations sur l'emplacement et les attributs des fichiers peuvent être gérées
par le noyau
oToutes les tables de ressources du SE sont également sujettes à la gestion de la
mémoire
Section 1: Notion de processus Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Section 1: Notion de processus 5

Cours 3: La gestion des Processus


Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Section 2 :Contexte et
états des processus

Section 2 : Contexte et états des processus Copyright © 2019, OUARED Abdelkader


Contexte d’un processus
Système d’Exploitation

(Process Image)
6
C’est l’ensemble des informations que les actions du processus peuvent consulter ou
modifier.
Ces informations sont :
1. Contexte du processeur (mot d’état et registres généraux) ;

Cours 3: La gestion des Processus


2. Contexte du mémoire : c’est l’espace de travail qui comprend :
 Les segments procédures
 Les segments données
 Les piles d’exécution
3. Ensembles d’attributs du processus :
 Nom : nom interne désignant le PCB du processus, qui sera discuté plus tard
 Priorité : en fonction du scheduling
 Droits : opérations permises par le processus

Section 2: Contexte et états des processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Relations entre processus


7

 Chaque processus dispose de son propre


espace mémoire

Cours 3: La gestion des Processus


 Ne pas perturber les autres (sécurité)

 Différents flots d'exécution partagent


les même ressources des processus

Section 2: Contexte et états des processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Modes d’exécution des processus


8

Afin d’exécuter des programmes, il faut mettre à leur disposition


les ressources nécessaires à leur exécution :
 Processeur

Cours 3: La gestion des Processus


Cours 3: La gestion des fichiers
 Espace mémoire

 Données nécessaires

Section 2: Contexte et états des processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Etats des processus


Cycle de vie d’un processus 9

5 états

Cours 3: La gestion des Processus


Section 2: Contexte et états des processus Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Unix SVR4: Process States


10

Cours 3: La gestion des Processus


Section 2: Contexte et états des processus Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Section 2: Contexte et états des 11


processus

Les informations nécessaires pour


implémenter un processus ?

Cours 3: La gestion des Processus


Débat
 Une mémoire virtuelle
 un contexte d'exécution

Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Section 3 :
Implémentation des processus

Section 3 : Implémentation des processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Bloc de contrôle de processus (PCB)


ou descripteur de processus 12

Cours 3: La gestion des Processus


Représentation dans OS
Processus Bloc de contrôle
de processus

Section 3 : Implémentation des processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Processus: implémentation
13

PCB
Le Process Control Block (PCB) est une
structure de de données qui contient toutes

Cours 3: La gestion des Processus


les informations nécessaires à la bonne
exécution du processus.
Les PCB sont stockés dans une table des
processus

Section 3 : Implémentation des processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Process control block


14
• Process state: The state may be new, ready running, waiting, halted, and so on.
• Program counter: The counter indicates the address of the next instruction to be executed for this
process.
• CPU registers: The registers vary in number and type, depending on the computer architecture. They
include accumulators, index registers, stack pointers, and general-purpose registers, plus any condition-

Cours 3: La gestion des Processus


code information. Along with the program counter, this state information must be saved when an interrupt
occurs, to allow the process to be continued correctly afterward
• CPU-scheduling information: This information includes a process priority, pointers to scheduling queues,
and any other scheduling parameters.
• Memory-management information: This information may include such information as the value of the
base and limit registers, the page tables, or the segment tables, depending on the memory system used by
the operating system.
• I/O status information: This information includes the list of I/O devices allocated to the process, a list of
open files, and so on.
In brief the PCB simply serves as the repository for any information that may vary from process to process.

Section 3 : Implémentation des processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation
Windows: Process Control Block
15

Cours 3: La gestion des Processus


Section 3 : Implémentation des processus Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Section 3 : Implémentation de processus


16

Cours 3: La gestion des Processus


Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Section 4 :Opérations sur


les processus

Section 4 : déroulement d’une interruption Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Opérations sur les processus


17

• Un processus est vu comme un objet par le système d’exploitation.


• un identificateur unique (PID)
• peut appliquer les opérations suivantes :

Cours 3: La gestion des Processus


• Création
• Destruction
• Blocage
• Réveil
• Activation
• Désactivation
• Suspension …
• Un noyau de système se compose de toutes ces opérations

Section 4 : Opérations sur les processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Création de processus
18

Cette opération consiste à :


1. - Allouer un descripteur à un processus (PCB)

Cours 3: La gestion des Processus


2. - Affecter un identificateur unique au processus (PID)
3. - Initialiser le descripteur (PCB) : programme à exécuter, pile
d’exécution, mémoire centrale utilisé par le programme et
les données du processus, état du processus, priorité du
processus, autres ressources…etc

Section 4 : Opérations sur les processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation
Création de processus
 Un processus peut créer plusieurs nouveaux processus en exécutant 19
des appels système de création de processus.
 Le processus effectuant la création est dit processus père, tandis que les nouveaux
processus sont ses fils.
 Chacun des nouveaux processus peut encore créer d’autres processus (fils) créant
ainsi un arbre de processus. Un processus père doit toujours connaître l’identité de ses

Cours 3: La gestion des Processus


fils.

ps (i.e., process status)

Section 4 : Opérations sur les processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Windows: Processes during System Start


20

Cours 3: La gestion des Processus


fichiers batch: Net stop nom_du_servic et Net start nom_du_servic
Section 4 : Opérations sur les processus Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Destruction de processus
21

La destruction d’un processus ne peut être effectuée que par le processus


père ou un processus système.
Cette opération consiste à :

Cours 3: La gestion des Processus


- Libérer les ressources occupées par le processus
- Détruire ou non la descendance du processus (Unix ne détruit
pas les processus fils)
- Libérer son descripteur (PCB), qui pourra être réutilisé
- Le PID est supprimé mais ne peut plus être réutilisé

Section 4 : Opérations sur les processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Destruction de processus
22

o Arrêt volontaire

Cours 3: La gestion des Processus


o Erreur

o Erreur fatale

Section 4 : Opérations sur les processus Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Processus suspendu
23
• Le processeur est plus rapide que I/O, alors tous les processus puissent attendre le périphérique d'E / S.

• Échangez ces processus sur disque (Swap) pour libérer plus de mémoire et utiliser le processeur sur plus de

processus.

Cours 3: La gestion des Processus


• L'état bloqué devient l'état de suspension quand il est échangé sur le disque
• Deux nouveaux états
• Blocked/Suspend

• Ready/Suspend

Les raisons:
• Swapping:
• L'OS doit libérer de l'espace Pour exécuter le processus (état prêt).
• Causes SE:
• Le système d'exploitation suspendue le processus défectueux ou à cause d’un problème.

Section 4 : Opérations sur les processus Copyright © 2019, OUARED Abdelkader


TP: Commandes Linux de base: Système d’Exploitation

La gestion des processus


24

Cours 3: La gestion des Processus


Section 4 : Opérations sur les processus Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Section 4 : Opérations sur les processus

Cours 3: La gestion des Processus


Copyright © 2019, OUARED Abdelkader
Système d’Exploitation

Section 5 :Les thread et le


parallélisme

Section 5 : Les thread et le parallélisme Copyright © 2019, OUARED Abdelkader


Système d’Exploitation

Les thread et le parallélisme


25

 Un thread (appelée aussi processus léger ou activité)


est un fil d'instructions (un chemin d’exécution)
à l'intérieur d'un processus

Cours 3: La gestion des Processus


début

Un thread est donc une portion de code capable


Vérifier la
de s'exécuter en parallèle à d'autres traitements. présence d’une
demande E/S
Il existe deux approches d’implémentation :
 bibliothèques utilisateur (API),
 supportés au-dessus du noyau (appels système). Est prêt

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

Avantages des threads


26

- Commutation de contexte moins coûteuse ;


- La commutation de contexte ne nécessite pas un travail de
gestion mémoire (on utilise le même espace d’adressesdébut
du processus

Cours 3: La gestion des Processus


qui contient le thread).

Vérifier la
présence d’une
demande E/S

Est prêt

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

Dans un noyau multithreads :


27

 Les threads fonctionnent comme les processus : ils ont des


états (bloqué, prêt, en exécution), se partagent l’UC et un seul

Cours 3: La gestion des Processus


thread est actif (en exécution) à la fois. début

 Chaque thread dans un processus possède son propre compteur


Vérifier la
d’instructions et sa propre pile. présence d’une
demande E/S

 Les threads peuvent créer des fils.


 Si un thread est bloqué, un autre peut s’exécuter. Est prêt

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

L’exécution « simultanée »
28

La concurrence, qu’est-ce que c’est ?


«exécution concurrente» signifie « exécution simultanée ».

Cours 3: La gestion des Processus


Nous parlerons de concurrence lorsque plusieurs processus
début
s’exécutent en même temps.
Vérifier la
présence d’une
demande E/S

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

Que faire avec fork/join ?


29

Les mécanismes pour effectuer plusieurs tâches de façon concurrente, appelé


« fork ») et « join ».

Cours 3: La gestion des Processus


Plusieurs librairies implémentent cette idée: début
(Intel Thread Building Blocks, Microsoft Task Parallel Library, Java 7
ForkJoin).
Vérifier la
présence d’une
Nous pouvons maintenant poser des questions de nature plus demande E/S:
algorithmique

• Comment utiliser ces mécanismes pour obtenir un gain de performance ?

• Comment prédire le gain de performance que l’on peut espérer ?

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

Process Tree
30

Fork and Join Framework


Tâche -> Sous Tâches

Cours 3: La gestion des Processus


o diviser pour régner début
o Comme map and reduce
o Obtenir un gain de performance
Vérifier la
o Contraintes de dépendances entre tâches présence d’une
demande E/S

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

Exemple: Process Tree


31
Threaded Merge Sort

Cours 3: La gestion des Processus


début

Vérifier la
présence d’une
demande E/S

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

Exercice 1 : Parallélisation maximale d’une fonction


32
Programmer en langage C, à l’aide des fonctions C fork et pipe (ou bien
Java 7 : fork / join ), le graphe de parallélisation maximale G permettant
d’évaluer la formule :

Cours 3: La gestion des Processus


début

Vérifier la
présence d’une
demande E/S

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

Exemple
le programme parallèle (primitives fork/join
33

 Soit le graphe de précédence suivant :

Cours 3: La gestion des Processus


début

Vérifier la
présence d’une
demande E/S

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

Exercice 1 : Parallélisation maximale d’une fonction


34

Donner le graphe de précédence

Cours 3: La gestion des Processus


début
?
Vérifier la
présence d’une
demande E/S

Traiter la
Copyright © 2019, OUARED Abdelkader
Section 5 : Les thread et le parallélisme demande
Système d’Exploitation

Section 5 : Les thread et le parallélisme


36

Cours 3: La gestion des Processus


Copyright © 2019, OUARED Abdelkader

Vous aimerez peut-être aussi