Vous êtes sur la page 1sur 10

Chapitre II Gestion du processeur central

1. Introduction – Evolution des systèmes informatiques


1.1- Premier système :
Le programmeur/opérateur doit écrire un programme ensuite le faire fonctionner directement à partir
de la console (chargement du programme manuellement en mémoire, à partir des interrupteurs, bandes
ou cartes perforées).
1.2- Systèmes simple de traitement par lots :
Problèmes posés : - pendant que le programmeur utilise la console, l’UC reste inactive.
- le programmeur n’est pas professionnel.
Solutions :
a) Moniteur résident :
- Engager un opérateur professionnel.
- Dès qu’un programme est terminé, l’opérateur peut démarrer le programme suivant.
- Réduction du temps de préparation : regroupement en lots (batchs) ensuite l’exécution.
 L’enchainement automatique des travaux : une procédure pour transférer automatiquement le
contrôle d’un travail à un autre appelée « Moniteur résident » (toujours résident en mémoire).
 Comment le moniteur résident peut savoir quel programme exécuter ?
Solution : Utiliser des cartes de contrôle.
Inconvénient : Manque d’interaction entre l’utilisateur et le travail
b) Chevauchement des opérations d’UC et d’entrées/sortie « Systèmes de traitement par lots avec
chevauchement automatique des travaux ».
Problème posé : Les périphériques d’E/S mécanique sont plus lents que l’UC
Solutions :
b.1) Traitement hors ligne :
- Remplacer les lecteurs de cartes très lents (entrée) et les imprimantes lignes par lignes (sortie) par des
unités de bande magnétique.
- Exploiter les lecteurs de cartes et les imprimantes ligne par ligne hors ligne.
Inconvénient : Il faut un délai plus important pour obtenir l’exécution d’un travail.
b.2) Spooling (Simultaneous Peripheral Operation On-Line)
- Les systèmes à disque : On lit les cartes directement à partir du lecteur de cartes sur le disque. Le
système utilise les données d’entrée à partir du disque. Copier les données de sortie sur disque. Enfin
les données de sortie sont imprimées réellement.
- Le Spooling fait chevaucher les E/S d’un travail avec le calcul d’autres travaux.
1.3- Systèmes de traitement par lots multiprogrammés :
Objectif de la multiprogrammation : augmenter l’utilisation de l’UC en organisant les travaux de
manière à ce que l’UC ait toujours quelque chose à exécuter.
Idée :
- Charger plusieurs travaux en mémoire à la fois.
- Sélectionner et commencer à exécuter un des travaux en mémoire.
- Pendant une opération d’E/S de ce travail, on exécute un autre travail.
1.4- Systèmes en temps partagé
Le temps partagé (ou multitâches) est une extension logique de la multiprogrammation. Plusieurs
travaux sont exécutés par l’UC qui les commute entre eux.
2. Les processus : Un processus est un programme en cours d'exécution défini par :
- Son identificateur
- Son Compteur ordinal
PCB : Bloc de contrôle de processus
- Ses données
- Sa place en mémoire
- ……………………..
Les processus sont connus du système par une table qui indique principalement :
- ses emplacements mémoires
- sa zone de sauvegarde
- son état
- ses fichiers ouverts
- …………………..

Un processus peut être dans les états suivants : Nouveau (initial), prêt, bloqué (en attente), en exécution,
et terminé (final).

Le processus « élu » est le processus unique sélectionné pour être exécuté.


Les processus prêts sont susceptibles d'être exécutés s'ils sont choisis par le système.
Les processus bloqués ne peuvent être choisis car :
- il leur manque une ressource matérielle (mémoire principale) ou système (accès à un fichier)
- ils sont en attente d'un évènement matériel (fin d'E/S, délai) ou système (message processus)

3. Ordonnanceur (Scheduler) : L'Ordonnanceur (Scheduler) définit l'ordre dans lequel les


