Вы находитесь на странице: 1из 45

Systèmes d’Exploitation

2 èm e Année (GL-RT-IIA-IMI)

Gestion des Processus


Processus, Contexte, Algorithmes d’o rdonnancement

Dr. G h ada G ASMI- Dr. Lilia SFAXI Slide 1


Gestion des Processus

PROCESSUS ET RESSOURCES

Dr. G h ada G ASMI- Dr. Lilia SFAXI Slide 2


Ressource
Processus et Ressources

• Elément physique ou logique


§ CPU, MC, Variable, Fichier, …
• Nécessaire à l’évolution d’un processus
• Demandée explicitement ou non
§ Processeur, Canal, Mot mémoire, Fichier
o Explicitement par une fonction de l’OS
‣ Demande mémoire (fonction malloc de C)
o Implicitement : selon l’état du processus
‣ En attente d’une fin d’E/S, Attente processeur

3
Ressource
Processus et Ressources
• Réutilisable ou consommable
§ Mot mémoire, Ligne écran
o Allouée puis Consommée (non réutilisable)
o Allouée puis Utilisée puis Restituée, Réallouée, …

• Partagée ou non
§ Accès exclusif ou non

• Possède un un état dynamique


§ Occupée, Libre

4
Ressource
Processus et Ressources

• Contraintes d’évolution
§ Evolue selon certaines contraintes
o Exemple: Domaine de variation d’une variable

• Utilisée selon des règles précises


§ Accès à la ressource peut être soumis à certaines conditions
o Exemple: Droits d’accès à un fichier

5
Processus
Processus et Ressources
• Plusieurs définitions
§ Programme en exécution
o Programme lancé mais non terminé
‣ Encore présent dans le système
‣ Peut être dans un état quelconque
§ Entité dynamique
o Programme
‣ Entité statique
‣ Texte interprétable
o Processus
‣ Entité dynamique
‣ Abstraction de l’exécution d’un programme
§ Suite d’états
o E0 → E1 → … → Ek → …
‣ Etat initial puis convergence vers un état final

6
Processus
Processus et Ressources

• Activité asynchrone
§ Pas de connaissance sur
o La date de lancement d’un processus sauf si elle programmée
o La date de fin d’un processus
o Le nombre de processus qui seront lancés

• Représentation dans le système


§ Structure de données (Table)
o PCB (Process Control Block)

7
Processus
Processus et Ressources

Process control block

pointer
process state
process number
program counter

registers

memory limits
list of open files
.
.
.

8
Processus
Processus et Ressources
Cycle de vie
§ 3 phases
o Création (génération du PCB)
‣ Lancement d’un programme
• Comma nde ou à travers le bureau
‣ Création dyna mique de processus
• Fonction fork() sous Unix
o Vie du processus
‣ Existe dans le système (dispose d’un PCB)
‣ Géré par le système
o Fin du processus (destruction du PCB)
‣ Fin normale
• Le processus est arrivé logiquement à sa dernière instruction
‣ Fin anormale
• Erreur d’e xécution, Arrêt par l’utilisateur
‣ Cas particulier
• Ne s’arrête jamais à cause d’une anomalie telle que Boucle Infinie

9
Processus
Processus et Ressources

• Etats d’un processus


§ Suivi de son évolution
o Depuis sa création jusqu’à sa fin normale ou anormale
§ Passe par différents états
o Tout au long de son existence, un processus passe par différents états
‣ Existence de plusieurs états
‣ Existence de règles de transitions entre états

10
Processus
Processus et Ressources

Nouveau Terminé
Chargement Préemption
Fin
Running /
Ready / Prêt
Allocation Exécution

Début d’E/S ou
Fin d’E/S
Wait / d’un Évènement X
Attente

11
Processus
Processus et Ressources

• Types de processus
§ Processus en avant plan
o Foreground (visible)
o Processus avec lequel on dialogue
‣ Dialogue à travers le clavier et l’écran
§ Processus en arrière plan
o Background
o S’exécute sans dialogue avec l’utilisateur
‣ Tâche de fond (Job)

12
Threads
Processus et Ressources

• Concept moderne des OS

• Subdivision d’un processus


§ Processus = { Threads }
§ Threads partagent l’espace du processus auquel ils appartiennent
o Espace d’adressage, Ressources, …

• Processus léger
§ Lightweight process, Flot ou fil d’exécution
§ Gestion plus simple qu’un processus

13
Threads
Processus et Ressources

