Vous êtes sur la page 1sur 70

Systèmes Multitâches

Principes et Algorithmes

1
Systèmes multitâches : principes et algorithmes

Plan du Cours

Chapitre 1 : Eléments d’Architecture


Chapitre 2 : Ordonnancement
Chapitre 3 : Gestion de la mémoire

2
Systèmes multitâches : principes et algorithmes

Bibliographie

« Systèmes d’exploitation : concepts et algorithmes »,


J. Beauquier & B. Berard
McGraw Hill, 1990.
« Systèmes d’Exploitation : systèmes centralisés,
systèmes distribués »
A. Tanenbaum
McGraw Hill, 1990
Traduction française (2e ed) : Dunod, 1999.
« Conception du Système Unix »
M.J. Bach
Prentice Hall, 1986
Traduction Française : Masson 1991

3
Systèmes multitâches : principes et algorithmes

Bibliographie (2)

« Operating Systems Concepts »


A. Silberschatz & P. Galvin
5e ed, Addison-Wesley, 1998
« UNIX Internals : The new Frontiers »
U. Vahalia
Prentice Hall, 1996
« Le guide officiel sur l’architecture et le noyau
Windows NT »
A. D. Solomon
2nd ed., Microsoft Press, 1998

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

Rôles d’un système d’exploitation

Masquer le matériel en fournissant la notion


de ressource :
Abstraction indépendante des détails matériels
• On utilise la même instruction pour lire sur un disque dur
ou une disquette
Abstraction protégée par le système
• Gestion interne à l’exécutif (noyau)
• Impossible (en principe) de « planter » un périphérique
à cause d’une erreur de programmation

6
I.1 Organisation générale

Rôles d’un système d’exploitation (2)

Contrôler et gérer l’accès aux ressources


Plusieurs programmes peuvent s’exécuter en
même temps
• multi-tâches / mono-tâche
Plusieurs utilisateurs peuvent utiliser le système
en même temps
• multi-utilisateurs / mono-utilisateur
Exemples :
• UNIX : multi-tâches + multi-utilisateurs
• NT : multi-tâches + mono-utilisateur

7
I.1 Organisation générale

Architecture Fonctionnelle

1. Exécutif système : le programme du noyau


Gestion des processus
Gestion du matériel
2. Logiciel(s) de base : programmes utilitaires
complémentaires
intermédiaires entre le programme noyau et les
programmes utilisateurs
simplifient l’utilisation du système
• shells, commandes d’impression, listage de fichiers, etc.
POSIX : norme qui définit (entre autre) une liste minimale
de commandes

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

Protection de l’exécutif indispensable :


garantir la bonne utilisation du matériel
garantir le respect de règles d’arbitrage ou
de fonctionnement préétablies
• Equité (égalité des chances)
• Priorités, contraintes temps réel
garantir la sécurité et la confidentialité
• Protection des fichiers, de la mémoire, des
périphériques (clavier), du réseau, …

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)

Exemple de système monolithique

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)

Systèmes organisés en couches


une couche est prévue pour :
• (ne) rendre service (qu’)à la couche
immédiatement supérieure
• (n’) utiliser (que) les services de la couche
immédiatement inférieure
Exemple : multics, l’ancêtre d’UNIX

21
I.1 Organisation générale
Architectures types (4)

Exemple d’architecture en couches

Emacs ls Application 1 mode


utilisateur
Interface des Services système mode
privilégié
Systèmes de gestion de fichiers

Gestion mémoire et entrées/sorties

Ordonnancement du CPU

MATERIEL
22
I.1 Organisation générale
Architectures types (5)

Système organisés selon le modèle client-


serveur
Fonctions systèmes confiées à des processus
serveurs
Un noyau minimal (micro-noyau) :
• permet la communication entre clients et serveurs
• permet la communication entre serveurs et matériel
Nombreux avantages :
• modularité, extensibilité, tolérance aux pannes
• Exécution distribuée/parallèle
Ex: DEC OSF/1 (micro noyau MACH)

23
I.1 Organisation générale
Architectures types (6)

Exemple d’architecture client/serveur