processus prêts utilisent l'UC (en acquièrent la ressource) et la durée d'utilisation, en utilisant un
algorithme d'ordonnancement.
L'ordonnanceur se décompose en deux parties :
- la partie basse : mécanisme de commutation entre les processus
- la partie haute : le choix du prochain processus à exécuter
Mise en œuvre de la commutation
Un bon algorithme d'ordonnancement doit posséder les qualités suivantes :
- équitabilité : chaque processus reçoit sa part du temps processeur
- efficacité : le processeur doit travailler à 100 % du temps
- temps de réponse : à minimiser en mode interactif
- temps d'exécution : minimiser l'attente des travaux en traitement par lots (batch)
- rendement : maximiser le nombre de travaux effectués par unité de temps
L'ensemble de ces objectifs est contradictoire, par exemple le 3ème et le 4ème objectif.
3.1 Queues d’ordonnancement
- l’ordonnancement est régulé à l’aide de queues d’ordonnancement
- les queues sont organisées sur le modèle des listes chaînées
- le pointeur sur la liste est stocké dans le descripteur de processus (PCB, process control bloc)
- l’ordonnanceur sélectionne un processus en attente dans une queue pour lui attribuer la
ressource correspondante
- un processus qui entre dans le système est placé dans la queue des processus, nommée job queue
- un processus qui a obtenu accès à la mémoire centrale et qui est prêt à être exécuté est placé en
ready queue
- chaque unité périphérique possède sa propre queue d’accès: device queue
- certaines ressources logiques possèdent aussi leur queue (verrous, sémaphores, etc.)
- les processus migrent d’une queue à l’autre
- l’état d’un processus est défini par sa présence dans telle ou telle queue
3.2 Exécution de l’ordonnanceur
• l’ordonnanceur est invoqué lors des changements d’état du processus, en particulier:
– 3. de en exécution à prêt (temps alloué dépassé: préemption, interruption non masquée)
– 4. de en exécution à en attente (E/S)
– 5. de en attente à prêt (E/S terminée)
– 6. libération des ressources

3.3 Fonctionnement de l’ordonnancement

Rectangle → queue
Cercle → ressource
3.4 Comportement des processus
L’exécution d’un processus consiste en un cycle d’exécution de l’UC et d’attente des entrées/sorties. Les
processus alterne entre ces deux états.
L’exécution d’un processus commence par un cycle d’UC, suivi d’un cycle d’entré/sortie et ainsi de suite.
Le dernier cycle d’UC finira par une requête au système pour terminer l’exécution.

3.5 Algorithmes de l’ordonnanceur


L’Ordonnanceur exécute un algorithme qui peut être :
• non-préemptif (sans réquisition): lorsqu’un processus s’exécute sur le processeur, il continue
jusqu’à ce qu’il soit dans l’état final ou qu’il ait besoin d’une autre ressource
• préemptif (avec réquisition): il alloue un certain temps CPU aux processus

A) Politiques d’allocation sans réquisition


A.1) Premier arrivé, premier servi (FCFS : First-come, first-served) : On alloue l’UC au premier
processus qui la requiert.
Implémentation de la queue des processus prêts par une file d’attente gérée en FIFO.
Exemple :
Trois processus P1, P2 et P3 qui arrivent au temps 0, avec la longueur du cycle d’UC donnée en
milliseconde.
Processus Temps du cycle
P1 24
P2 3
P3 3
Si l’ordre d’arrivée est: P1 , P2 , P3 :

– temps d’attente: P1 = 0 ms; P2 = 24 ms; P3 = 27 ms


– temps d’attente moyen: ( 0 + 24 + 27 ) / 3 = 17 ms
Si l’ordre d’arrivée est: P2 , P3 , P1 :

– temps d’attente: P1 = 6 ms; P2 = 0 ms; P3 = 3 ms


– temps d’attente moyen: ( 6 + 0 + 3 ) / 3 = 3 ms

⇒ si les processus les plus courts passent en premier, le temps moyen d’attente diminue

– inconvénient de FCFS: l’attente peut être longue pour des processus de courte durée

A.2) Travail plus court d’abord (SJF, shortest job first): On alloue l’UC au processus qui possède
le prochain cycle d’UC le plus petit.
Si deux processus possèdent la même longueur, le scheduling FCFS est appliqué.
Exemple :
Processus arrivée Temps du cycle
P1 0 7
P2 2 4
P3 4 1
P4 5 4

Temps d’attente moyen = (0 + 6 + 3 + 7)/4 = 4


Mais: on doit connaître (ou estimer) au départ les temps d’exécution des processus
– SJF est optimale du point de vue temps d’attente moyen d’un ensemble de processus
A.3) Allocation avec priorités
- A chaque processus est associée une priorité
- Les processus de priorité élevée sont exécutés d’abord
Exemple :
Processus Temps du cycle Priorité
P1 10 3
P2 1 1
P3 2 3
P4 1 4
P5 5 2
- Supposons que les bas numéros représentent les priorités hautes et les processus sont arrivés à
l’instant 0 dans l’ordre P1, P2, P3, P4, P5

P2 P5 P1 P3 P4

Temps d’attente moyen = (0 +1 + 6 + 16 + 18)/5 = 8.2 millisecondes.

B) Politiques d’allocation avec réquisition


