Vous êtes sur la page 1sur 5

25/10/2022

Département d’Informatique et de Communications


Faculté des Sciences de Sfax

Systèmes d’exploitation I
Auditoire : 1ère année LISI Chapitre 2 : Gestion des processus
Enseignantes : Imen chtourou
Imen Gabsi

1 2

Processus : définition États des processus

■ Un processus est l’entité d’exécution dans un système ■ Quand un processus s’exécute, il change d’état
– Un processus = un programme en cours d’exécution ■ Chaque processus peut se trouver dans chacun des états suivants :
■ L’exécution d’un processus doit progresser séquentiellement, cad, à n’importe quel – En exécution : Les instructions sont en cours d’exécution (en train d’utiliser la
CPU)
moment une seule instruction au plus est exécutée au nom du processus – En attente : Le processus attend qu’un événement se produise
■ Processus # Programme – Prêt : Le processus attend d’être affecté à un processeur
■ Un seul processus peut être en exécution sur n’importe quel processeur à tout
moment
■ Toutefois, plusieurs processus peuvent être prêts et en attente

3 4

1
25/10/2022

Bloc de contrôle de processus (1/2) Bloc de contrôle de processus (2/2)


■ Chaque processus est représenté dans le SE par un PCB (Process Control Block) ■ PCB: contient plusieurs informations concernant un processus spécifique, comme par
exemple :
– L’état du processus.
– Compteur d’instructions: indique l’adresse de l’instruction suivante devant être
exécutée par ce processus.
– Informations sur le scheduling de la CPU: information concernant la priorité du
processus
– Informations sur la gestion de la mémoire: valeurs des registres base et limite, des
tables de pages ou des tables de segments.
– Informations sur l’état des E/S: liste des périphériques E/S allouées à ce processus,
une liste des fichiers ouverts, etc

5 6

Processus Scheduling de processus

■ Point de vue conceptuel: chaque processus possède son processeur virtuel ■ Dans un système multitâche plusieurs processus sont en cours simultanément, mais
■ Réalité: le processeur bascule constamment d’un processus à l’autre
le processeur ne peut, à un moment donné, exécuter qu’une instruction (d’un
■ Ce basculement rapide est appelé multiprogrammation
programme) à la fois. Le processeur travaille donc en temps partagé
■ Lorsque le processeur passe d’un processus à un autre, la vitesse de traitement
d’un processus donné n’est pas uniforme et probablement non reproductible si le
■ L’ordonnanceur (scheduler) est le module du SE qui s’occupe de sélectionner le
même processus s’exécute une nouvelle fois
processus suivant à exécuter parmi ceux qui sont prêts

7 8

2
25/10/2022

Scheduling de processus Scheduling de processus

■ Un processus passe entre les diverses files d’attente pendant sa durée de vie (file ■ Les algorithmes d’ordonnancement (scheduleur) peuvent être classés en deux
d’attente des processus prêts (attendant pour s’exécuter), fille d’attentes des catégories :
périphériques, ...) 1- Non préemptif :
■ Le SE doit sélectionner les processus à partir de ces files d’attente d’une manière – Sélectionne un processus, puis le laisse s’exécuter jusqu’à ce qu’il bloque (soit sur
une E/S, soit en attente d’un autre processus) où qu’il libère volontairement le
quelconque
processeur.
■ Le processus de sélection est mené à bien par le scheduleur approprié – Même s’il s’exécute pendant des heures, il ne sera pas suspendu de force.
■ Classification des processus – Aucune décision d’ordonnancement n’intervient pendant les interruptions de
l’horloge
– Dépendant des E/S: dépense la plupart du temps à effectuer des E/S plutôt que
des calculs 2- Préemptif:
– Sélectionne un processus et le laisse s’exécuter pendant un délai déterminé.
– Dépendant de la CPU: génère peut fréquemment des requêtes d’E/S, cad,
passe plus de temps à effectuer des calculs – Si le processus est toujours en cours à l’issue de ce délai, il est suspendu et le
scheduleur sélectionne un autre processus à exécuter

9 10

Scheduling de processus Algorithmes d’ordonnancement


■ Les divers algorithmes de scheduling de la CPU possèdent des propriétés différentes et
peuvent favoriser une classe de processus plutôt qu’une autre
■ Critères utilisés: L’algorithme FIFO (First In First Out)
– Utilisation de la CPU: maintenir la CPU aussi occupée que possible. ■ L'ordonnancement est fait dans l'ordre d'arrivée en gérant une file unique des
– Capacité de traitement (Throughput): nombre de processus terminés par unité de
processus sans priorité ni réquisition :
temps.
– Temps de restitution (Turnaround time): temps nécessaire pour l’exécution d’un ■ Chaque processus s’exécute jusqu’à son terme ; le processus élu est celui qui est en
processus.
– Temps de restitution = temps passé à attendre d’entrer dans la mémoire + temps tête de liste des Prêts : le premier arrivé.
passé à la file d’attente des processus prêts + temps passé à exécuter sur la CPU +
temps passé à effectuer des E/S (+) Cet algorithme est facile à implanter,
– Temps d’attente: quantité de temps qu’un processus passe à attendre dans la file
d’attente des processus prêts. (-) il est loin d'optimiser le temps de traitement moyen
– Temps de réponse: temps écoulé à partir du moment où on soumet une requête
jusqu’à l’arrivée de la première réponse

