SlideShare une entreprise Scribd logo
Chap. III. ORDONNANCEMENT des Processus
ENSI -- II2
1. Introduction
2. Types d’ordonnancement
3. Modèle simple d'ordonnancement
4. Politiques d’ordonnancement
 Organisations des files d’attente
 Ordonnancement FCFS / SJF/ priorité/RR/ SRTF/ Multi-
niveaux
5. Hiérarchie d’ordonnancement
6. Ordonnancement des threads
FN
ENSI -- F. Najjar Ordonnancement des Processus 2
Généralités
✓ Qu’est ce que l’ordonnancement?
 Commuter dès qu’un processus se bloque ou se termine
ENSI -- F. Najjar Ordonnancement des Processus 3
Généralités (suite)
✓ Le SE contient deux modules gérant le processeur :
 Ordonnanceur (scheduler): choisir le processus qui doit s’exécuter
 Problème: Dans quel ordre les processus sont servis?
 Allocateur (dispatcher): lancer l’exécution du processus choisi par le scheduler
✓ Scheduler (SCHED_FIFO, SCHED_RR, …)
 Politique d’ordonnancement?
✓ Dispatcher
 Mécanisme d’allocation et contrôle de la CPU?
 Commutation de contexte
ENSI -- F. Najjar Ordonnancement des Processus 4
Introduction -- Généralités
✓ Ordonnanceur -- Scheduler
 Objectif : Sur un intervalle de temps assez grand, faire progresser tous
les processus, tout en ayant, à un instant donné, un seul processus actif
(dans le processeur).
 Rôle: se charge de la commutation de processus, qui règle les transitions
d’un état à un autre des différents processus.
Multi-programmation: réalisée par l’ordonnanceur, et est activée par
des interruptions d’horloge, de disque et de terminaux.
ENSI -- F. Najjar Ordonnancement des Processus 5
Introduction -- Objectifs de la Multiprogrammation
✓ Maximiser le taux d’utilisation de l’unité centrale (efficacité) :
 Durée(UC_active)/Durée_totale.
 En pratique, valeurs comprises entre 40% et 90% (très mauvais - très bon)
✓ Maximiser le débit (nombre de processus utilisateurs traités en moyenne par
unité de temps).
✓ Minimiser le temps de traitement moyen
 Moyenne des intervalles de temps entre la soumission d’une tâche de sa fin
d’exécution.
✓ Minimiser le temps de traitement total (temps de vie d’un processus)
 Temps(Résidence_FA_process_Prêts) + Temps(Occup_UC)
+Temps(At_FA_E/S) + Temps( Résidence_MS)
✓ Minimiser le temps d’attente
ENSI -- F. Najjar Ordonnancement des Processus 6
Critères d’Ordonnancement des Processus
✓ Plusieurs processus sont prêts à être exécutés (queue en RAM).
✓ Le SE doit faire un choix --Algorithme d’ordonnancement:
 Equité : chaque processus doit recevoir sa part du temps processeur
 Efficacité : le processeur doit être utilisé à 100%
 Temps de réponse: l’utilisateur devant sa machine ne doit pas trop
attendre (mode interactif)
 Temps d’exécution: une séquence d’instructions ne doit pas trop durer
(minimiser le temps d’attente en traitement par lots)
 Rendement (’’throughput’’): il faut faire le plus de choses en une unité
de temps
ENSI -- F. Najjar Ordonnancement des Processus 7
Types d’ Ordonnancement des Processus
❑ Les types d’ordonnancements: distingués suivant les transitions permises
dans le graphe d'état d’un processus
 Ordonnancement sans réquisition –(Preemptive sched.): Pas de Transition
