0% ont trouvé ce document utile (0 vote)
138 vues23 pages

Chapitre1 - Introduction Au Processus

Ce document décrit les processus, leur gestion par un système d'exploitation et leur cycle de vie. Il explique comment les processus sont représentés, leurs différents états et comment l'ordonnanceur contrôle leur exécution.

Transféré par

Hiba Farhat
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)
138 vues23 pages

Chapitre1 - Introduction Au Processus

Ce document décrit les processus, leur gestion par un système d'exploitation et leur cycle de vie. Il explique comment les processus sont représentés, leurs différents états et comment l'ordonnanceur contrôle leur exécution.

Transféré par

Hiba Farhat
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

Cours n°2: Gestion des processus

SYSTÈMES D’EXPLOITATION
AVANCÉES
La naissance d’un processus…
myprogram.c myprogram.o
int j; Fichier
char* s = “hello\n”; assembleur data
object
int p() {
j = write(1, s, 6); data
data
data
return(j);
}
librairies
….. linker
p: et autres
store this objets
store that
push
jsr _write
compilateur ret
etc.
data programme
myprogram.s

myprogram
2 (fichier executable)
…A son exécution

CPU 0 common runtime


x programme

code library

données Espace d’adressage


R0 (virtuel ou physique)

Rn
tas
PC yx
SP
registers
y
pile
max
“mémoire”

3
Définissons…
• Un programme est composé d'une suite d'instructions qui
agissent sur un ensemble de données : objet statique
• Processus : lorsque l'on déclenche l'exécution d'un
programme, il devient un objet dynamique géré par l'OS.
• Un processus est composé d'un programme et de l'ensemble
des ressources reliées à l'exécution du programme. Ces
ressources incluent de la mémoire, des I/Os, des fichiers
ouverts par le programme, du temps de CPU et autres.

Processus = unité d’exécution (unité de partage du temps


processeur et de la mémoire) ≠ Programme

Nadia Bel Hadj Aissa 4


Système d’exploitation multitâches
• Un système d’exploitation est dit multitâches s’il permet
d’exécuter, apparemment simultanément, plusieurs
programmes.

• Ce fonctionnement est réalisé en alternant rapidement


l’exécution de différents processus c’est-à-dire en effectuant
un multiplexage temporel du processeur (chaque processus
s’exécute pendant une fraction de seconde)

• L’exécution des processus est entremêlée

• Par conséquent, il ne s’agit pas réellement d’un traitement


simultané sauf si la machine a plusieurs processeurs

Nadia Bel Hadj Aissa 5


Processus et Multiprogrammation

• Soient 3 processus A, B et C à exécuter


• A,B et C sont chargés simultanément en
mémoire (avec le Dispatcher)
• Le comportement d’un processus donné =
séquence d’instructions qu’il est en train
d’exécuter (Trace)
• Le Dispatcher est un programme qui
commute le processeur d’un processus à un
autre
Trace du point de vue des processus
• Chaque processus s’exécute jusuqu’à la fin de sa
tâche
Trace du point de vue du processeur

Timeout
I/O
Feuille de route

• Comment les processus sont-ils représentés et


contrôlés par l’OS?
• Quels sont les états caractérisant le comportement
des processus?
• Quels sont les structures de données utilisées pour
gérer les processus?
• Comment l’OS utilise-t-il ces structures de données
pour contrôler l’exécution des processus?

Nadia Bel Hadj Aissa 9


Structure de l’espace mémoire d’un processus
• Espace mémoire dont la structure est
définie par l’OS (Ensemble des adresses
mémoire que le processus peut adresser) Pile

• Plusieurs zones =
– Segment de code (text section)
• Copie du segment de code du fichier exécutable
– Compteur de programme
• Indique la prochaine instruction à exécuter
– Contenu des registres du processeur
Tas
– Pile d’exécution
• Paramètres des fonctions, variables locales,
adresses de retour, pointeur de pile, etc.
Segment de données
– Segment de données (data section)
• variables globales (.bss and .data).
– Un Tas Segment de code
• Pour la mémoire allouée dynamiquement

Nadia Bel Hadj Aissa 10