14
Threads
Processus et Ressources
• Intérêts
§ Applications plus performantes
o Exécuter des tâches en parallèle
‣ La notion de processus n’autorise qu’une exécution purement séquentielle
‣ La subdivision en threads donne la possibilité d’exécuter plusieurs threads en
parallèle
§ Très adapté pour des architectures multiprocesseurs et multicoeurs
o Exécution de plusieurs threads à la fois
§ Contribue à la structuration d’un programme et d’un processus
o Décomposition en threads et non en une seule unité (processus)
§ Utiliser moins de ressources système
o Beaucoup d’éléments sont partagés entre threads d’un même processus
‣ Evite la duplication inutile de ressources

15
Processus vs Thread
Processus et Ressources
• Processus
§ Environnement propre
o Mémoire, Fichiers, Ressources
o Contexte volumineux
§ Accès aux ressources d’autres processus
o Possible selon des règles d’accès bien précises (Protection)
§ Contient au moins un thread
• Thread
§ Possède
o Un état d’exécution (prêt, bloqué, …)
o Sa propre pile d’exécution
o Espace privé pour ses variables locales
o Un contexte plus léger
§ Accès aux ressources du processus père
§ Peut créer d’autres threads

16
Gestion des Processus

GESTION DES RESSOURCES

Dr. G h ada G ASMI- Dr. Lilia SFAXI Slide 17


Gestion des Ressources
Gestion des Ressources

• Fonction fondamentale des OS


§ Objectifs
o Utiliser les ressources physiques et logiques d’une machine
o Gérer le partage des ressources
o Assurer la protection des ressources
§ Eléments fondamentaux pour la gestion
o Files d’attente
o Ordonnanceurs

18
Files d’attente
Gestion des Ressources
• Terme générique
§ File d’attente devant un guichet
§ File d’attente d’entrée à un stade
§ File d’attente de voitures

• Définition
§ Ensemble d’éléments
o Organisés d’une certaine manière et qui attendent d’être servis
o Servis dans un certain ordre

19
Files d’attente
Gestion des Ressources

• FA en informatique
§ Structure de données fondamentale en informatique
o Stockage d’informations
o Règle d’entrée
‣ Généralement par la Queue – Queue - de la file
o Règle de sortie
‣ Généralement par la Tête – Head - de la file
Entrée Sortie
Ê… Ì

20
Files d’attente
Gestion des Ressources
• Capacité
§ Taille finie
o Insertion d’un nombre fini d’éléments
§ Politiques de gestion
§ Plusieurs politiques possibles
o LIFO, FIFO, Priorité, Random, etc.

• Pourquoi des files d’attente dans un OS ?


§ Ressources d’un système : { R }
§ Processus : { P }
§ | P | >> | R |
§ Comment partager { R } entre { P } ?
o Définir une politique de gestion de { R }
o Distinguer entre processus qui utilisent une ressource A et ceux qui attendent
de l’utiliser (File d’attente)

21
Files d’attente
Gestion des Ressources

• File d’attente de gestion des ressources


§ Une par ressource
o Contient les processus en attente de cette ressource
§ Instant t
o Processus Pi dans une seule file d’attente
§ Passage d’une file à une autre
o Changement d’état du processus
o Changement de l’état des ressources

22
Gestion des Processus

ORDONNANCEURS

Dr. G h ada G ASMI- Dr. Lilia SFAXI Slide 23


Ordonnanceurs
Ordonnanceurs

• Gestionnaires de ressources
§ Scheduler en anglais

• Types
§ Ordonnanceurs à court terme
§ Ordonnanceurs à moyen terme
§ Ordonnanceurs à long terme

24
Types d'Ordonnanceurs
Ordonnanceurs
• Ordonnanceurs à court terme (CPU Scheduler )
§ Gèrent des processus (états prêts)
§ Sélectionnent le processus à exécuter
o A qui allouer le processeur
§ Sollicités très souvent (ms)
§ Combinés avec un Dispatcheur
o Dispatcheur donne le contrôle au processus choisi par le scheduler
• Ordonnanceurs à moyen terme
§ Moins sollicités que ceux à court terme
§ Chargent ou déchargent des processus ( swap in et swap out )
o Charger un processus en mémoire centrale
o Décharger un processus sur disque
• Ordonnanceurs à long terme (Job Scheduler)
§ Accepter ou non des processus utilisateurs dans le système
o Capacité dynamique du système à accepter les travaux des utilisateurs

25
Préemption
Ordonnanceurs
• Allocation d’une ressource
§ Mise à la disposition d’un processus
§ Doit en principe la restituer
o Pour être utilisée par d’autres
§ Instant de libération
o Fin de l’utilisation de la ressource
§ Problèmes
o Un processus risque de ne pas la restituer
o Que faire en cas de besoin urgent
• Technique de préemption ou de réquisition
§ Retirer une ressource à un processus alors qu’il en a encore besoin
o Retrait forcé
‣ Pour l’allouer à un autre processus
o Re-allocation après un certain temps

