systèmes d’exploitation - ensin6u3 - academiepro.com · systèmes d’exploitation - ensin6u3...

25
Systèmes d’Exploitation - ENSIN6U3 Gestion de processus Leonardo Brenner 1 Jean-Luc Massat 2 1 [email protected] 2 [email protected] Aix-Marseille Université Faculté des Sciences

Upload: vophuc

Post on 14-Sep-2018

248 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Systèmes d’Exploitation - ENSIN6U3Gestion de processus

Leonardo Brenner 1 Jean-Luc Massat 2

[email protected]

[email protected]

Aix-Marseille UniversitéFaculté des Sciences

Page 2: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Table de matière

1 Définition d’un processusReprésentation d’un processusÉtat d’un processus

2 Création de processus lourdCas de UnixCas de Windows

3 Création de processus léger

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 2 / 25

Page 3: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus

Table de matière

1 Définition d’un processusReprésentation d’un processusÉtat d’un processus

2 Création de processus lourdCas de UnixCas de Windows

3 Création de processus léger

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 3 / 25

Page 4: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus

Processus : définition, identification, filiation

Définition : processus

Un processus est un programme en cours d’exécution.

Composition d’un processus

Un processus comporte :

un espace d’adressage ;le bloc du contrôle du processus, décomposé en :

entrée dans la table des processus ;une zone u, allouée dynamiquement à la création du processus.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 4 / 25

Page 5: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus Représentation d’un processus

Représentation d’un processus

Données sur un processus

Pour chaque processus le systèmes maintient les données suivantes :

un identifiant (PID),

des informations diverses (priorités, filiations, propriétaires, ...),

un état opérationnel,

un contexte d’exécution,

