Vous êtes sur la page 1sur 58

Chapitre 2: Processus et

Ordonnancement
INTTIC
Cours Système Exploitation
Processus
 Un Processus est une activité, crée et gérée par le système
d’exploitation (SE), dont le but est d’accompagner l’exécution d’un
programme.
 Cette activité possède plusieurs états, qui transite l’un vers l’autres à
cause de plusieurs événement (E/S, ressources disponible ou pas, fin
programme...)
 Pour simplifié, en considérera une architecture monoprocesseur
(exemple: Intel 8086).
 Le processus dans les différent système:
 Système batch:
 1 seul processus occupe le CPU jusqu’à ce qu’il termine.
 Implémentation simple, généralement aucun conflit sur les ressources.
 Système Multiprogrammation:
 Plusieurs processus occupe, a tour de rôle, le CPU jusqu’à ce qu’ils
terminent l’un après l’autre.
 Nécessite des gestions de temps, d’états et de contexte de chaque processus,
ainsi que la gestion (partage) de ressources pour éviter tout genre de
conflits et/ou d’interblocage .
Processus
Le modèle de processus.

 Multiprogrammation de quatre programmes


 Conceptuellement: 4 processus séquentiels indépendants
 À chaque instant, un seul processus est actif

3
Processus
Le modèle de processus.
 Processus de conception séquentiel donnant une
impression de parallélisme lors de l’exécution.
 De point de vue conceptuelle, chaque processus
possède son propre CPU (Virtuelle).
 Un compteur ordinale (virtuelle) existe pour chaque
processus. Un compteur ordinal (physique sur la
machine).
Processus
Création de processus.

 Système à 1 seul application (ex: four à micro-ondes):


tout les processus nécessaire sont crées à l’allumage, et
détruits à l’extinction.

 Système à application multiple (Ordinateur): Nécessite


une méthode pour création et arrêt de processus
(selon le cas) au cours de l’exécution.
Processus
Création de processus
 Quatre (4) événements créent des processus:
1. Initialisation du system
2. Exécution d’un appel système demandé par un processus
3. Un usager demande de créer un processus
4. Initiation d’une tâche (sur un système de traitement par lots).

 Créer un processus?
 UNIX: fork –création d’un clone et execve –modifier l’image du processus
 Windows: CreateProcess
 Processus
 Démons (daemon) ou en arrière-plan, exemples: courriers électroniques, pages web…
 Premier-plan
 Les voir?
 Ctrl+alt+del sur Windows
 ps sur UNIX
 Système Multiprogrammation: basculement entre processus donnant
l’impression d’un parallélismes (pseudo parallélisme).
 Nécessite une gestion d’accès des processus au CPU
(l’ordonnancement).
 Les ressources sont demandé par plusieurs processus donnant naissance
à plusieurs problèmes de partage et d’interblocage, qui doivent être
résolus.
 Communication inter Processus.
 ........................................
 Chaque Fenêtre graphique est un processus, l’utilisateur en choisissant
une fenêtre il rentre en interaction avec le processus.
Fin d’un processus:
1. Arrêt normal (volontaire).

2. Arrêt pour erreur (volontaire), exemple: « gcc test.c »


où « test.c » n’existe pas
3. Arrêt pour erreur fatale (involontaire) (ex: division/0)
4. Le processus est arrêté par un autre Processus: kill ou
TerminateProcess.
Qu’ utilise le SE pour gérer les
processus:
La gestion des processus nécessite :
 Des Programmes pour « La gestion des Processus »:
1. Le Programme «Ordonnanceur» (Scheduler).
2. Le Programme dispatcher.

 Des structures de donnés: pour sauvegarder les