Bloc de contrôle de processus (PCB)
• Identifiants numériques
– Identifiant du processus
– Identifiant du processus qui a créé ce
processus (processus père)
– Identifiant de l’utilisateur
• Informations sur l’état des processus
• Compteur de programme (@ de la prochaine
instruction à exécuter)
• Contenu des registres du CPU
• Information d’ordonnancement
– Priorité,…
• Information de gestion de la mémoire
– Valeur du registre de base et limite,…
• Information comptable
– Taux d’utilisation du processeur,…
• Etats des dispositifs d’E/S
– E/S alloués, liste des fichiers ouverts,…

Nadia Bel Hadj Aissa 11


Bloc de contrôle de processus

PCB kernel user CPU


state
text PSW
memory
IR
files
data
accounting PC
priority heap SP
user general
CPU registers purpose
storage stack registers

Nadia Bel Hadj Aissa 12


Feuille de route

• Comment les processus sont-ils représentés et


contrôlés par l’OS?
• Quels sont les états caractérisant le comportement
des processus?
• Quels sont les structures de données utilisées pour
gérer les processus?
• Comment l’OS utilise-t-il ces structures de données
pour contrôler l’exécution des processus?

Nadia Bel Hadj Aissa 13


Multiprogrammation
Mode batch
Le processus actif rend la main :
• lorsqu'il se termine
• lorsqu'il se bloque en attente d'une E/S

terminaison
élection Elu

création E/S
Prêt

fin d'E/S Bloqué

Nadia Bel Hadj Aissa 14


Temps partagé
Temps partagé
Le processus actif rend la main :
• lorsqu'il se termine
• lorsqu'il se bloque en attente d'une E/S
• lorsqu'il a épuisé son quantum de temps

terminaison
élection Elu

création fin E/S


Prêt quantum

fin d'E/S Bloqué

Nadia Bel Hadj Aissa 15


Etats d’un processus

Ordonnancement
Nouveau Terminé

Prêt En cours
Admission, Fin du
Planification de Quantum
processus
haut-niveau terminé

Requête E/S
Attente d'E/S
finie
Bloqué
E/S

Nadia Bel Hadj Aissa 16


Création de processus: Pourquoi?

• Initialisation du système
• Exécution d’un appel système de création de
processus par un processus en cours d’exécution
• Requête utilisateur sollicitant la création d’un nouveau
processus
• Lancement d’un travail en traitement par lot

 Un nouveau processus est créé du fait qu’un


processus existant exécute un appel système de
création de processus
Nadia Bel Hadj Aissa 17
Création de processus: Comment?
• Affecter un identifiant unique (pid)
• Allouer de l’espace mémoire pour l’image du
processus (code, données, pile…)
• Initialiser le bloc de contrôle de processus (valeurs
par défaut, état = New, pas de dispositifs d’E/S ou
de fichiers ouverts…)
• Mettre en œuvre les liens appropriés (ajouter le
nouveau PCB à la liste chainée utilisée pour les
queues d’ordonnancement)

Nadia Bel Hadj Aissa 18


La fin d’un processus
• Arrêt normal (volontaire)

• Arrêt pour erreur (volontaire)

• Arrêt pour erreur fatale (involontaire)

• Le processus est arrêté par un autre processus


(involontaire)

Nadia Bel Hadj Aissa 19


Commutation du CPU : Comment?
• Sauvegarder le contexte du CPU (PC et autres
registres)
• Mettre à jour le PCB du processus en cours d’exécution
avec le nouvel état et autre infos
• Changer le PCB dans la file d’attente appropriée (prêts,
bloqués, …)
• Choisir un autre processus à exécuter
• Mettre à jour le PCB du processus sélectionné (état: en
cours d’exécution)
• Restaurer l’état du CPU à partir du PCB du processus
sélectionné
Nadia Bel Hadj Aissa 20
Commutation entre processus

Nadia Bel Hadj Aissa 21


Feuille de route

• Comment les processus sont-ils représentés et


contrôlés par l’OS?
• Quels sont les états caractérisant le comportement
des processus?
• Quels sont les structures de données utilisées pour
gérer les processus?
• Comment l’OS utilise-t-il ces structures de données
pour contrôler l’exécution des processus?

Nadia Bel Hadj Aissa 22


Les entités responsables de l’ordonnancement

Preemption
Scheduler
(Ordonnanceur)
CPU1
File des
Sortie du Processeurs
Election de
Dispatcher Process prêts
système CPU2 (répartiteur)

Election de
processus
PCB PCB PCB PCB

CPU4
File des
bloques
Blocage PCB PCB Réveil

Nadia Bel Hadj Aissa 23

Vous aimerez peut-être aussi