B.1) Ordonnancement circulaire ou tourniquet (round robin « RR »)
- Le temps d’allocation du processeur est découpé en tranches, nommées quantum (typiquement
10 ms – 100 ms).
- Le processeur gère une liste circulaire de processus. Chaque processus dispose d'un quantum de
temps pendant lequel il est autorisé à s'exécuter.
- Si le processus actif se bloque ou s'achève avant la fin de son quantum, le processeur est
immédiatement alloué à un autre processus.
- Si le quantum s'achève avant la fin du processus, le processeur est alloué au processus suivant
dans la liste et le processus précédent se trouve ainsi en queue de liste.
- La commutation de processus (overhead) dure un temps non nul pour la mise à jour des tables,
la sauvegarde des registres. Un quantum trop petit provoque trop de commutations de processus et
abaisse l'efficacité du processeur. Un quantum trop grand augmente le temps de réponse en mode
interactif.
 Attention au choix du quantum
- C’est un ordonnancement FIFO, mais limité à une durée d’exécution donnée

Exemple :
Processus Temps du cycle
P1 24
P2 3
P3 3
Temps d’arrivée est 0
- Si nous utilisons un quantum de 4 ms :

P1 P2 P3 P1 P1 P1 P1 P1

- Temps moyen d’attente = ((0 +3 + 3) + 4 + 7)/3 =17/3 = 5.66 ms

B.2) SJF+RR, avec réquisition


Processus Arrivée Temps du cycle
P1 0 7
P2 2 4
P3 4 1
P4 5 4

Quantum = 2.0

Temps d’attente moyen = (9 + 1 + 0 +4)/4 = 3.3 ms


B.2) Temps restant le plus court d’abord (Shortest Remaining-time-first)
Quand un processus arrive pendant qu’un processus précédent s’exécute, le nouveau processus peut
posséder le prochain cycle de l’UC plus court que ce qu’il reste au processus couramment en exécution
et donc ce dernier est interrompu.
Exemple :
Processus Arrivée Temps du cycle
P1 0 8
P2 1 4
P3 2 9
P4 3 5

P1 P2 P4 P1 P3

Temps d’attente moyen = ((10-1)+ (1-1) + (17-2) + (5-3))/4 = 26/4 = 6.5 ms

B.3) Ordonnancement par priorité


- dans l’algorithme RR tous les processus ont une importance égale
- si ce n’est pas le cas, il faut introduire la notion de priorité entre processus
- concrètement, cela revient à créer plusieurs queues de processus prêts (files d’attente ordonnées
par niveau de priorité)
- l’ordonnancement se fait à partir de la file non vide qui a le niveau de priorité le plus élevé et
cela jusqu’à ce que tous les processus de cette file soient exécutés
- ensuite, l’ordonnanceur passe à la file suivante jusqu’à ce qu’elle aussi soit vide
- etc.

Priorités dynamiques
• si le système est très chargé, les processus de faible priorité n’obtiennent jamais le CPU (famine
ou starvation)
• pour pallier à ce défaut, la priorité doit être un paramètre dynamique qui permettra de changer
le processus de file (files réactives)
• l’ajustement dynamique de la priorité d’un processus est calculé par l’ordonnanceur

Files réactives
• lorsqu’un processus est créé, on lui attribue un niveau de priorité de base
• il entre dans la queue des processus prêts à son niveau de priorité et attend son tour (Round
Robin)
• selon l’usage qu’il a fait du CPU, sa priorité peut être modifiée (à la baisse ou à la hausse) ou
pas
• si un processus est rapidement suspendu suite à un I/O burst et qu’il n’a utilisé qu’une petite
fraction f de son quantum, sa priorité peut être élevée « proportionnellement » à 1/f
• il obtiendra à nouveau rapidement accès au processeur car il sera placé dans une file
supérieure
• un algorithme de vieillissement (aging) sera appliqué aux processus qui attendent dans les files
à basse priorité afin de les inclure dans des files de niveaux plus favorables
Exemple des files d’attente avec priorités différentes

Chaque file d’attente est absolument prioritaire par rapport aux files d’attentes de priorités inférieures
: Aucun processus de la file d’attente des processus batchs ne pourra s’exécuter à moins que les files
d’attente des processus système, interactifs et d’édition interactive ne soient toute vides. Si un processus
d’édition interactive arrive pendant qu’un processus batch s’exécute, ce dernier sera interrompu.
B.4) Autres algorithmes préemptifs
multi-queues:
– l'ordonnanceur gère plusieurs politiques (c-à-d plusieurs queues)
Exemple:
• queue 1 (ou politique 1): round-robin
• queue 2 (ou politique 2): premier arrivé-premier servi (allocation du CPU uniquement si la queue 1
est vide)
• multi-queues avec feedback plusieurs queues (politiques)
- les processus peuvent passer d'une queue à une autre
Exemple :
– queue 1: un processus peut y consommer au max 8 quantum de temps
– queue 2: moins prioritaire, un processus peut y consommer au max 16 quantum
– queue 3: la moins prioritaire, politique premier arrivé-premier servi
⇒ a pour effet d’avantager les processus courts

Vous aimerez peut-être aussi