26
Ordonnanceurs et préemption
Ordonnanceurs

• Combinaison
§ Ordonnanceurs préemptifs
o Utilisent la réquisition
o Peuvent récupérer une ressource allouée à un processus à tout moment
§ Ordonnanceurs non préemptifs
o N’utilisent pas la réquisition
o Récupèrent la ressource une fois que le processus l’aura libéré

27
Gestion des Processus

ALGORITHMES D’ORDONNANCEMENT

Dr. G h ada G ASMI- Dr. Lilia SFAXI Slide 28


Problématique
Algorithmes d’o rdonnancement

• 1 Processeur
§ Exécution d’un seul processus à la fois

• Système
§ Ensemble (éventuellement vide) de processus qui sont dans l’état Prêt

• Allocation du processeur
§ Quel processus choisir parmi ceux qui sont dans l’état prêt ?

29
Problématique
Algorithmes d’o rdonnancement

• Critères relatifs à l’allocateur


§ Point de vue utilisateur
o Temps de réponse
§ Point de vue système
o Nombre de processus exécutés
o Rentabilité du processeur
o Equité
o Garantir les priorités
o …

30
Critères d’évaluation
Algorithmes d’o rdonnancement
• Pourcentage d’utilisation du processeur
§ Différencier entre périodes d’activité et périodes d’inactivité du processeur
o Maximiser l’une et minimiser l’autre
• Débit ou Throughput arrivée fin
§ Nombre de processus exécutés
Processus A
pendant une durée bien déterminée temps d'attente

• Temps de traitement (Turnaround temps de traitement

ou temps de rotation) arrivée fin

• Temps d’attente (Waiting time) A A A A

• Temps de réponse temps d'attente

temps de traitement

31
Allocation Processeur
Algorithmes d’o rdonnancement
• Modèle
§ Phases d’un processus
o Succession de cycles
‣ Calcul, E/S, Calcul, E/S, …, Calcul
o On s’intéresse uniquement aux phases de calcul et non aux phases d’E/S
‣ Phase de calcul ou Burst Time
• Phase d’exécution d’instructions arithmétiques ou logiques
§ Temps d’exécution peut être connu a priori si:
o Fourni par l’utilisateur (estimation)
o Calculé par méthodes d’estimation
§ File d’attente des processus prêts
§ Diagramme de Gantt
o Représentation graphique de l’ordonnancement de l’exécution d’un ensemble de
processus selon un algorithme d’ordonnancement

32
Allocation Processeur
Algorithmes d’o rdonnancement

Temps CPU Temps


Processus Temps de Traitement
(Burst Time) d‘Attente
P1 12 - 12 =0
P2 17 -5 = 12
P3 19 -2 = 17
Total 48 - 19 = 29
Moyenne (/3) 16 - 6,.. = 9,..

P1 P2 P3
0 12 17 19

33
Algorithmes
Algorithmes d’o rdonnancement

• FCFS
§ First Come First Served (FIFO)
§ Critère
o Ordre d’arrivée des processus
‣ Classer les processus par date d’arrivée
§ Caractéristiques
o Le plus simple à mettre en œuvre
o Le plus mauvais
‣ Donne de mauvaises performances

34
Algorithmes
Algorithmes d’o rdonnancement
• SJF
§ Shortest Job First ou Le plus court d’abord
§ Critère
o Plus petit temps d’exécution
§ Caractéristiques
o Privilégie les petits processus
o Risque d’attente infinie pour les processus longs (problème de famine ou
starvation )
§ Avec ou sans préemption
o Sans préemption
‣ Sélection du prochain processus à la fin du courant, même s’il y a arrivée de nouveaux
processus avec un temps plus petit que celui du courant
o Avec préemption (SNRT: Shortest Next Remaining Time)
‣ Vérifier le critère d’allocation à chaque arrivée de nouveaux processus
• Comparer le temps restant du processus courant avec le temps du ou des
nouveaux processus
• Selon le cas, utilisation ou non de la préemption

35
Algorithmes
Algorithmes d’o rdonnancement

• Priorité
§ Priorité
o Urgence d’utilisation du processeur
o Définie par un nombre ou une lettre
‣ Exemples
• 0..F, A..Z
• 0..39 (Cas du système Unix)
o Statique ou dynamique
‣ Comma nde nice sous Unix
§ Critère
o Processus le plus prioritaire
§ Caractéristiques
o Répond à la notion d’urgence
o Risque de famine
‣ Privilégie les processus prioritaires
§ Plusieurs types:
o Avec ou sans préemption
o Dynamique ou statique
o À une file ou à plusieurs files d’attente

