3. Ressource
• 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
Processus et Ressources
4. Ressource
• 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
Processus et Ressources
5. Ressource
• 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 et Ressources
6. Processus
• 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 et Ressources
7. Processus
• 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 et Ressources
9. Processus
Cycle de vie
§ 3 phases
o Création (génération du PCB)
‣ Lancement d’un programme
• Commande ou à travers le bureau
‣ Création dynamique 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’exécution, Arrêt par l’utilisateur
‣ Cas particulier
• Ne s’arrête jamais à cause d’une anomalie telle que Boucle Infinie
9
Processus et Ressources
10. Processus
• 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 et Ressources
12. Processus
• 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
Processus et Ressources
13. Threads
• 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
Processus et Ressources
15. Threads
• 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 et Ressources
16. Processus vs Thread
• 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
Processus et Ressources
18. 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
Gestion des Ressources
19. Files d’attente
• 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
Gestion des Ressources
20. Files d’attente
• 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
20
Gestion des Ressources
Ê … Ì
Entrée Sortie
21. Files d’attente
• 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
Gestion des Ressources
22. Files d’attente
• 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 Ressources
24. Ordonnanceurs
• Gestionnaires de ressources
§ Scheduler en anglais
• Types
§ Ordonnanceurs à court terme
§ Ordonnanceurs à moyen terme
§ Ordonnanceurs à long terme
24
Ordonnanceurs
25. Types d'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
Ordonnanceurs
26. Préemption
• 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
27. Ordonnanceurs et préemption
• 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
Ordonnanceurs
29. Problématique
• 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
Algorithmes d’ordonnancement
30. Problématique
• 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
Algorithmes d’ordonnancement
31. Critères d’évaluation
• 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
§ Nombre de processus exécutés
pendant une durée bien déterminée
• Temps de traitement (Turnaround
ou temps de rotation)
• Temps d’attente (Waiting time)
• Temps de réponse
31
Algorithmes d’ordonnancement
Processus A
arrivée fin
temps d'attente
temps de traitement
A
arrivée fin
temps d'attente
temps de traitement
AAA
32. Allocation Processeur
• 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
Algorithmes d’ordonnancement
34. Algorithmes
• 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 d’ordonnancement
35. Algorithmes
• 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 d’ordonnancement
36. Algorithmes
• 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
‣ Commande 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 d’ordonnancement
37. Algorithmes
• 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 d’ordonnancement
38. Algorithmes: Files Multi-Niveaux
• 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 d’ordonnancement
39. Algorithmes: Files Multi-Niveaux
• 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 d’ordonnancement
40. Algorithmes: Files Multi-Niveaux
• 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 d’ordonnancement
43. Algorithmes à privilège
•
• 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
Algorithmes d’ordonnancement
44. Exemples (1)
• 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
Algorithmes d’ordonnancement
45. Exemples (2)
• 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
Algorithmes d’ordonnancement