des statistiques (temps de CPU, # d’E/S, # de défauts de pages, ...).

Ces informations sont rangées dans un PCB (Process Control Block).

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 5 / 25

Page 6: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus Représentation d’un processus

Identifiants des processus

Identification

A chaque processus est associé un identifiant :→֒ Cet identifiant est appelé PID (pour Process Identifier)

Le PID est attribué par le système au moment de l’exécution

Tous les processus ont un PID unique

Le premier processus : init possède le PID 1

Filiation

Tout processus est créé à partir d’un autre processus :→֒ Sous Unix, le premier processus init

Tous les processus sont créés à partir de init

Un processus A créé par un processus B est appelé fils de B et B est lepère de A

Le PPID d’un processus est le PID de son père

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 6 / 25

Page 7: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus Représentation d’un processus

Propriétés et accès aux fichiers

La priorité

Utilisée lors de l’exécution du processus

Un processus sera exécuté avant (ou plus souvent) que les autresprocessus moins prioritaire

Généralement, la priorité évolue dans le temps

Accès aux fichiers

A chaque processus est attribué des identifiants pour les accès auxfichiers

En fonction des identifiants, le processus pourra ou non accéder àcertains fichiersPlusieurs identifiants :

GID : l’identifiant de groupeUID : l’identifiant de l’utilisateur

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 7 / 25

Page 8: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus État d’un processus

État d’un processus

États opérationnels

Chaque processus est dans l’un des états opérationnels suivants :

en attente

1. initialisation2. exécution3. achèvement4. préemption5. attente6. signal

3

1

24

actif

prêt

connu

terminé

6

5

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 8 / 25

Page 9: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus État d’un processus

La table des processus

Description

L’ensemble des processus sont gérés dans une table :→֒ Une entrée par processus

Données sur les processus : identifiant du processus, priorité, compteurordinal, pointeurs vers les segments mémoire, . . .

Représentation mémoire

������������������������������

������������������������������

Compteur ordinal

CodeDonnées

Table des processus

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 9 / 25

Page 10: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus État d’un processus

Rôle de PCB

Commutation de contexte

Le rôle du PCB dans la commutation de contexte entre deux processus :

PCB0 PCB1

sauvegarde

restauration

restauration

sauvegarde

P0 P1

actif

prêt

actif pr

êtac

tifpr

êt

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 10 / 25

Page 11: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus État d’un processus

Contexte d’un processus

Quelques données nécessaires à la commutation de contexte

mot d’état, contexte de l’unité centrale :accumulateur,registre d’instruction et compteur d’instruction,registres d’état du processeur,registres d’états du processus.

état du processus,

variables globales statiques dynamiques,

entrée dans la table du processus,

zone u,

piles utilisateur et système,

zones de codes et de données.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 11 / 25

Page 12: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus État d’un processus

Files et états des processus

Files des processus

Le système maintient un ensemble de files dans lesquelles il range les PCB.On trouve par exemple un file

des processus prêts,

des processus en attente (d’une ressource, de la fin d’une E/S, ...),

etc.

file des processus prêts

file des processus enattente de fin d'E/S

file des processus morts

allocationde la CPU

demanded'E/S

fin del'E/S

réquisition

appel de exit()

processusactifs

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 12 / 25

Page 13: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus État d’un processus

Gestion des processus

Création de processus

chaque processus peut créer des processus (ses fils)

il est possible de figer, tuer des processus

Communication entre processus

Le système gère la communication entre les processus existants (signal,messages, ...)

Synchronisation de processus

La gestion de synchronisation entre les processus gère la dépendance entreles processus.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 13 / 25

Page 14: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Définition d’un processus État d’un processus

Gestion des processus

Types de processus

Le S.E. gère deux types de processus :

Lourd : crées par fork, nouveau PID, nouvelle zone mémoire,

Léger : crées par « threads », même PID, même zone mémoire (mémoirepartagée)

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 14 / 25

Page 15: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus lourd

Table de matière

1 Définition d’un processusReprésentation d’un processusÉtat d’un processus

2 Création de processus lourdCas de UnixCas de Windows

3 Création de processus léger

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 15 / 25

Page 16: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus lourd Cas de Unix

Création d’un processus : cas de Unix (1/2)

Sous Unix

Appel système fork()

Le processus appelant (le père) est dupliqué (même image mémoire)

La copie est remplacé par le fils (via exec)

Illustration

������

������

���������

���������

Processus 1

Processus 2

Appels systèmefork( ) exec( ) exit( )

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 16 / 25

Page 17: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus lourd Cas de Unix

Création d’un processus : cas de Unix (2/2)

Création d’un processus avec fork()

����������������������������������������

����������������������������������������

Table des processus

Données Donnéespère fils

Code

pid = fork(); Compteur ordinal

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 17 / 25

Page 18: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus lourd Cas de Windows

Création d’un processus : cas de Windows

Sous Windows

Appel à CreateProcess() (Win32)

Le processus fils est créé et remplacé directement par le processus

Illustration

������

������

���������

���������

Processus 1

Processus 2

CreateProcess( ) ExitProcess( ) Appels système

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 18 / 25

Page 19: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus léger

Table de matière

1 Définition d’un processusReprésentation d’un processusÉtat d’un processus

2 Création de processus lourdCas de UnixCas de Windows

3 Création de processus léger

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 19 / 25

Page 20: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus léger

Les threads : processus de poids léger

Threads

Un thread (fil) est un programme en cours d’exécution qui partage son codeet ses données .

DATA

Thread 1

Thread 3

Thread 2

PILE

PILE

PILE

M E P

M E P

M E P

Exécution

Exécution

Exécution

CODE

Fichiersouverts

et Ressources

Processus

Chaque thread a une pile d’exécution autonome.

Un processus est composé de threads

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 20 / 25

Page 21: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus léger

Les threads : processus de poids léger

Utilité des threads

Étude des dépendances et découpage :

C1 C2 C3 C5C4

C1 C2 C5

C3 C4

Thread 1

Thread 2

C4 dépend de C3C2 dépend de C1

C5 dépend de C2 et C4

Avantages :

récupération des temps d’E/S,

exploitation des machines multi-processeurs,

coopération entre threads.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 21 / 25

Page 22: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus léger

Les threads : processus de poids léger

Utilité des threads : application serveurs

Organisation logicielle d’une application serveur :

Processus fils

Processus fils

Processus fils

Processus fils

principal

Processus

Application serveur

principal

Thread

Thread fils

Thread fils

Thread fils

Thread fils

Données globales

Processus serveur

La commutation et la communication entre threads est une opération plussimple.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 22 / 25

Page 23: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus léger

Les threads : processus de poids léger

Les processus monolithiques

Il existe un conflit entre :

entrées / sorties synchrones (bloquantes),

interface homme/machines (IHM).

Processus monolithique

Gestionnairede la file

des événementsrécupérer unévénement

Traiter

Boucle des événementsréseau

disque

GUI

Evénementsasynchrones

Solution d’attente active :

E/S asynchrones (non-bloquantes),

structure avec boucle d’événements.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 25

Page 24: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus léger

Les threads : processus de poids léger

Les processus multi-threads

Il existe une autre solution basée sur :

le découpage en plusieurs threads,

une utilisation des E/S synchrones,

un module de communication.

Processus multi−threads

réseau

disque

GUI

Evénementsasynchrones

Thread "Gestion réseau"

Thread "Gestion disque"

Thread "Gestion de l’IHM"

Thread "Gestion de la mémoire"

et

Communication

synchronisation

Avantages :

plus grande simplicité du code,

indépendance entre les modules.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 24 / 25

Page 25: Systèmes d’Exploitation - ENSIN6U3 - academiepro.com · Systèmes d’Exploitation - ENSIN6U3 Gestion de processus ... le bloc du contrôle du processus, décomposé en : entrée

Création de processus léger

Les threads : processus de poids léger

Implantation des « threads »

Implantation au niveau du S.E. :

+ le S.E. connaît et ordonnance les threads,

+ la répartition de la CPU est bonne,

- les structures du S.E. sont alourdies.

Implantation au niveau utilisateur (java) :

+ une librairie se charge de la gestion des threads (création, destruction,etc.),

+ la commutation entre threads d’un même processus est plus rapide,

- la répartition de la CPU n’est pas équitable,

- la mise « en attente »d’un processus entraîne le blocage de tous sesthreads.

Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 25 / 25