serveur de serveur de
Appli 1
réseau fichiers
4 svc classique mode
svc léger 2 utilisateur
Interface des Services système mode
privilégié
1 3
micro-noyau

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

Processus = programme en cours d’exécution


les processus sont en compétition pour
l’obtention des ressources
En particulier le processeur
Mais aussi : disques, réseau, mémoire,
imprimante, …
Partage du CPU (time-sharing)
Donne l’illusion d’exécution en parallèle (pseudo-
parallélisme)

27
I.2 Gestion de l’activité des processus
La notion de processus

Pourquoi plusieurs processus ?


Utiliser au maximum le processeur
• Mettre à profit les périodes d’inactivité d’un
processus pour permettre à un autre d’avancer
Faciliter l’exécution de tâches concurrentes
(multi-tâches)
Permettre à plusieurs utilisateurs
d’exécuter leur propres programme sans
concertation (multi-utilisateurs)

28
I.2 Gestion de l’activité des processus
Mécanismes logiciels

Processus = Etat + Contexte


Etat :
ELU : Possesseur de la ressource CPU
PRÊT (éligible) : En attente de la res. CPU
BLOQUE (endormi) : En attente d’une autre
ressource (ou événement) :
• E/S, expiration délai, signal, …
éventuellement SUSPENDU (stoppé) : Attente
sans condition
• jusqu’à demande de continuation (dégel)
• Ex: Ctrl-Z sous Unix

29
I.2 Gestion de l’activité des processus
Mécanismes logiciels (2)

Changement d’état en fonction d’un graphe de


transitions
Transition volontaires
Transitions contrôlées par algorithme (politique)
d’ordonnancement
Exemple de graphe de transitions
Elu demande
« Ctrl-Z » (en exécution) ressource

ordonnanceur
Suspendu Bloqué
Prêt ressource
« continuer » (endormi)
(éligible) obtenue
30
I.2 Gestion de l’activité des processus
Mécanismes logiciels (3)

Contexte d’un processus = toutes les


informations concernant le processus
Espace d’adressage
• Code du programme (TEXTE)
• Zone(s) de données (contantes, pile, tas, …)
• Environnement hérité (unix: variables exportées)
Informations de contrôle pour le système
• carte occupation mémoire, pile noyau
• Process Control Block : sauvegarde du contexte matériel
(registres)
• fichiers ouverts
• identification, permissions, …

31
I.2 Gestion de l’activité des processus
Mécanismes matériels

Commutation de contexte : mécanisme


matériel indivisible :
a) Sauvegarde du contexte matériel (PSW:
Process Status Word) dans le contexte logiciel
(PCB)
b) Chargement d’un nouveau PSW à partir du PCB
d’un autre processus
Rem: a) souvent minimal, donc la fin de la
sauvegarde du contexte du premier processus
est souvent prise en charge par le second

32
I.2 Gestion de l’activité des processus
Mécanismes matériels (2)

Interruption : un signal (matériel ou logiciel)


qui déclenche une commutation de contexte
matériel
L’interruption est une conséquence de l’exécution
en cours
• Déroutement : traitement d’une erreur d’exécution
• Appel système : le programme fait explicitement appel
au système pour obtenir un service (SVC: SuperVisor
Call)
L’interruption est indépendante de l’exécution en
cours
• Interruption matérielle (généralement provoquée par un
périphérique ou co-processeur)
33
I.2 Gestion de l’activité des processus
Mécanismes matériels (3)

Plusieurs types d’interruption : horloge,


disque, console, erreur …
A chaque type d’interruption correspond un
traitement spécifique
Ce traitement spécifique prend du temps !
• Il y a des chances pour qu’une ou plusieurs nouvelles
interruptions se produisent alors que le traitement de la
première n’est pas terminé !
Que faire lorsque plusieurs interruptions se
produisent en même temps ?

34
I.2 Gestion de l’activité des processus
Mécanismes matériels (4)

Les types d’interruption sont classés par