information concernant les processus:
1. PCB par processus (Process Control Bloc)
2. Un ensemble de file d’attente (différents états +
différentes ressources).
3. Les nœuds dans ces files d’attentes sont des PCB.
Etats de Processus
Terminé
Nouveau
(1)
(2)
En cours (6)
Prêt d’exécution
(3)
(5) (4)
Bloqué

 En cours d’exécution (utilisant le processeur à cet


instant)
 Prêt (temporairement arrêté pour laisser exécuter un
autre)
 Bloqué (ne pouvant s’exécuter tant qu’un événement
11
externe ne se produit)
Etats de Processus
Terminé
Nouveau
(1)
(2)
En cours (6)
Prêt d’exécution
(3)
(5) (4)
Bloqué
1. Lancement nouveau Processus,
2. L’ordonnanceur choisit un processus
3. L’ordonnanceur remet processus en file d’attente,
4. Le processus est bloqué (blocage interne: wait(), ou externe:
demande de ressource E/S)
5. La ressource devient disponible,
12
6. Processus termine son exécution
Etats de Processus
nouveau terminé

e
ad
interruption

rti
mi

so
s
activer

prêt - en
prêt
suspendu exécution
suspendre
te
r dispatch de l’ordonnanceur
terminaison d’E/S ou mi
d’ ain

en S
ou d’évènement év so

em E/
t
èn n

én d’
em d’E

év nte
en attente - en /S en attente

ou tte
t

a
suspendu

activer

suspendre

Un modèle de processus à 7 états


Etats de Processus
• État Nouveau
• Le SE crée un PCB pour processus
• Mais ne l’a pas encore admis dans l’état prêt
• N’a pas encore alloué des ressources
• La file des nouveaux travaux est souvent appelée spoule
travaux (job spooler)
• État Terminé:
• Le processus n’est plus exécutable. Le SE est encore en
train de nettoyer ses données.
Implémentation des processus
PCB = Process Control Block
 Chaque processus utilisateur possède un PCB.
 Le PCB est crée lorsque l’utilisateur lance un
programme (qui devient un processus) et est
supprimé du système lorsque le processus est tué.
 Tous ces PCBs sont en mémoire réservée pour le
SE.
Implémentation des processus
PCB = Process Control Block
Bloc d'informations caractérisant complètement un
processus
 Etat
 Compteur d'instruction
 état des registres
 paramètres de priorité et d'ordonnancement
 paramètres de gestion de la mémoire
 informations comptables
 informations I/O (fichiers ouverts…)
Vision plus détaillée des PCB

les PCB sont regroupés dans une table de processus


Changement (commutation) de contexte
Rôle du matériel et du logiciel
dans le traitement d’interruptions
LOGICIEL
MATÉRIEL
Le code de traitement de
l’interruption est exécuté

Signal d’interruption généré


Infos
sauvegardées dans PCB

CPU termine l’instruction courante


et détecte interruption L’ordonnanceur choisit un
processus qui est prêt

Registres CPU sont


sauvegardés dans la pile des interr. Les infos relatives à ce processus
sont rétablies à partir de son PCB

CPU saute à l’adresse trouvée dans Les registres CPU sont rechargés
le vecteur d’interruption avec ces infos dispatcher

CPU reprend l’exec de ce proc


Files d’attente
 Les ressources d’un ordi sont souvent limitées, et solliciter
par différent en même temps
 Chaque ressource a sa propre file de processus en attente
 Quand il y a interruption sur une ressource (ex fin d’E/S),
les files permettent de déterminer quel processus doit être
notifié
 En changeant d’état, les processus se déplacent d ’une file à