actif-prêt:
un processus est exécuté jusqu’à la fin : inefficace :-(!
 Ordonnancement avec réquisition --(Non Preemptive sched.): Transition
actif-prêt:
 Temps partagé
 à chaque signal d’horloge, le SE reprend la main, décide si le processus
courant a consommé son quantum de temps et alloue éventuellement
le processeur à un autre processus
 Il existe de nombreux algorithmes d’ordonnancement
ENSI -- F. Najjar Ordonnancement des Processus 8
Modèle Simple d’Ordonnancement
❑ Représentation de l’ordonnancement des processus –PROCESS QUEUES
FA/Queue des prêts
UC
DISPATCHER
Terminaison
Demande E/S
Queue des E/S
E/S
Tranche de temps expirée
Fork un fils
Fils s’exécute
exit
Attente It
Interruption
SCHEDULER
ENSI -- F. Najjar Ordonnancement des Processus 9
Process scheduling –Process Queues
Source: Silberschatz & al., Operating Systems Concepts, 9th Edition, 2013
ENSI -- F. Najjar Ordonnancement des Processus 10
Politique d’Ordonnancement – Organisations des FAs
✓ Hypothèse : Un seul processeur + plusieurs processus
✓ Une file d’attente, soit FA (Queue), des processus prêts: Espace réservé dans
la mémoire centrale, contenant les informations relatives aux entités que gère
la FA (pointer sur les BCPi).
✓ Principe de chaînage d’une FA : avant/ arrière/ mixte
✓ Plusieurs processus sont mis dans une FA, et le service demandé leur est fourni
tour à tour, en fonction de critères de gestion spécifiques à la FA.
✓ Plusieurs situations peuvent se produire
FA des prêts
UC
Dispatcher
Scheduler
Arrivée
Réquisition
Gère l’allocation du processeur,
il peut réquisitionner
Service
satisfait Sortie
Gère la FA : entrée des processus et
leur placement
ENSI -- F. Najjar Ordonnancement des Processus 11
Algorithmes sans préemption (FIFO, SJF, Priorité) (1)
❑ Algorithme FIFO (First In First Out) -- Premier Arrivé Premier Servi
 Un processus s'exécute jusqu'à sa terminaison, sans retrait forcé de la ressource --SCHED_FIFO
 Même priorité pour les processus (aucun privilège entre les processus)
 Facile à implanter, mais peu efficace (le choix n’est pas lié à l’utilisation de l’UC)
ENSI -- F. Najjar Ordonnancement des Processus 12
Algorithmes sans préemption (FIFO, SJF, Priorité) (2)
Processus Durée estimée Date d’arrivée
P1 24 0
P2 8 1
P3 12 2
P4 3 3
❑ Hypothèse: Temps de commutation négligeable pour la suite des transparents
❑ Exemple:
❑ Schématiser l’exécution des processus selon leur ordre d'arrivée. Pour cela, on utilise le
DIAGRAMME DE GANTT
P1 P2 P3 P4
Temps de vie des processus
0 24 32 44 47
❑ Temps de traitement moyen = [(24 - 0) + (32 - 1) + (44 -2) + (47 -3)]/4 = 35,25
ENSI -- F. Najjar Ordonnancement des Processus 13
Algorithmes sans préemption (FIFO, SJF, Priorité) (3)
✓ Algorithme SJF -- Shortest Job First (STCF -- Shortest Time to Completion First) :
Algorithme du ’’Plus Court d’Abord ’’ :
 Suppose la connaissance des temps d'exécution : estimation de la durée de chaque processus
en attente
 Les processus sont disponibles simultanément → Algorithme optimal (sans préemption)
 Exécuter le processus le plus court → Minimise le temps moyen d'exécution
 Analogie avec la FA à une caisse de grande surface, où une règle de politesse est de laisser
passer quelqu’un qui a peu de choses si l’on a plein dans le caddie
ENSI -- F. Najjar Ordonnancement des Processus 14
Algorithmes avec préemption (Priorité, RR, SRTF) (1)
✓ A chaque processus est assignée (automatiquement par le SE /externe) une priorité
 Assignation statique -- priorités fixes → facile à implanter
 Assignation dynamique : la priorité initiale assignée à un processus peut être ajustée à d ’autres
valeurs → difficile à implanter
 Pb. de famine (Starvation): un processus de faible priorité peut ne jamais s'exécuter si
des processus plus prioritaires se présentent constamment
 Recalculer périodiquement le numéro de priorité des processus (plusieurs FA) → la
priorité d’un processus décroît (croit) au cours du temps pour ne pas bloquer les autres FA
✓ Principe : On lance le processus ayant la plus grande priorité
Algorithme d’ordonnancement à classes de priorité
ENSI -- F. Najjar Ordonnancement des Processus 15
Algorithmes avec préemption (Round Robin, Priorité, SRTF) (2)
✓ ROUND ROBIN (SCHED_RR) : algorithme tourniquet, l’un des plus utilisés et des plus
fiables
 Ordonnancement selon l’ordre FIFO + préemption (Equitable)
 Chaque processus possède un quantum de temps pendant lequel il s’exécute
 Lorsqu’un processus épuise son quantum de temps : au suivant !
 S’il n’a pas fini : le processus passe en queue du tourniquet et au suivant !
✓ Exemple : Le quantum de temps, Q, est égale à 2 unités; quel est le temps de traitement moyen?
Exécution
CPU
P1
(3 unités)
P2
(4 unités)
P3
(2 unités)
P4
(3 unités)
P8
(2 unités)
P7
(4 unités)
P6
(5 unités)
P5
(3 unités)
Q
Q Q
Q
Q Q
Q
Q
ENSI -- F. Najjar Ordonnancement des Processus 16
✓ Temps de traitement moyen =
[(17-0) + (19-1) + (6-2) + (20-3) + (21-4) + (26-5) + (25-6) + (16-7)] /8 = 15,25
✓ Problème = réglage du quantum (petit/grand; fixe/variable;est-il le même pour tous les processus ?)
 Les quanta égaux rendent les différents processus égaux
 Quantum trop petit provoque trop de commutations de processus
 Le changement de contexte devient coûteux (perte de temps CPU)
 Quantum trop grand : augmentation du temps de réponse d’une commande (même simple)
 RR dégénère vers FIFO
 Réglage correct : varie d’un système (resp. d’une charge) à un autre et d’un processus à un autre
✓ Il existe d ’autres variantes de RR, telle que RR avec priorités
Algorithme Tourniquet -- Round Robin (suite)
P1
0 2
P2 P3 P4 P5 P6 P7 P8 P1 P2 P4 P5 P6
4 6 8 10 12 14 16 17 19 20 21 23
P7 P6
25 26 Temps de vie
Diagramme de Gantt (Q=2 unités)
ENSI -- F. Najjar Ordonnancement des Processus 17
Algorithme Tourniquet avec priorités
✓ Le système de gestion possède n FA à différents niveaux de priorités (+
différents quanta)
FA n-1 (Q n-1)
FA1 (Q1)
FA 0 (Q 0) CPU
Réquisition
Arrivée
+
-
Priorité Scheduler Dispatcher
Terminaison
Q 0  Q 1  Q 2  ...  Q n-1
✓ A son arrivée, le processus est rangé dans la FA la plus prioritaire FA0
✓ Si un processus dans FAi épuise son quantum de temps Qi (0 i n-2), il sera placé dans la FAi+1
(moins prioritaire)
 Une FAi (0  i n-1 ) ne peut être servie que si toutes les FAj (0  j< i) sont vides
 un processus qui a traversé toutes les FA sans épuiser son temps de traitement reste dans la FA la moins prioritaire.
ENSI -- F. Najjar Ordonnancement des Processus 18
❑ Algorithme SRTF (Shortest Remaining Time First) -- SJF avec réquisition
 Choisir le processus dont le temps d'exécution restant est le plus court
 Il y a réquisition selon le critère de temps d'exécution restant et l'arrivée d’un processus
 Possibilité de morcellement d’un processus
 Nécessité de sauvegarder le temps restant
❑ Exemple :
Algorithmes avec préemption (RR, Priorité, SRTF) (3)
Processus Durée estimée Date d’arrivée
P1 8 0
P2 5 2
P3 5 3
P4 2 4
P1
0 2
P2 P4 P1
4 6 9 14 20
Temps de vie
Diagramme de Gantt
P2 P3 P1
❑ Temps de traitement moyen = [(20 - 0) + (9 -2) + (14 -3) + (6-4)]/4 = 9,5
❑ Théoriquement, + SRTF offre un minimum de temps d’attente; - difficile de prédire le futur
ENSI -- F. Najjar Ordonnancement des Processus 19
Hiérarchie d’Ordonnancement (1)
❑ 2 types différents:
 Ordonnancement à court terme (short term scheduling or CPU scheduling ):
 Seulement les processus prêts en mémoire centrale sont considérés
 rapide (de l’ordre de millisecondes)
 Ordonnancement à long terme (long term scheduling or job scheduling):
 consiste à utiliser un deuxième algorithme d’ordonnancement pour gérer
les ‘’swapping ’’ des processus prêts entre le disque et la RAM
 plus lent (de l’ordre de seconde/mn)
FA des E/S
’’Swap out’’ Processus
FA des Prêts
UC
Sortie
E/S
Arrivée
ENSI -- F. Najjar Ordonnancement des Processus 20
Hiérarchie d’Ordonnancement (2)
✓ Ordonnancement multi-niveaux permet de satisfaire :
 Favoriser les processus courts
 Favoriser les processus ‘’I/O Bound’’, qui ne demandent pas trop l ’UC
 Déterminer la nature de chaque processus le plutôt possible et effectuer
l’ordonnancement correspondant
✓ Files d’attente sans liens : un processus se trouvant dans dans FAi ne peut se
trouver dans FAj (ji); il reste dans FAi jusqu’à ce qu’il se termine
FA n-1
FA1
FA 0
CPU
Réquisition
+
-
Priorité fixe
Terminaison
Processus Système
Processus Interactifs
(RR)
(FCFS/SJF)
ENSI -- F. Najjar Ordonnancement des Processus 21
Hiérarchie d’Ordonnancement (3)
✓ Files d’attente avec liens : hiérarchiser les FAs
FA n-1
FA1
FA 0
CPU
Réquisition
Terminaison
(RR)
(FCFS)
Arrivée niveau 0
(FCFS)
Arrivée niveau 1
Arrivée niveau n-1
✓ Un processus dans FAi ne peut être sélectionné que si toutes les FAj (j<i) sont toutes vides
✓ Permettre aux processus de se déplacer d’une FA à une autre
 Hiérarchie descendante/ascendante/bidirectionnelle
✓ Changement dynamique dans le comportement des processus
✓ Chaque FA a son propre algorithme d’ordonnancement
 Descendante FA0 est gérée avec FCFS
 Ascendante Fn_1 est gérée avec FCFS
ENSI -- F. Najjar Ordonnancement des Processus
Autres Scheduling ….
25
ENSI -- F. Najjar Ordonnancement des Processus
Multiple-Processor Scheduling
❑ CPU scheduling becomes more complex when multiple CPUs are available.
 Have one ready queue accessed by each CPU.
 Self scheduled - each CPU dispatches a job from ready Q
 Manager-worker - one CPU schedules the other CPUs
❑ Homogeneous processors within multiprocessor.
 Permits Load Sharing
❑ Asymmetric multiprocessing
 Only 1 CPU runs kernel, others run user programs
25
ENSI -- F. Najjar Ordonnancement des Processus
Real-Time Scheduling
❑ Hard Real-time Computing:
 required to complete a critical task within a guaranteed amount of time.
❑ Soft Real-time Computing:
 requires that critical processes receive priority over less important
ones.
❑ Types of real-time Schedulers:
 Periodic Schedulers - Fixed Arrival Rate
 Demand-Driven Schedulers - Variable Arrival Rate
 Deadline Schedulers - Priority determined by deadline
 …
25
ENSI -- F. Najjar Ordonnancement des Processus 25
Thread Scheduling
❑ Local Scheduling:
How the threads library decides which user thread to run
next within the process
❑ Global Scheduling:
How the kernel decides which kernel thread to run next
ENSI -- F. Najjar Ordonnancement des Processus 26
Exemples d’ordonnancement
❑ Unix: multi-niveaux, plusieurs politiques, qui peuvent changer dans le temps
❑ Linux – multi-niveaux avec 3 niveaux les plus importants
 Realtime FIFO
 Realtime round robin
 Timesharing
❑ Windows Vista – politique avec priorité à deux dimensions:
 Classe des processus prioritaires
Real-time, high, above normal, normal, below normal, idle
 Les priorités des threads sont relatives dela la classe des priorités.
Time-critical, highest, …, idle
ENSI -- F. Najjar Ordonnancement des Processus 27
Exemples d’ordonnancement POSIX
ENSI -- F. Najjar Ordonnancement des Processus 28
Threads scheduling
Annexes
ENSI -- F. Najjar Ordonnancement des Processus 29
Multicore Programming
❑ Multicore or multiprocessor systems putting pressure on programmers,
challenges include: Dividing activities, Balance, Data splitting, Data
dependency, Testing and debugging•
❑ Parallelism implies a system can perform more than one task simultaneously
❑ Concurrency supports more than one task making progress
 Single processor/core, scheduler providing concurrency•
❑ Types of parallelism:
 Data parallelism: distributes subsets of the same data across multiple
cores, same operation on each
 Task parallelism: distributing threads across cores, each thread
performing unique operation
(source: https://www.ida.liu.se/~TDIU11/current/info/II.Processes.pdf)
ENSI -- F. Najjar Ordonnancement des Processus 30
Threads scheduling
❑ Distinction between user-level and kernel-level threads
❑ When threads supported, threads scheduled, not processes
❑ Many-to-one and many-to-many models, thread library schedules user-level
threads to run on LWP
 Known as process-contention scope (PCS) since SCHEDULING
COMPETITION IS WITHIN THE PROCESS
Typically done via priority set by programmer
❑ Kernel thread scheduled onto available CPU is system-contention scope
(SCS) – competition among all threads in system
(source: Silberschatz, Galvin and Gagne. “Operating System Concepts”, 9th edition, 2013)
ENSI -- F. Najjar Ordonnancement des Processus 31
Threads scheduling (1/4)
❑ Mixed
 Mach:
 user-level code to provide scheduling hints to the kernel
 Solaris:
 assign each user-level thread to a kernel-level thread (multiple
user threads can be in one kernel thread)
 creation/switching at the user level
 scheduling at the kernel level
ENSI -- F. Najjar Ordonnancement des Processus 32
Threads Scheduling (2/4)
❑ FastThread package
 hierarchical, event-based scheduling
 each process has a user-level thread scheduler
 virtual processors are allocated to processes
 the # of virtual processors depends on a process's needs
 physical processors are assigned to virtual processors
 virtual processors can be dynamically allocated and deallocated to a
process according to its needs.
 Scheduler Activation (SA)
 event/call from kernel to user-level scheduler
 represents a time slice on a virtual processor (# of SA's < # of
virtual processors)
 user-level scheduler can assign threads to SA's (time slices).
ENSI -- F. Najjar Ordonnancement des Processus
Threads Scheduling (3/4)
❑ Events from user-level scheduler to kernel
 P idle: virtual processor is idle
 P needed: new virtual processor needed
❑ Events from kernel to user-level scheduler
 Virtual processor allocated (P added):
– User-level: scheduler can choose a ready thread to run
 SA blocked (in kernel):
– Kernel: sends a new SA
– User-level: a ready thread is assigned to the new SA to run
 SA unblocked (in kernel):
– user-level: thread is back on the ready queue
– kernel: allocate new virtual processor to process or preempt
another SA
 SA preempted (in kernel):
– user-level: puts the thread back to the ready queue
25
ENSI -- F. Najjar Ordonnancement des Processus
34
Threads Scheduling (4/4) --Scheduler activations
Process
A
Process
B
Virtual processors Kernel
Process
Kernel
P idle
P needed
P added
SA blocked
SA unblocked
SA preempted
A. Assignment of virtual processors
to processes
B. Events between user-level scheduler & kernel
Key: P = processor; SA = scheduler activation

Contenu connexe

Tendances

Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Mansouri Khalifa
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoire
Lilia Sfaxi
 
Systèmes d'Exploitation - chp6-synchronisation
Systèmes d'Exploitation - chp6-synchronisationSystèmes d'Exploitation - chp6-synchronisation
Systèmes d'Exploitation - chp6-synchronisation
Lilia Sfaxi
 
Fiabilite
FiabiliteFiabilite
Fiabilite
Ben Fethi
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoiresSana Aroussi
 
Methodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMethodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifié
Mireille Blay-Fornarino
 
Soutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesSoutenance mémoire de fin d'études
Soutenance mémoire de fin d'études
Fabrice HAUHOUOT
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
Sana Aroussi
 
Les Contraintes | SQL Oracle
Les Contraintes | SQL OracleLes Contraintes | SQL Oracle
Les Contraintes | SQL Oracle
webreaker
 
PFE-Semi.pdf
PFE-Semi.pdfPFE-Semi.pdf
PFE-Semi.pdf
ArfaouiMohamedRami
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
ENSET, Université Hassan II Casablanca
 
Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueRima Lassoued
 
Gpao 6 - Ordonnancement
Gpao 6 - OrdonnancementGpao 6 - Ordonnancement
Gpao 6 - Ordonnancement
ibtissam el hassani
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsSana Aroussi
 
Présentation ERP
Présentation ERPPrésentation ERP
Présentation ERP
naziha harrag
 
Algorithme Colonie de fourmis
Algorithme Colonie de fourmisAlgorithme Colonie de fourmis
Algorithme Colonie de fourmis
kamar MEDDAH
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2
Faycel Chaoua
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
Mohammed TIGHREMT
 

Tendances (20)

Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoire
 
Ordonnancement SJF
Ordonnancement SJFOrdonnancement SJF
Ordonnancement SJF
 
Systèmes d'Exploitation - chp6-synchronisation
Systèmes d'Exploitation - chp6-synchronisationSystèmes d'Exploitation - chp6-synchronisation
Systèmes d'Exploitation - chp6-synchronisation
 
Fiabilite
FiabiliteFiabilite
Fiabilite
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoires
 
Partie1 gpao
Partie1 gpaoPartie1 gpao
Partie1 gpao
 
Methodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMethodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifié
 
Soutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesSoutenance mémoire de fin d'études
Soutenance mémoire de fin d'études
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
 
Les Contraintes | SQL Oracle
Les Contraintes | SQL OracleLes Contraintes | SQL Oracle
Les Contraintes | SQL Oracle
 
PFE-Semi.pdf
PFE-Semi.pdfPFE-Semi.pdf
PFE-Semi.pdf
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétique
 
Gpao 6 - Ordonnancement
Gpao 6 - OrdonnancementGpao 6 - Ordonnancement
Gpao 6 - Ordonnancement
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Présentation ERP
Présentation ERPPrésentation ERP
Présentation ERP
 
Algorithme Colonie de fourmis
Algorithme Colonie de fourmisAlgorithme Colonie de fourmis
Algorithme Colonie de fourmis
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 

Similaire à Ordonnanc-Proc_Threads (1).pdf

gestion de processus
gestion de processusgestion de processus
gestion de processus
MoodyBop
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
MoodyBop
 
Chap06 1
Chap06 1Chap06 1
Chap06 1
Malak Souf
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processusSelman Dridi
 
The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...
DanielMohamed4
 
Cours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfCours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdf
MedBechir
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
Alexandru Radovici
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
Alexandru Radovici
 
Ordonnancement
OrdonnancementOrdonnancement
Ordonnancement
Abbas Ebrahimi
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
Christian Charreyre
 
Guss webcasts Query Memory Grants - june 2013
Guss webcasts   Query Memory Grants - june 2013Guss webcasts   Query Memory Grants - june 2013
Guss webcasts Query Memory Grants - june 2013
David BAFFALEUF
 
Scheduling et gestion des ressources CPU sous Solaris
Scheduling et gestion des ressources CPU sous SolarisScheduling et gestion des ressources CPU sous Solaris
Scheduling et gestion des ressources CPU sous Solaris
gloumps
 
Fr linux job_scheduling
Fr linux job_schedulingFr linux job_scheduling
Fr linux job_schedulingORSYP France
 
Scheduler & SLA
Scheduler & SLAScheduler & SLA
Scheduler & SLA
Ayoub Rouzi
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
Alexandru Radovici
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
SYSTèmes d'exploitation
SYSTèmes d'exploitationSYSTèmes d'exploitation
SYSTèmes d'exploitation
sarah Benmerzouk
 
ordon.ppt
ordon.pptordon.ppt
ordon.ppt
Jabir Arif
 
SdE 4 - Processus
SdE 4 - ProcessusSdE 4 - Processus
SdE 4 - Processus
Alexandru Radovici
 

Similaire à Ordonnanc-Proc_Threads (1).pdf (20)

gestion de processus
gestion de processusgestion de processus
gestion de processus
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
 
Chap06 1
Chap06 1Chap06 1
Chap06 1
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processus
 
The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...
 
Cours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfCours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdf
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
 
Ordonnancement
OrdonnancementOrdonnancement
Ordonnancement
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
 
Guss webcasts Query Memory Grants - june 2013
Guss webcasts   Query Memory Grants - june 2013Guss webcasts   Query Memory Grants - june 2013
Guss webcasts Query Memory Grants - june 2013
 
ex6_solution.pdf
ex6_solution.pdfex6_solution.pdf
ex6_solution.pdf
 
Scheduling et gestion des ressources CPU sous Solaris
Scheduling et gestion des ressources CPU sous SolarisScheduling et gestion des ressources CPU sous Solaris
Scheduling et gestion des ressources CPU sous Solaris
 
Fr linux job_scheduling
Fr linux job_schedulingFr linux job_scheduling
Fr linux job_scheduling
 
Scheduler & SLA
Scheduler & SLAScheduler & SLA
Scheduler & SLA
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre 4 Linux
 
SYSTèmes d'exploitation
SYSTèmes d'exploitationSYSTèmes d'exploitation
SYSTèmes d'exploitation
 
ordon.ppt
ordon.pptordon.ppt
ordon.ppt
 
SdE 4 - Processus
SdE 4 - ProcessusSdE 4 - Processus
SdE 4 - Processus
 

Plus de MbarkiIsraa

NP-complet.ppt
NP-complet.pptNP-complet.ppt
NP-complet.ppt
MbarkiIsraa
 
Format.pptx
Format.pptxFormat.pptx
Format.pptx
MbarkiIsraa
 
correctionTD2JAVA.pdf
correctionTD2JAVA.pdfcorrectionTD2JAVA.pdf
correctionTD2JAVA.pdf
MbarkiIsraa
 
correctionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptxcorrectionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptx
MbarkiIsraa
 
PCD YasBas.pptx
PCD YasBas.pptxPCD YasBas.pptx
PCD YasBas.pptx
MbarkiIsraa
 
PLNE.pptx
PLNE.pptxPLNE.pptx
PLNE.pptx
MbarkiIsraa
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdf
MbarkiIsraa
 
Chapitre2_Partie1.pdf
Chapitre2_Partie1.pdfChapitre2_Partie1.pdf
Chapitre2_Partie1.pdf
MbarkiIsraa
 
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
MbarkiIsraa
 
support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdf
MbarkiIsraa
 
c h02EspaceProbTr.pdf
c h02EspaceProbTr.pdfc h02EspaceProbTr.pdf
c h02EspaceProbTr.pdf
MbarkiIsraa
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
MbarkiIsraa
 
correctionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptxcorrectionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptx
MbarkiIsraa
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
MbarkiIsraa
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
MbarkiIsraa
 
Complexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptComplexité_ENSI_2011.ppt
Complexité_ENSI_2011.ppt
MbarkiIsraa
 
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdfDiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
MbarkiIsraa
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdf
MbarkiIsraa
 
UML.Objet.4pp.pdf
UML.Objet.4pp.pdfUML.Objet.4pp.pdf
UML.Objet.4pp.pdf
MbarkiIsraa
 

Plus de MbarkiIsraa (19)

NP-complet.ppt
NP-complet.pptNP-complet.ppt
NP-complet.ppt
 
Format.pptx
Format.pptxFormat.pptx
Format.pptx
 
correctionTD2JAVA.pdf
correctionTD2JAVA.pdfcorrectionTD2JAVA.pdf
correctionTD2JAVA.pdf
 
correctionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptxcorrectionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptx
 
PCD YasBas.pptx
PCD YasBas.pptxPCD YasBas.pptx
PCD YasBas.pptx
 
PLNE.pptx
PLNE.pptxPLNE.pptx
PLNE.pptx
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdf
 
Chapitre2_Partie1.pdf
Chapitre2_Partie1.pdfChapitre2_Partie1.pdf
Chapitre2_Partie1.pdf
 
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
 
support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdf
 
c h02EspaceProbTr.pdf
c h02EspaceProbTr.pdfc h02EspaceProbTr.pdf
c h02EspaceProbTr.pdf
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
correctionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptxcorrectionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptx
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
Complexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptComplexité_ENSI_2011.ppt
Complexité_ENSI_2011.ppt
 
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdfDiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdf
 
UML.Objet.4pp.pdf
UML.Objet.4pp.pdfUML.Objet.4pp.pdf
UML.Objet.4pp.pdf
 

Ordonnanc-Proc_Threads (1).pdf

  • 1. Chap. III. ORDONNANCEMENT des Processus ENSI -- II2 1. Introduction 2. Types d’ordonnancement 3. Modèle simple d'ordonnancement 4. Politiques d’ordonnancement  Organisations des files d’attente  Ordonnancement FCFS / SJF/ priorité/RR/ SRTF/ Multi- niveaux 5. Hiérarchie d’ordonnancement 6. Ordonnancement des threads FN
  • 2. ENSI -- F. Najjar Ordonnancement des Processus 2 Généralités ✓ Qu’est ce que l’ordonnancement?  Commuter dès qu’un processus se bloque ou se termine
  • 3. ENSI -- F. Najjar Ordonnancement des Processus 3 Généralités (suite) ✓ Le SE contient deux modules gérant le processeur :  Ordonnanceur (scheduler): choisir le processus qui doit s’exécuter  Problème: Dans quel ordre les processus sont servis?  Allocateur (dispatcher): lancer l’exécution du processus choisi par le scheduler ✓ Scheduler (SCHED_FIFO, SCHED_RR, …)  Politique d’ordonnancement? ✓ Dispatcher  Mécanisme d’allocation et contrôle de la CPU?  Commutation de contexte
  • 4. ENSI -- F. Najjar Ordonnancement des Processus 4 Introduction -- Généralités ✓ Ordonnanceur -- Scheduler  Objectif : Sur un intervalle de temps assez grand, faire progresser tous les processus, tout en ayant, à un instant donné, un seul processus actif (dans le processeur).  Rôle: se charge de la commutation de processus, qui règle les transitions d’un état à un autre des différents processus. Multi-programmation: réalisée par l’ordonnanceur, et est activée par des interruptions d’horloge, de disque et de terminaux.
  • 5. ENSI -- F. Najjar Ordonnancement des Processus 5 Introduction -- Objectifs de la Multiprogrammation ✓ Maximiser le taux d’utilisation de l’unité centrale (efficacité) :  Durée(UC_active)/Durée_totale.  En pratique, valeurs comprises entre 40% et 90% (très mauvais - très bon) ✓ Maximiser le débit (nombre de processus utilisateurs traités en moyenne par unité de temps). ✓ Minimiser le temps de traitement moyen  Moyenne des intervalles de temps entre la soumission d’une tâche de sa fin d’exécution. ✓ Minimiser le temps de traitement total (temps de vie d’un processus)  Temps(Résidence_FA_process_Prêts) + Temps(Occup_UC) +Temps(At_FA_E/S) + Temps( Résidence_MS) ✓ Minimiser le temps d’attente
  • 6. ENSI -- F. Najjar Ordonnancement des Processus 6 Critères d’Ordonnancement des Processus ✓ Plusieurs processus sont prêts à être exécutés (queue en RAM). ✓ Le SE doit faire un choix --Algorithme d’ordonnancement:  Equité : chaque processus doit recevoir sa part du temps processeur  Efficacité : le processeur doit être utilisé à 100%  Temps de réponse: l’utilisateur devant sa machine ne doit pas trop attendre (mode interactif)  Temps d’exécution: une séquence d’instructions ne doit pas trop durer (minimiser le temps d’attente en traitement par lots)  Rendement (’’throughput’’): il faut faire le plus de choses en une unité de temps
  • 7. ENSI -- F. Najjar Ordonnancement des Processus 7 Types d’ Ordonnancement des Processus ❑ Les types d’ordonnancements: distingués suivant les transitions permises dans le graphe d'état d’un processus  Ordonnancement sans réquisition –(Preemptive sched.): Pas de Transition actif-prêt: un processus est exécuté jusqu’à la fin : inefficace :-(!  Ordonnancement avec réquisition --(Non Preemptive sched.): Transition actif-prêt:  Temps partagé  à chaque signal d’horloge, le SE reprend la main, décide si le processus courant a consommé son quantum de temps et alloue éventuellement le processeur à un autre processus  Il existe de nombreux algorithmes d’ordonnancement
  • 8. ENSI -- F. Najjar Ordonnancement des Processus 8 Modèle Simple d’Ordonnancement ❑ Représentation de l’ordonnancement des processus –PROCESS QUEUES FA/Queue des prêts UC DISPATCHER Terminaison Demande E/S Queue des E/S E/S Tranche de temps expirée Fork un fils Fils s’exécute exit Attente It Interruption SCHEDULER
  • 9. ENSI -- F. Najjar Ordonnancement des Processus 9 Process scheduling –Process Queues Source: Silberschatz & al., Operating Systems Concepts, 9th Edition, 2013
  • 10. ENSI -- F. Najjar Ordonnancement des Processus 10 Politique d’Ordonnancement – Organisations des FAs ✓ Hypothèse : Un seul processeur + plusieurs processus ✓ Une file d’attente, soit FA (Queue), des processus prêts: Espace réservé dans la mémoire centrale, contenant les informations relatives aux entités que gère la FA (pointer sur les BCPi). ✓ Principe de chaînage d’une FA : avant/ arrière/ mixte ✓ Plusieurs processus sont mis dans une FA, et le service demandé leur est fourni tour à tour, en fonction de critères de gestion spécifiques à la FA. ✓ Plusieurs situations peuvent se produire FA des prêts UC Dispatcher Scheduler Arrivée Réquisition Gère l’allocation du processeur, il peut réquisitionner Service satisfait Sortie Gère la FA : entrée des processus et leur placement
  • 11. ENSI -- F. Najjar Ordonnancement des Processus 11 Algorithmes sans préemption (FIFO, SJF, Priorité) (1) ❑ Algorithme FIFO (First In First Out) -- Premier Arrivé Premier Servi  Un processus s'exécute jusqu'à sa terminaison, sans retrait forcé de la ressource --SCHED_FIFO  Même priorité pour les processus (aucun privilège entre les processus)  Facile à implanter, mais peu efficace (le choix n’est pas lié à l’utilisation de l’UC)
  • 12. ENSI -- F. Najjar Ordonnancement des Processus 12 Algorithmes sans préemption (FIFO, SJF, Priorité) (2) Processus Durée estimée Date d’arrivée P1 24 0 P2 8 1 P3 12 2 P4 3 3 ❑ Hypothèse: Temps de commutation négligeable pour la suite des transparents ❑ Exemple: ❑ Schématiser l’exécution des processus selon leur ordre d'arrivée. Pour cela, on utilise le DIAGRAMME DE GANTT P1 P2 P3 P4 Temps de vie des processus 0 24 32 44 47 ❑ Temps de traitement moyen = [(24 - 0) + (32 - 1) + (44 -2) + (47 -3)]/4 = 35,25
  • 13. ENSI -- F. Najjar Ordonnancement des Processus 13 Algorithmes sans préemption (FIFO, SJF, Priorité) (3) ✓ Algorithme SJF -- Shortest Job First (STCF -- Shortest Time to Completion First) : Algorithme du ’’Plus Court d’Abord ’’ :  Suppose la connaissance des temps d'exécution : estimation de la durée de chaque processus en attente  Les processus sont disponibles simultanément → Algorithme optimal (sans préemption)  Exécuter le processus le plus court → Minimise le temps moyen d'exécution  Analogie avec la FA à une caisse de grande surface, où une règle de politesse est de laisser passer quelqu’un qui a peu de choses si l’on a plein dans le caddie
  • 14. ENSI -- F. Najjar Ordonnancement des Processus 14 Algorithmes avec préemption (Priorité, RR, SRTF) (1) ✓ A chaque processus est assignée (automatiquement par le SE /externe) une priorité  Assignation statique -- priorités fixes → facile à implanter  Assignation dynamique : la priorité initiale assignée à un processus peut être ajustée à d ’autres valeurs → difficile à implanter  Pb. de famine (Starvation): un processus de faible priorité peut ne jamais s'exécuter si des processus plus prioritaires se présentent constamment  Recalculer périodiquement le numéro de priorité des processus (plusieurs FA) → la priorité d’un processus décroît (croit) au cours du temps pour ne pas bloquer les autres FA ✓ Principe : On lance le processus ayant la plus grande priorité Algorithme d’ordonnancement à classes de priorité
  • 15. ENSI -- F. Najjar Ordonnancement des Processus 15 Algorithmes avec préemption (Round Robin, Priorité, SRTF) (2) ✓ ROUND ROBIN (SCHED_RR) : algorithme tourniquet, l’un des plus utilisés et des plus fiables  Ordonnancement selon l’ordre FIFO + préemption (Equitable)  Chaque processus possède un quantum de temps pendant lequel il s’exécute  Lorsqu’un processus épuise son quantum de temps : au suivant !  S’il n’a pas fini : le processus passe en queue du tourniquet et au suivant ! ✓ Exemple : Le quantum de temps, Q, est égale à 2 unités; quel est le temps de traitement moyen? Exécution CPU P1 (3 unités) P2 (4 unités) P3 (2 unités) P4 (3 unités) P8 (2 unités) P7 (4 unités) P6 (5 unités) P5 (3 unités) Q Q Q Q Q Q Q Q
  • 16. ENSI -- F. Najjar Ordonnancement des Processus 16 ✓ Temps de traitement moyen = [(17-0) + (19-1) + (6-2) + (20-3) + (21-4) + (26-5) + (25-6) + (16-7)] /8 = 15,25 ✓ Problème = réglage du quantum (petit/grand; fixe/variable;est-il le même pour tous les processus ?)  Les quanta égaux rendent les différents processus égaux  Quantum trop petit provoque trop de commutations de processus  Le changement de contexte devient coûteux (perte de temps CPU)  Quantum trop grand : augmentation du temps de réponse d’une commande (même simple)  RR dégénère vers FIFO  Réglage correct : varie d’un système (resp. d’une charge) à un autre et d’un processus à un autre ✓ Il existe d ’autres variantes de RR, telle que RR avec priorités Algorithme Tourniquet -- Round Robin (suite) P1 0 2 P2 P3 P4 P5 P6 P7 P8 P1 P2 P4 P5 P6 4 6 8 10 12 14 16 17 19 20 21 23 P7 P6 25 26 Temps de vie Diagramme de Gantt (Q=2 unités)
  • 17. ENSI -- F. Najjar Ordonnancement des Processus 17 Algorithme Tourniquet avec priorités ✓ Le système de gestion possède n FA à différents niveaux de priorités (+ différents quanta) FA n-1 (Q n-1) FA1 (Q1) FA 0 (Q 0) CPU Réquisition Arrivée + - Priorité Scheduler Dispatcher Terminaison Q 0  Q 1  Q 2  ...  Q n-1 ✓ A son arrivée, le processus est rangé dans la FA la plus prioritaire FA0 ✓ Si un processus dans FAi épuise son quantum de temps Qi (0 i n-2), il sera placé dans la FAi+1 (moins prioritaire)  Une FAi (0  i n-1 ) ne peut être servie que si toutes les FAj (0  j< i) sont vides  un processus qui a traversé toutes les FA sans épuiser son temps de traitement reste dans la FA la moins prioritaire.
  • 18. ENSI -- F. Najjar Ordonnancement des Processus 18 ❑ Algorithme SRTF (Shortest Remaining Time First) -- SJF avec réquisition  Choisir le processus dont le temps d'exécution restant est le plus court  Il y a réquisition selon le critère de temps d'exécution restant et l'arrivée d’un processus  Possibilité de morcellement d’un processus  Nécessité de sauvegarder le temps restant ❑ Exemple : Algorithmes avec préemption (RR, Priorité, SRTF) (3) Processus Durée estimée Date d’arrivée P1 8 0 P2 5 2 P3 5 3 P4 2 4 P1 0 2 P2 P4 P1 4 6 9 14 20 Temps de vie Diagramme de Gantt P2 P3 P1 ❑ Temps de traitement moyen = [(20 - 0) + (9 -2) + (14 -3) + (6-4)]/4 = 9,5 ❑ Théoriquement, + SRTF offre un minimum de temps d’attente; - difficile de prédire le futur
  • 19. ENSI -- F. Najjar Ordonnancement des Processus 19 Hiérarchie d’Ordonnancement (1) ❑ 2 types différents:  Ordonnancement à court terme (short term scheduling or CPU scheduling ):  Seulement les processus prêts en mémoire centrale sont considérés  rapide (de l’ordre de millisecondes)  Ordonnancement à long terme (long term scheduling or job scheduling):  consiste à utiliser un deuxième algorithme d’ordonnancement pour gérer les ‘’swapping ’’ des processus prêts entre le disque et la RAM  plus lent (de l’ordre de seconde/mn) FA des E/S ’’Swap out’’ Processus FA des Prêts UC Sortie E/S Arrivée
  • 20. ENSI -- F. Najjar Ordonnancement des Processus 20 Hiérarchie d’Ordonnancement (2) ✓ Ordonnancement multi-niveaux permet de satisfaire :  Favoriser les processus courts  Favoriser les processus ‘’I/O Bound’’, qui ne demandent pas trop l ’UC  Déterminer la nature de chaque processus le plutôt possible et effectuer l’ordonnancement correspondant ✓ Files d’attente sans liens : un processus se trouvant dans dans FAi ne peut se trouver dans FAj (ji); il reste dans FAi jusqu’à ce qu’il se termine FA n-1 FA1 FA 0 CPU Réquisition + - Priorité fixe Terminaison Processus Système Processus Interactifs (RR) (FCFS/SJF)
  • 21. ENSI -- F. Najjar Ordonnancement des Processus 21 Hiérarchie d’Ordonnancement (3) ✓ Files d’attente avec liens : hiérarchiser les FAs FA n-1 FA1 FA 0 CPU Réquisition Terminaison (RR) (FCFS) Arrivée niveau 0 (FCFS) Arrivée niveau 1 Arrivée niveau n-1 ✓ Un processus dans FAi ne peut être sélectionné que si toutes les FAj (j<i) sont toutes vides ✓ Permettre aux processus de se déplacer d’une FA à une autre  Hiérarchie descendante/ascendante/bidirectionnelle ✓ Changement dynamique dans le comportement des processus ✓ Chaque FA a son propre algorithme d’ordonnancement  Descendante FA0 est gérée avec FCFS  Ascendante Fn_1 est gérée avec FCFS
  • 22. ENSI -- F. Najjar Ordonnancement des Processus Autres Scheduling …. 25
  • 23. ENSI -- F. Najjar Ordonnancement des Processus Multiple-Processor Scheduling ❑ CPU scheduling becomes more complex when multiple CPUs are available.  Have one ready queue accessed by each CPU.  Self scheduled - each CPU dispatches a job from ready Q  Manager-worker - one CPU schedules the other CPUs ❑ Homogeneous processors within multiprocessor.  Permits Load Sharing ❑ Asymmetric multiprocessing  Only 1 CPU runs kernel, others run user programs 25
  • 24. ENSI -- F. Najjar Ordonnancement des Processus Real-Time Scheduling ❑ Hard Real-time Computing:  required to complete a critical task within a guaranteed amount of time. ❑ Soft Real-time Computing:  requires that critical processes receive priority over less important ones. ❑ Types of real-time Schedulers:  Periodic Schedulers - Fixed Arrival Rate  Demand-Driven Schedulers - Variable Arrival Rate  Deadline Schedulers - Priority determined by deadline  … 25
  • 25. ENSI -- F. Najjar Ordonnancement des Processus 25 Thread Scheduling ❑ Local Scheduling: How the threads library decides which user thread to run next within the process ❑ Global Scheduling: How the kernel decides which kernel thread to run next
  • 26. ENSI -- F. Najjar Ordonnancement des Processus 26 Exemples d’ordonnancement ❑ Unix: multi-niveaux, plusieurs politiques, qui peuvent changer dans le temps ❑ Linux – multi-niveaux avec 3 niveaux les plus importants  Realtime FIFO  Realtime round robin  Timesharing ❑ Windows Vista – politique avec priorité à deux dimensions:  Classe des processus prioritaires Real-time, high, above normal, normal, below normal, idle  Les priorités des threads sont relatives dela la classe des priorités. Time-critical, highest, …, idle
  • 27. ENSI -- F. Najjar Ordonnancement des Processus 27 Exemples d’ordonnancement POSIX
  • 28. ENSI -- F. Najjar Ordonnancement des Processus 28 Threads scheduling Annexes
  • 29. ENSI -- F. Najjar Ordonnancement des Processus 29 Multicore Programming ❑ Multicore or multiprocessor systems putting pressure on programmers, challenges include: Dividing activities, Balance, Data splitting, Data dependency, Testing and debugging• ❑ Parallelism implies a system can perform more than one task simultaneously ❑ Concurrency supports more than one task making progress  Single processor/core, scheduler providing concurrency• ❑ Types of parallelism:  Data parallelism: distributes subsets of the same data across multiple cores, same operation on each  Task parallelism: distributing threads across cores, each thread performing unique operation (source: https://www.ida.liu.se/~TDIU11/current/info/II.Processes.pdf)
  • 30. ENSI -- F. Najjar Ordonnancement des Processus 30 Threads scheduling ❑ Distinction between user-level and kernel-level threads ❑ When threads supported, threads scheduled, not processes ❑ Many-to-one and many-to-many models, thread library schedules user-level threads to run on LWP  Known as process-contention scope (PCS) since SCHEDULING COMPETITION IS WITHIN THE PROCESS Typically done via priority set by programmer ❑ Kernel thread scheduled onto available CPU is system-contention scope (SCS) – competition among all threads in system (source: Silberschatz, Galvin and Gagne. “Operating System Concepts”, 9th edition, 2013)
  • 31. ENSI -- F. Najjar Ordonnancement des Processus 31 Threads scheduling (1/4) ❑ Mixed  Mach:  user-level code to provide scheduling hints to the kernel  Solaris:  assign each user-level thread to a kernel-level thread (multiple user threads can be in one kernel thread)  creation/switching at the user level  scheduling at the kernel level
  • 32. ENSI -- F. Najjar Ordonnancement des Processus 32 Threads Scheduling (2/4) ❑ FastThread package  hierarchical, event-based scheduling  each process has a user-level thread scheduler  virtual processors are allocated to processes  the # of virtual processors depends on a process's needs  physical processors are assigned to virtual processors  virtual processors can be dynamically allocated and deallocated to a process according to its needs.  Scheduler Activation (SA)  event/call from kernel to user-level scheduler  represents a time slice on a virtual processor (# of SA's < # of virtual processors)  user-level scheduler can assign threads to SA's (time slices).
  • 33. ENSI -- F. Najjar Ordonnancement des Processus Threads Scheduling (3/4) ❑ Events from user-level scheduler to kernel  P idle: virtual processor is idle  P needed: new virtual processor needed ❑ Events from kernel to user-level scheduler  Virtual processor allocated (P added): – User-level: scheduler can choose a ready thread to run  SA blocked (in kernel): – Kernel: sends a new SA – User-level: a ready thread is assigned to the new SA to run  SA unblocked (in kernel): – user-level: thread is back on the ready queue – kernel: allocate new virtual processor to process or preempt another SA  SA preempted (in kernel): – user-level: puts the thread back to the ready queue 25
  • 34. ENSI -- F. Najjar Ordonnancement des Processus 34 Threads Scheduling (4/4) --Scheduler activations Process A Process B Virtual processors Kernel Process Kernel P idle P needed P added SA blocked SA unblocked SA preempted A. Assignment of virtual processors to processes B. Events between user-level scheduler & kernel Key: P = processor; SA = scheduler activation