niveaux de priorité
Le traitant d’une interruption d’un niveau
donné,
ne peut être interrompu que par une interruption
de priorité supérieure
bloque le traitement des interruptions de niveaux
de priorité plus faible (ou égal, selon les cas)
Vecteur d’interruption :
indique pour chaque niveau de priorité, l’adresse
du traitement à exécuter
35
I.2 Gestion de l’activité des processus
Mécanismes matériels (5)

Exemple de vecteur d’interruption sous « un »


Unix
Niveau Nature de l’interruption Nom de la procédure
interruption traitant l’interruption
0 Horloge clockintr
1 Disque diskintr
2 Console ttyintr
3 Autre périph. devintr
4 Appel système sottintr
5 Autre otherintr

36
I.2 Gestion de l’activité des processus
Mécanismes matériels (6)

Par défaut : l’occurrence d’un signal déclenche


immédiatement une interruption
Insuffisant pour garantir le respect des priorités !
Mécanismes complémentaires :
Masquage des interruptions d’un niveau donné
• Le traitement de l’interruption est retardé jusqu’à la fin du
masquage
• Attention : une seule occurrence du signal est mémorisée
Désarmement des interruptions d’un niveau donné
• Le traitement de l’interruption est annulé
Mise en œuvre : un registre spécial est chargé dans le PCW
lors du changement de contexte

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

Un appel système est le mécanisme par lequel


un processus demande un service au noyau :
Car seul le noyau peut rendre ces services !
• Contexte noyau
• Instructions supplémentaires
• Accès privilégié (mémoire, périphériques, …)
Les services offerts sont nombreux (près de 200
pour linux) :
• gestion de fichiers, systèmes de fichiers, permissions
• horloge, date
• signaux, gestion processus (création, destruction, etc)
• configuration/contrôle du système…

39
I.3 Interface avec le système
Appel système (2)

Un appel système = un appel de fonction un


peu spécial
provoque changement de contexte afin
d’exécuter le service demandé en contexte noyau
Du point de vue de l’utilisateur, un appel système
n’est pas différent d’un appel de fonction de
bibliothèque :
• Passage du contexte utilisateur au contexte noyau =
appel fonction
• Exécution du service en contexte noyau
• Retour en contexte utilisateur = retour fonction

40
I.3 Interface avec le système
Appel système (3)

Du point de vue du noyau, un appel système


c’est :
un risque : le noyau doit vérifier
• que le service demandé existe bien
• que le processus a bien le droit au service demandé
• que la demande est correctement formulée
une bonne opportunité de donner le CPU à un
autre :
• Le service demandé peut exiger un délai d’attente
• Le processus a peut-être déjà beaucoup utilisé le CPU
• retour de l’appel = échanger PCW : rien n’empêche
d’échanger avec le PCW d’un nouveau processus …

41
I.3 Interface avec le système
Appel système (4)

Processus P1 (élu) Noyau Processus P2 (prêt)


1 préparation : num SVC
+ arg sur pile

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

Un signal est un événement logiciel


Indicateur(s) positionné(s) par le noyau
• A la demande d’autres processus (appel système ‘kill’
sous Unix)
• A la suite d’un évènement
Plusieurs signaux possibles (32 minimum pour
Unix)
• KILL, TERM, INT : mort plus ou moins violente
• IO : Entrée/Sortie asynchrone
• ALRM : alarme
• CHLD : mort d’un processus fils

43
I.3 Interface avec le système
Envoi d’un signal à un processus

Prise en compte d’un signal


Réception à certains moments favorables
• lors de changements de contexte, lors du
passage à l’état élu
La réception provoque un branchement
• sur un traitement prédéfini ((re)configurable)
• sur un traitement spécifique (handler)
La réception peut être masquée
• ignorée
• mémorisée (une seule fois)
44
Systèmes multitâches : principes et algorithmes

Plan du Cours

9 Chapitre 1 : Eléments d’Architecture


¾ Chapitre 2 : Ordonnancement
Chapitre 3 : Gestion de la mémoire

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

Dans un système multi-tâches :