l`autre
 File prêt: les processus en état prêt=ready
 Files associés à chaque unité E/S
 etc.
PCBs sur différentes files
d’attente
file prêt

Nous supposons que le premier processus dans une file est celui qui utilise la ressource: ici, proc7
exécute, proc3 utilise disque 0, etc.
Une façon plus synthétique de
décrire la même situation
prêt  7  2
bandmag0 
bandmag1 
disq0  3  14  6
term0  5
Les files contiennent les pointeurs sur
PCB et non les PCB eux mêmes

term. unit 0 ready

. . . PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 PCB14


. . .

disk unit 0
 Au départ
 Au départ
 Au départ
Processus dans le SE – Representation
Pour les utilisateurs (et les processus) un processus est
identifié par son Process ID (PID)
Dans le SE, les processus sont représentés par des entrées dans
la Table des Processus(Process Table (PT))
PID est un index dans l’entrés de la PT
Entré PT = Process Control Block (PCB)
PCB est une large structure de donné qui contient (ou pointe
vers) tous les informations concernant un processus
Linux – défini dans task_struct –plus de 70 champs
voir include/linux/sched.h
Windows XP – définie dans EPROCESS – a peu prêt 60 champs
Ordonnancement

28
Ordonnanceur & Algorithme
d’ordonnancement
1. Ordonnanceur (scheduler): partie du SE qui
sélectionne les processus.
2. Algo d’ordonnancement (scheduling algorithm)
1. Non-Préemptif: Le processus, quitte le CPU
uniquement s’il termine ou se bloque sur E/S.
2. Préemptif: Non-Préemptif ou qu’un processus plus
prioritaire se présente.

29
Ordonnanceur
Processus

cat ls ... disk vid

Ordonnanceur
 Conceptuellement, l’ordonnanceur est au niveau le plus bas du SE
 Prend en charge les interruptions et l’ordonnancement
 Les autres processus séquentiels sont au dessus
Ordonnancement & Ressources
 Objectif multiprogrammation =
 Utilisation optimale des ressources: CPU,
périphériques..
 Bon temps de réponse pour l’utilisateur
 L`ordonnanceur décide, a travers un Algorithme, quel
processus doit occuper la ressource lorsqu’elle se libère.
 Le CPU est une ressource.
 Les périphériques sont aussi des ressources.
 Les mêmes Algorithmes peuvent donc être appliqués pour
l’ ordonnancement des processus sur les périphériques
d’E/S.

31
Critères d’ordonnancement
 Système Batch
 Débit: nombre de processus exécutés par unité de
temps
 Rendement utilisation processeur
 Temps de restitution / service : délai entre la
soumission et fin de tache.
 Système Interactif
 Temps de réponse : délai entre la soumission et début
d’execution .
 Temps d’attente : temps passé en état prêt
 Proportionnalité : aux attentes des utilisateurs

32
Critères d’ordonnancement
 Système Temps-réel
 Respect des dates limites : éviter la perte de données
 Prédictibilité : stabilité des applications multimédia

 Autres Critères valable pour tout système


 Équité : répartition du CPU
 Respect de politique : imposer les choix
d’ordonnancement
 Équilibre : occupation de toutes les parties du système

 =) Optimisation = min, max.


33
Critères d’ordonnancement:
maximiser/minimiser

 Faut-il maximiser ou minimiser les critères suivants?


 Rendement CPU
 Débit = Throughput
 Temps de
 Rotation (séjour)
 Attente
 Réponse

34
Politiques d’ordonnancement
Pour
Systèmes par lots
Ordonnancement FIFO/FCFS
Exemple: Processus Temps de cycle
P1 24
P2 3
P3 3
 Si les processus arrivent au temps 0 dans l’ordre: P1 , P2 , P3
Le diagramme de Gantt est le suivant:

P1 P2 P3

0 24 27 30

Temps d’attente pour P1= 0; P2= 24; P3= 27


Temps attente moyen: (0 + 24 + 27)/3 = 17
Ordonnancement FIFO/FCFS
 Débit = 3/30 = 0,1
 3 processus complétés en 30 unités de temps
 Temps de séjour moyen: (24+27+30)/3 = 27

P1 P2 P3

0 24 27 30
Ordonnancement FIFO/FCFS
Si les mêmes processus arrivent à 0 mais dans l’ordre
PP
2 2 , P3 P
, 3P1 P1