36
Algorithmes
Algorithmes d’o rdonnancement
• Round Robin ou Tourniquet
§ Introduit avec les systèmes temps-partagé (Time Sharing)
§ Eléments de base
o File d’attente des processus
‣ Ordonnés selon leur ordre d’arrivée
o Utilisation de la notion de QUANTUM
‣ Unité de temps d’utilisation du processeur
‣ Unité de temps ininterruptible (pas de préemption durant un quantum)
§ Principe
o Allocation par multiple de Quantums
o Allocation du processeur au processus Pi
o Fin du quantum
‣ Pi terminé → Quitte la file d’attente
‣ Pi non terminé → Revient à la fin de la file (queue)
‣ Allocation du processeur au processus Pi+1
o Fin processus Pi < Fin Quantum
‣ Assimilée à une fin de Quantum
• Allocation du processeur au processus Pi+1

37
Algorithmes: Files Multi-Niveaux
Algorithmes d’o rdonnancement
• Files multi-niveaux
§ 1 seule file (1 niveau)
o Mélange de processus de différentes natures
‣ Système, Utilisateurs, …
§ Idée
o Utiliser plusieurs files
‣ File contient des classes de processus
• Type (utilisateur, système, …)
• Catégorie (étudiant, enseignants, administration, …)
• Principe général
§ Fixer le nombre de files
o Nombre fixe
§ Hiérarchiser les files
o Définir un ordre entre files
‣ Priorité d’allocation (F1 > F2 > … > Fn)
o Allocation selon le niveau d’une file dans la hiérarchie

38
Algorithmes: Files Multi-Niveaux
Algorithmes d’o rdonnancement
• Politique de gestion de chaque file
§ Définir un ordonnanceur par file
o Peut être le même pour toutes les files
o Diversifier les ordonnanceurs
§ Définir une stratégie pour les nouveaux processus
o Entrée dans une file bien déterminée fixée à l’avance
o Sinon définir un critère d’entrée
• Principe d’allocation
§ Allocation
o Commencer par la file la plus prioritaire
‣ File de plus haut niveau non vide
o Ne passer à la file (i+1) que si tous les processus de la file i ont été satisfaits
‣ File i plus prioritaire que la file (i+1)
§ Préemption entre files
o Revenir à une file prioritaire en cas d’arrivée de nouveaux processus dans cette
file

39
Algorithmes: Files Multi-Niveaux
Algorithmes d’o rdonnancement

• Types de files
§ Simples
o Pas de liens entre files
o Problème de famine ( Starvation )
§ Avec liens
o Unidirectionnel
‣ Définir un critère de passage d’une file à une autre
• F1 → F2 → … → Fn
o Bidirectionnel
• F1 ↔ F2 ↔ … ↔ Fn

40
Algorithmes: Files Multi-Niveaux
Algorithmes d’o rdonnancement

PRIO = 0
la + élevée

PRIO = 1

PRIO = 2

la plus faible

41
Algorithmes: Files Multi-Niveaux
Algorithmes d’o rdonnancement

PRIO = 0
la + élevée

PRIO = 1

PRIO = 2

la plus faible

42
Algorithmes à privilège
Algorithmes d’o rdonnancement

• Problématique
§ Privilégient certains processus par rapport à d’autres
o SJF avec préemption, Priorité, …
§ Risque majeur
o Famine ou starvation
‣ Attente infinie
• L’allocation du processeur ne sera pas refusée mais sera toujours différée
dans le temps

43
Exemples (1)
Algorithmes d’o rdonnancement
• Windows 2000
§ Priorité et préemption
o Nombre de niveaux de priorité: 32
o 1 seule file gérée par RR avec priorité
o Priorité dynamique (+/-)
o Quantum plus grand pour les processus en avant plan
• Unix
§ RR évolué
o Technique du RR + Priorité dynamique
o Plusieurs files d’attente
‣ Priorité entre files
o Un algorithme RR par file

44
Exemples (2)
Algorithmes d’o rdonnancement
• Linux
§ Classes d’ordonnancement
o Processus temps-partagé
o Processus temps-réel
§ Cas temps-réel
o Ordonnancement basé sur la priorité
§ Cas temps-partagé
o Utilisation de la priorité avec crédit
o Fin du quantum et processus non terminé
‣ Perte d’un crédit
o Suspension du processus qui n’a plus de crédit
o Tous les processus prêts suspendus
‣ Récupèrent tous des crédits
o Processus en background
‣ Priorité faible et moins de crédit

45