De nombreux processus attendent qu’un
événement se produise
• Ils n’ont pas besoin du processeur…
• … mais doivent pouvoir l’obtenir en priorité dès que
l’événement attendu se produit
Certains processus souhaitent utiliser le CPU
longtemps et de façon intensive
• Ils souhaitent garder le processeur le plus longtemps
possible
Conflit d’intérêt !
• Ordonnanceur = arbitre + chef d’orchestre …

3
II.1 Introduction

Rôle, objectifs

Rôle d ’un algorithme d’ordonnancement :


Décider de l’allocation de la ressource aux entités
qui l’attendent, de sorte à atteindre certains objectifs
« entités » :
Un processus
Un fil d’exécution à l’intérieur d’un processus (thread)

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

Un Système d’Exploitation peut exécuter


plusieurs algorithmes indépendants, gérant
chacun une ou plusieurs ressources (mais pas
les mêmes !) :
CPU (au minimum)
Disques, Réseau (en particulier à Qualité de
Service), Mémoire (swap, pages), …
+ outils externes de type « spooler »
(imprimante, …)

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

Mécanismes de base nécessaires

Ressources de type CPU :


Commutation de contexte
• Pour permettre à une autre entité d’utiliser la ressource
• Contexte peut être en partie matériel (registres, état)
Algorithmes avec réquisition :
Horloge
• Pour mesurer la durée d’utilisation
Interruption périodique automatique
• fournie « gratuitement » par interruption d’horloge
• moyen pour exécuter l’algorithme à dates fixe et ainsi,
réquisitionner la ressource

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

Ressource allouée à une entité jusqu’à ce


qu’elle n’en ait plus besoin
Inconvénients :
Ne peut convenir aux activités temps-réel
Convient difficilement aux activités interactives :
• Obligation de programmer des applications « sociables »
• Tolérable dans un système faiblement multi-tâches
(Windows 3.x, 95, …)
Avantages :
Facile à mettre en œuvre
Pas besoin de mécanismes matériels spécifiques
10
II.2 Ordonnancement sans réquisition

Mise en oeuvre

Au moment de la libération de la ressource :


Le (ex-)détenteur de la ressource invoque
l’algorithme d’ordonnancement
• Cette action peut être réalisée à l'insu du programmeur
(exemple : win3x, win9x)
L’algorithme choisit l’utilisateur suivant
L’algorithme déclenche la commutation de
contexte

11
II.2 Ordonnancement sans réquisition

Politiques de choix

Politique « FIFO » (First In First Out)


Allocation dans l’ordre d’arrivée (premier arrivé =
premier servi)
Inconvénient : défavorise les entités ayant besoin
d’utiliser la ressource un court laps de temps
• Le temps d’attente n’est pas proportionnel au temps
d’utilisation
⇒ pas équitable,
⇒ temps moyen de traitement élevé

12
II.2 Ordonnancement sans réquisition

Politiques de choix (2)

Politique PCTU (Plus Court Temps d’Utilisation


d’abord)
Allocation selon ordre croissant de durée d’utilisation prévue
Inconvénients
• Pas réaliste : exige la connaissance a priori des durées
d’utilisation
• Famine (privation) : les tâches dont la durée d’exécution
estimée est longue peuvent attendre leur tour indéfiniment …
Avantages
• Temps d’attente faible pour entités à courte durée d’utilisation
⇒ temps moyen d’attente minimal

13
II.2 Ordonnancement sans réquisition

Politiques de choix (3)

Politique FIFO avec priorités


Chaque entité a une priorité
Une FIFO par niveau de priorité
Ressource allouée à une entité Ssi
• FIFOs de priorités supérieures vides
• En tête de sa FIFO
Inconvénients
• Famine pour entités de faible priorité
En pratique
• utilisation parcimonieuse des priorités élevées
• modification dynamique des niveaux de priorité

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

Le détenteur de la ressource peut être interrompu


avant d’avoir terminé
Lorsqu’un délai maximal expire
Lorsqu’une entité de priorité plus élevée demande la
ressource
La politique d’ordonnancement choisit la nouvelle
entité
L’entité interrompue est mise en sommeil
Remarque : c’est la politique utilisée dans les
systèmes « à temps partagé » (time-sharing)
Unix, NT, …

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

Vous aimerez peut-être aussi