Académique Documents
Professionnel Documents
Culture Documents
Principes et Algorithmes
1
Systèmes multitâches : principes et algorithmes
Plan du Cours
2
Systèmes multitâches : principes et algorithmes
Bibliographie
3
Systèmes multitâches : principes et algorithmes
Bibliographie (2)
4
Systèmes multitâches : principes et algorithmes
I. Eléments d’Architecture
1. Organisation générale
a) Rôle(s) d’un système d’exploitation
b) Architecture fonctionnelle
c) Mécanismes de protection de l’exécutif
d) Architectures types
2. Gestion de l’activité des processus
3. Interface avec le système
5
I.1 Organisation générale
6
I.1 Organisation générale
7
I.1 Organisation générale
Architecture Fonctionnelle
8
I.1 Organisation générale
Exemple d’Architecture fonctionnelle :
Le noyau NT
SERVICES SYSTEME
gestion Moniteur gestion gestion local gestion
d’objets refér. & processus memoire proc call E/S
sécurité virtuelle
Système de fichiers
NOYAU Gestion Cache
Pilotes de périphériques
Pilotes réseau
Couche d’abstraction du matériel (HAL)
MATERIEL
9
I.1 Organisation générale
Exemple d’Architecture Fonctionnelle :
Logiciels de base Unix
applications
logiciels de base
xclock ksh shell
clients noyau sh
fvwm gestion ls sys
matériel ps (POSIX)
http
gcc
NFS
X11 make
serveurs devel
10
I.1 Organisation générale
Architecture fonctionnelle :
principe directeur
∀ le langage, tout programme est formé
d’instructions internes (au langage)
d’appels à des primitives de bibliothèques
« externes » (via une API : Application
Programming Interface)
• graphique
• réseau
…
• Système : invoque les services systèmes
11
I.1 Organisation générale
Architecture fonctionnelle :
principe directeur (2)
Un système informatique est vu comme une
hiérarchie de machines et de langages
Interface spécifique de
Applications l’application
Environnement
Utilitaires, bibliothèques, utilisateur
services
Appels système
Exécutif système (primitives)
Langage machine (jeu
Micro-machine d’instructions)
Composants architecturaux Microprogrammation
Algèbre de boole
Circuits matériels
12
I.1 Organisation générale
Mécanismes de protection de l’exécutif
13
I.1 Organisation générale
Mécanismes de protection de l’exécutif (2)
Combinaison de 2 mécanismes :
1. Mode d’exécution privilégié
2. Espace d’adressage système
14
I.1 Organisation générale
Mécanismes de protection de l’exécutif :
Mode d’exécution privilégié
CPU (Central Processing Unit) passe en mode
privilégié (« maître » ou « superviseur »)
permission d’exécuter des instructions
supplémentaires
• Ex: gestion des masques d’interruptio
permission d’accéder à des registres
supplémentaires
• Ex: accès aux registres de la MMU (Memory
Management Unit)
15
I.1 Organisation générale
Mécanismes de protection de l’exécutif :
Mode d’exécution privilégié (2)
Passage (basculement) en mode d’exécution
privilégié strictement contrôlé :
Les processus sont libres de basculer en mode
privilégié quand ils veulent …
… MAIS NE sont PAS libres d’exécuter leur propre
code après le basculement en mode privilégié
Les processus basculent afin d’exécuter un
(sous)programme préexistant du système
• lire des données sur le disque dur
• attendre que x secondes se soient écoulées, etc
16
I.1 Organisation générale
Mécanismes de protection de l’exécutif :
Espace d’adressage système
Le code et les données de l’exécutif sont placés dans
un espace de mémoire réservé
accessible uniquement en mode privilégié
Espace mémoire d’un processus (programme en
cours d’exécution) :
Espace mémoire propre,
• librement accessible en mode non privilégié (y compris par
d’autres processus, mais sous certaines conditions)
• librement accessible à tout processus en mode privilégié
Espace mémoire système,
• inaccessible en mode non privilégié
• librement accessible à tout processus en mode privilégié
17
I.1 Organisation générale
Mécanismes de protection de l’exécutif :
Exemple
L’espace d’adressage sous windows NT
« vue » de P1 « vue » de P2
@4Go @4Go
Code et Code et
Mode d’accès :
Données de privilégié
Données de
l’exécutif l’exécutif
@2Go @2Go
Code et Code et
Mode d’accès :
Données Données
privilégié ou
propres du normal propres du
processus P1 processus P2 @0Go
@0Go
18
I.1 Organisation générale
Architectures types
Systèmes monolithiques
Pas vraiment d’organisation : un seul gros
programme
Convient pour les petits S.E. (minix, DOS)
19
I.1 Organisation générale
Architectures types (2)
Emacs ls Application 1
mode
utilisateur
Interface des Services système mode
privilégié
procédures de l’exécutif
MATERIEL
20
I.1 Organisation générale
Architectures types (3)
21
I.1 Organisation générale
Architectures types (4)
Ordonnancement du CPU
MATERIEL
22
I.1 Organisation générale
Architectures types (5)
23
I.1 Organisation générale
Architectures types (6)
MATERIEL
24
I.1 Organisation générale
Architectures types (7)
Solutions mixtes
Pour des raisons de performances
• 4 appels de services, mêmes légers, c’est
souvent trop coûteux
Exécutif plus intelligent (que micro-noyau),
organisés en couches/modules + serveurs
pour les plupart des services
Ex : NT, Solaris (noyau multi-thread)
25
Systèmes multitâches : principes et algorithmes
I. Eléments d’Architecture
1. Organisation générale
2. Gestion de l’activité des processus
a) La notion de processus
b) Mécanismes logiciels
c) Mécanismes matériels
3. Interface avec le système
26
I.2 Gestion de l’activité des processus
La notion de processus
27
I.2 Gestion de l’activité des processus
La notion de processus
28
I.2 Gestion de l’activité des processus
Mécanismes logiciels
29
I.2 Gestion de l’activité des processus
Mécanismes logiciels (2)
ordonnanceur
Suspendu Bloqué
Prêt ressource
« continuer » (endormi)
(éligible) obtenue
30
I.2 Gestion de l’activité des processus
Mécanismes logiciels (3)
31
I.2 Gestion de l’activité des processus
Mécanismes matériels
32
I.2 Gestion de l’activité des processus
Mécanismes matériels (2)
34
I.2 Gestion de l’activité des processus
Mécanismes matériels (4)
36
I.2 Gestion de l’activité des processus
Mécanismes matériels (6)
37
Systèmes multitâches : principes et algorithmes
I. Eléments d’Architecture
1. Organisation générale
2. Gestion de l’activité des processus
3. Interface avec le système
a) Appel (au) système
b) Envoi de signaux
38
I.3 Interface avec le système
Appel système
39
I.3 Interface avec le système
Appel système (2)
40
I.3 Interface avec le système
Appel système (3)
41
I.3 Interface avec le système
Appel système (4)
2 appel : 3 vérifications
commutation
4 début exécution service
P2 élu …
5 fin exécution:
résultats sur la pile 7
7 retour
retour:
6 commutation
1
2
42
I.3 Interface avec le système
Envoi d’un signal à un processus
43
I.3 Interface avec le système
Envoi d’un signal à un processus
Plan du Cours
45
Systèmes d’Exploitation : principes et algorithmes
II. Ordonnancement
1. Introduction
2. Ordonnancement sans réquisition
3. Ordonnancement avec réquisition
2
II.1 Introduction
Exposé du problème
3
II.1 Introduction
Rôle, objectifs
Exemple : le CPU
Objectif : Aboutir à un partage efficace du temps
d’utilisation du processeur
Problème : que veut dire efficace ? Efficace pour qui ?
4
II.1 Introduction
Exemple : Quelques Critères d’efficacité
pour l’Ordonnancement du CPU
Respect de la priorité
La plupart des systèmes permettent d’accorder des priorités
différentes aux processus…
Priorité peut être statique ou dynamique (change au cours du
temps) …
Respect de l’équité
Deux processus qui ont le même niveau de priorité doivent pouvoir
utiliser le CPU aussi souvent l’un que l’autre
Utilisation maximale du processeur
maximiser TauxUtilisation(CPU) = Durée_Actif(CPU)/Durée_Totale
Débit processus
maximiser Débit = NombreProcessusTerminés/UnitéTemps
Temps de traitement moyen : minimal (processus interactif)
Temps de réponse maximum : minimal (processus interactif)
5
II.1 Introduction
Remarque
6
II.1 Introduction
Classification des algorithmes
d’Ordonnancement
Dans un monde « idéal » (statistiquement) :
le hasard fait bien les choses : les processus endormis ne se
réveillent pas tous en même temps
Dans la réalité :
c’est souvent le contraire car les activités des processus sont
« corrélées » : les processus ne se réveillent pas au hasard
…
⇒ 2 familles d’algorithmes :
• Sans réquisition : c’est aux processus de relâcher
volontairement la ressource
• Avec réquisition : l’algorithme est capable de récupérer la
ressource détenue par un processus au profit d’un autre
7
II.1 Introduction
8
Systèmes d’Exploitation : principes et algorithmes
II. Ordonnancement
1. Introduction
2. Ordonnancement sans réquisition
3. Ordonnancement avec réquisition
4. Ordonnancement dans les systèmes multi-
thread
9
II.2 Ordonnancement sans réquisition
Description
Mise en oeuvre
11
II.2 Ordonnancement sans réquisition
Politiques de choix
12
II.2 Ordonnancement sans réquisition
13
II.2 Ordonnancement sans réquisition
14
Systèmes d’Exploitation : principes et algorithmes
II. Ordonnancement
1. Introduction
2. Ordonnancement sans réquisition
3. Ordonnancement avec réquisition
4. Ordonnancement dans les systèmes multi-
thread
15
II.3 Ordonnancement avec réquisition
Description
Motivations
Politiques sans réquisition mal adaptées voire
inadaptées à certaines activités
• Temps réel
• Interactivité
Réquisition :
Forcer le partage du temps d’utilisation (modulo
contraintes de priorités)
amélioration temps de traitement maximum
déterioration temps de traitement moyen
16
II.3 Ordonnancement avec réquisition
Mise en oeuvre
17
II.3 Ordonnancement avec réquisition
Mise en œuvre :
Difficultés liées à l’interruption
Un processus peut être interrompu alors qu’il exécute une
fonction de l’exécutif
Problème si fonction non ré-entrante :
• Le nouveau/futur élu peut demander à son tour l’exécution de la même
fonction :
– Réutilisation d’une même variable globale
– Insertion non terminée dans une liste chaînée
–…
Solution : retarder la commutation jusqu’à ce que l’exécution
atteigne un point de commutation
Points de commutation
cas « simple » (linux <= 2.1) : un seul, en sortie du mode noyau
cas « difficile » (linux >= 2.1) : plusieurs aménagés à l’intérieur de
l’exécutif
18
II.3 Ordonnancement avec réquisition
Un grand classique :
La politique du tourniquet
Politique du Tourniquet (Round Robin / RR)
idée : Fournir à l’une quelconque des n entités en attente,
1/n ème du temps d’utilisation de la ressource
pb : n varie au cours du temps
Solution : le temps est découpé en tranches de taille (durée)
identique, appelées quantum de temps
• Les entités sont placées dans une file
• La ressource est allouée à l’entité en tête de la file, pour une
durée d’au maximum un quantum
• Lorsque le quantum est épuisé, l’entité est interrompue et
replacée à la fin de la file d’attente
19
II.3 Ordonnancement avec réquisition
Politique du tourniquet :
Problème de choix du quantum
Durée ni trop courte …
Lorsque la durée du quantum est écoulée, il faut déclencher un
changement de contexte
Un changement de contexte prend du temps
⇒ Plus le quantum de temps est petit, plus on perd souvent du temps
à changer de contexte !
… ni trop longue :
L’illusion d’exécution concurrente (parallèle) s’estompe
Lorsque la durée est trop longue, l’interactivité diminue
• Exemple :
Quantum = 1s, 3 tâches de longues durée sont présentes et attendent
le processeur. Elles comptent utiliser systématiquement tout leur
quantum.
Une tâche interactive ne peut obtenir le processeur au mieux que toutes
les 3 secondes (délai entre frappe clavier et affichage d’au moins 3
secondes …)
20
II.3 Ordonnancement avec réquisition
Politique du Tourniquet:
Mise en œuvre du partage du temps CPU
Horloge programmée
déclenche une interruption à intervalles de
temps réguliers
• interruption appelée « tic d’horloge » : tic, tac, …
Le traitant de l’interruption :
1. Décompte du temps d’occupation CPU pour l’entité
courante (initialisé à la valeur de quantum)
2. Si temps restant = 0 : lancer algorithme
d’ordonnancement pour choisir un nouveau processus
3. Autres actions non liées à l’ordonnancement
4. actions liées à l’ordonnancement effectuées à des
ticks principaux (versions évoluées du tourniquet)
5. Commutation de contexte vers entité élue
21
II.3 Ordonnancement avec réquisition
Politique du tourniquet :
Exemple d’application sous Linux
Tourniquet évolué : Politique tourniquet +
priorité dynamique
Mode de fonctionnement du tourniquet :
Matériel (PC) : jusqu’à 3 horloges (selon
génération du processeur) !
Linux utilise le PIT (Programmable Interval Timer)
• L’interruption du PIT (un tick) déclenche un changement
de contexte
• Linux programme le PIT pour être interrompu 100 fois
par seconde (donc un tick = 10 ms écoulées)
• Le quantum est fixé à environ 20 ticks = 200 ms
22
II.3 Ordonnancement avec réquisition
Politique d’ordonnancement préemptif
(l’autre grand classique)
Préemption :
« Faculté que détient une personne ou une administration
en vertu de la loi ou d’un contrat d’acquérir un bien de
préférence à tout autre »
En théorie : A tout instant la ressource est détenue
par l’entité de plus haute priorité
Il faut donc retirer la ressource à l’entité qui la possède
lorsqu’elle n’est plus la plus prioritaire
En pratique :
Il suffit que l’exécutif regarde la priorité d’une entité qui naît
ou se réveille
Si commutation retardée (cf. pb ré-entrance), on parle
d’inversion de priorité
23
II.3 Ordonnancement avec réquisition
Ordonnancement préemptif :
Traitement du problème de famine
Problème : Famine des entités de faible
priorité
Solution : ajustement dynamique des priorités
• Plus une entité attend longtemps, plus sa priorité
augmente
• Lorsqu’une entité obtient (enfin) la ressource, sa priorité
redescend au niveau initial
Conséquence : provoque de nombreux
changements dans les files de priorités
• Car les processus de même niveau de priorité sont
placés sur une même file (généralement FIFO)
⇒ La gestion des files doit être efficace !
24
II.3 Ordonnancement avec réquisition
Ordonnancement préemptif :
Mise en œuvre (pour la ressource CPU)
Lors des ticks principaux
SOIT : recalcul des priorités dynamiques de toutes les
entités prêtes, selon formle +/- compliquée, en fonction de
• priorité initiale (statique)
• nombre de tics d’horloges écoulés depuis dernier ajustement
• nombre total de ticks d’horloge utilisés sur une période donnée
• charge du système (nb de processus prêts)
SOIT : Ajustement de la priorité de l’entité élue
• diminution de la priorité dynamique si quantum a été utilisé en
entier
• augmentation de la priorité dynamique si l’entité bloque
volontairement (E/S) : quantum non utilisé en entier
25
II.3 Ordonnancement avec réquisition
Politique d’ordonnancement mixte :
Préemptif + temps partagé
Avant tout préemptif (FIFO avec priorité)
Tourniquet à l’intérieur d’une FIFO
Passage a file FIFO de priorité inférieur quand toutes celles
des niveaux supérieurs sont vides
Remarques :
Si l’entité élue est la plus prioritaire, elle peut garder la
ressource plus longtemps que la durée du quantum
Politiques des SE dits « mutiprocessus à temps partagé »
(Unix, NT, …)
Possibilité d’avoir une valeur de quantum différente par
niveau de priorité
26