11 12

3
25/10/2022

Algorithmes d’ordonnancement Algorithmes d’ordonnancement


L’algorithme du temps restant le plus court (SRT : Shortest Remaining Time)
L’algorithme SJF (Shortest Job First)
■ L’algorithme du temps restant le plus court, est la version préemptive de l’algorithme SJF
■ L'ordonnancement par ordre inverse du temps d'exécution (supposé connu à l’avance) :
■ Chaque fois qu’un nouveau processus est introduit dans la file des processus à
■ Lorsque plusieurs travaux d'égale importance se trouvent dans une file, l'Ordonnanceur
ordonnancer, l’Ordonnanceur compare la valeur estimée du temps de traitement restant
élit le plus court d'abord (les travaux les plus cours étant en tête de la file des prêts).
à celle du processus en cours d’ordonnancement
(-) connaissance du temps de service à priori
■ Si le temps de traitement du nouveau processus est inférieur, le processus en cours
(-) risque de privation des tâches les plus longues. Afin de résoudre ces problèmes on d’ordonnancement est préempte.
pourra attribuer aux travaux une priorité croissante avec leur temps de séjour dans la file
(-) Tout comme l’algorithme SJF, l’algorithme SRT favorise les travaux courts : les travaux
(temps d’attente). A temps d’attente égale, le travail le plus court est prioritaire. Toutefois,
longs en revanche peuvent être victimes de famine
cette solution nécessite le calcul des priorités périodiquement et un réarrangement de la FA

13 14

Algorithmes d’ordonnancement
Algorithmes d’ordonnancement L’algorithme HPF(Highest Priority First)

L’algorithme Round Robin ■ Le modèle du tourniquet suppose tous les processus d'égale importance. C'est irréaliste.

■ Il s'agit d'un algorithme ancien, simple et fiable. Le processeur gère une liste circulaire D'où l'attribution de priorité à chaque processus
de processus. Chaque processus dispose d'un quantum de temps pendant lequel il est
autorisé à s'exécuter. ■ L'Ordonnanceur lance le processus prêt de priorité la plus, En cas de priorités égales on

■ Si le processus actif se bloque ou s'achève avant la fin de son quantum, le processeur utilise l’algorithme FIFO. L’ordonnancement des priorités peut être préemptif ou non
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 ■ Les mécanismes d’attribution des priorités sont très variables ; la priorité est basée sur la
précédent se trouve ainsi en queue de liste. caractéristique du processus (utilisation de la mémoire, fréquence des E/S), sur l’utilisateur
■ La commutation de processus (overhead) dure un temps non nul pour la mise à jour des qui exécute le processus, les coûts d’utilisation (Le temps de l’UC pour les tâches de
tables, la sauvegarde des registres.
priorité supérieure est par exemple plus coûteux) ou sur un paramètre que l’utilisateur peut
(-) Un quantum trop petit provoque trop de commutations de processus et abaisse
l'efficacité du processeur. spécifier. Certains mécanismes produisent des priorités qui varient de manière dynamique

(-) Un quantum trop grand augmente le temps de réponse en mode interactif. On utilise : volume du temps d’exécution ; alors que d’autre sont statiques (la priorité associée à un
souvent un quantum de l'ordre de 100 ms. utilisateur)

15 16

4
25/10/2022

Performance des algorithmes d’Ordonnancement Exercice


■ Les performances d’un algorithme pour un ensemble de processus donné peut être ■ 5 processus P1, P2, P3, P4, P5 sont dans une file d’attente dans cet ordre (P1 est le
premier, P5 est le dernier). Leur exécution demande un temps total de service exprimé en
analysée si les informations appropriées relatives aux processus sont fournies. unités arbitraires :

■ Le temps de séjour: C’est la durée moyenne nécessaire pour l’exécution d’un processus. Processus P1 P2 P3 P4 P5
Temps de service estimé 10 1 2 1 5
Il est calculé en soustrayant le temps d'entrée du processus du temps de terminaison

Temps de séjour = Temps fin d’exécution – Temps d’arrivée 1) Décrire l’exécution des processus dans le cadre des politiques d’ordonnancement FIFO,
SJF, RR (avec un quantum de 1)
■ Le temps d'attente: C’est la durée moyenne qu’un processus passe à attendre, calculé en 2) Quelle est, de ces trois politiques, celle qui correspond à un temps minimal d’attente
moyen par processus ?
soustrayant le temps d'exécution du temps de séjour

Temps d’attente = Temps de séjour – Durée d’exécution

17 18

Correction

19

Vous aimerez peut-être aussi