0 3 6 30

 Temps d’attente(P1 ,P2 ,P3)=(6,0,3)


 Temps d’attente moyen : (6 + 0 + 3)/3 = 3(17 avant)
 Temps de séjour moyen: (3+6+30)/3 = 13 (27 avant)
 Beaucoup mieux!
 Donc pour cette technique, les temps peuvent varier
grandement par rapport au temps d’arrivée des processus
Tenir compte du temps d’arrivé!
 Soustraire les temps d’arrivée
 Exercice: répéter les calculs si:
 P1 arrive à temps 0 et dure 24
 P2 arrive à temps 2 et dure 3
 P3 arrive à temps 5 et dure 3
 Temps d’attente(P1) = 0-0=0
 Temps d’attente(P2) = 24-2=22
 Temps d’attente(P3) = 27-5=22

P1 P2 P3

0 24 27 30
Ordonnancement FIFO/FCFS
 Principe
 Algorithme sans réquisition (préemption).
 File d’attente FIFO pour les processus prêts
 Facile à comprendre et à programmer
 Intrinsèquement équitable pour des processus équivalents
 Inconvénients
 Grande variance des critères d’ordonnancement
 Effet d’accumulation
 =) Mauvais algorithme pour les systèmes interactif , temps-partagé
et temps réel. OK pour les systèmes de batch.
Ordonnancement SJF - Shortest Job
First
 Le processus qui demande moins de CPU est sélectionner en premier
 Optimal en principe du point de vue du temps d’attente moyen
 (v. le dernier exemple)

P2 P3 P1

0 3 6 30
SJF (avec ou sans préemption )
Arrivé d’un nouveau processus:
• SJF Sans préemption: on permet au processus
courant de terminer son cycle

• SJF Avec préemption:


• Comparer le temps d’exécution du nouveau processus
et le temps restant au processus en cours d’exécution.
• Préempter si plus petit
◦ SRTF: shortest remaining-time first
SJF sans préemption
ProcessusArrivée Cycle CPU
P1 0 7
P2 2 4
P3 4 1
P4 5 4
SJF (sans préemption)
P1 P3 P2 P4

0 7 8 12 16

 Temps d’attente moyen = (0+(8-2)+(7-4)+(12-5))/4


(0 + 6 + 3 + 7)/4 = 4
 Temps de séjour moyen = (7+(12-2)+(8-4)+(16-5) )/4= 8
SJF avec préemption
Processus Arrivée Cycle
P1 0 7
P2 2 4
P3 4 1
P4 5 4
 SJF (avec préemption)

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16
P2 arr.
P3 arr. P4 arr
• Temps moyen d`attente = (9 + 1 + 0 +2)/4 = 3
 P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7

44 • Temps de rotation moyen = 16+ (7-2) + (5-4) + (11-5) = 7


Ordonnancement SJF
 Principe
 Algorithme sans préemption
 Le prochain cycle le plus court est sélectionné
 En cas d’égalité, on revient au FCFS
 Version avec préemption : « temps restant le plus court »
(SRTF)
 Avantage
 Temps moyen d’attente minimal
 Inconvénient
 Difficulté de calculer la longueur des cycles (Approximation possible par
moyenne exponentiel): τn+1 = ατn + (1−α)τn−1
 Risque d’obtention d’une « Situation de famine »

 =) Peu adapté pour l’ordonnancement à court terme. OK pour les


systèmes de batch.
Politiques d’ordonnancement
Pour
Systèmes interactifs
Round-Robin- Tourniquet (RR)
 Chaque processus réserve une tranche de temps (p.ex. 10-
100 millisecs.) pour exécution
 Tranche aussi appelée quantum
 S’il s’exécute pendant une tranche entière sans aucunes
interruptions, il est interrompu par la minuterie,
l’ordonnanceur s’active puis le CPU est donné à un autre
processus
 Le processus interrompu redevient prêt (à la fin de la file)
 Méthode préemptive
 Le plus utilisé en pratique, conçu spécialement pour le
temps partagé.

47
Exemple: RR, Quantum = 20
ms
Processus Cycle
P1 53
P2 17
P3 68
P4 24

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162


 Observation:
 Temps de séjour et temps d’attente moyens beaucoup plus élevés
que SJF
48
 mais aucun processus n’est favorisé
 Temps de réponse est minimiser
Round-Robin- Tourniquet (RR)
 Principe
 FCFS avec réquisition sur une base de quantums (20 –50ms)
 Nécessite une horloge et mécanismes d’interruption,
 Précautions
 Le quantum > temps de commutation de contexte.
 Le quantum ne doit pas être trop grand (sinon, comportement
semblable au FCFS)

 =) Réquisition pour les cycles plus longs que le quantum,


commutation passive (FCFS) pour les cycles plus courts

49
Le temps de séjour (turnaround)
varie avec la tranche

= FIFO

Exemple qui montre que le temps de séjour moyen ne s’améliore pas nécessairement en
augmentant la tranche (sans considérer les temps de commutation contexte)
50
Ordonnancement par Priorités

 Affectation d’une priorité au processus (un nombre


entier)
 souvent les petits chiffres dénotent des hautes priorités
(0 la plus haute).

 La CPU est affecté au processus prêt, avec la plus


haute priorité.

51
Ordonnancement par Priorités
 Principe
 Généralisation du SJF.
 Algorithme avec ou sans réquisition
 Priorités internes (consommation de ressources etc.)
 Priorités externes (fixées par l’utilisateur)
 Inconvénient
 Risque de situation de « famine »
 Solution : technique du « vieillissement » (augmentation
progressive de la priorité des processus en attente)

52
Ordonnancement avec files multiples
 Chaque file
possède son
propre algorithm
d‘odonnancement.
 Les processus
interactive – RR,
80% temps CPU
 Processus
Arrière plan
 (batch) –
FCFS, 20%
temps CPU

Un proc peut être servi seulement si toutes les files de priorités plus hautes sont vides
53
Ordonnancement avec files multiples
 Principe
 Découpage de la file d’attente des processus prêts en
plusieurs files (processus système, interactifs, arrière-
plan etc.)
 Ordonnancement spécifique au sein de chaque file (RR,
FCFS).
 Ordonnancement des files entre elles (priorités fixes,
allocation de tranches de temps etc.)
 Ordonnancement file multiples avec feedback
(recyclage)
 Possibilité de déplacer les processus d’une file d’attente à
l’autre
54
 implémentation du vieillissement
Ordonnancement par loterie
 Principe
 Distribution de tickets
 Tirage du gagnant à intervalle fixe

 Avantages
 Implémentation légère d’un mécanisme de « promesse »
(les processus importants peuvent obtenir plusieurs
tickets)
 Efficace pour des processus coopératifs (transmission de
tickets)

55
Ordonnancement équitable
 Principe
 Partager le temps processeur équitablement entre les
utilisateurs.

 Exemple
 User1: A,B,C,D
 User2:E
Ordonnancement équitable =
A,E,B,E,C,E,D,E,A,E,B,E,C,E,D,E,.....

56
Politiques d’ordonnancement
Pour
Systèmes Temps-réels
Catégories d’événements temps réel
 Types d’événements
 Périodiques : distribution vidéo, chaîne industrielle etc.
 Apériodiques : monitoring hospitalier, contrôleur de bord
etc.
 Cas particulier
 Systèmes « ordonnançables » : Soient N événements
périodiques de période Pi, nécessitant Ci temps CPU
pour s’exécuter. Le système est dit ordonnançable si et
seulement si :
Catégories d’ordonnanceurs temps
réel
 Types d’ordonnanceurs
 Temps réel rigide : « réservation de ressource ».
 L’ordonnanceur doit connaître exactement les échéances de chaque
processus, et les ressources nécessaires.
 Temps réel souples : fournir des priorités hautes et non
dégradables, minimiser la latence de dispatching.

Vous aimerez peut-être aussi