5-02. Gestion des processus
Rappels : rôles et fonctions d’un OS
Un système d’exploitation (OS, pour Operating System) est un ensemble de programmes qui réalise l’interface entre le matériel (hardware) et les applications (software) des utilisateurs.
Le système d'exploitation se présente à l'utilisateur via son interface (graphique ou en ligne de commande) et interagit avec le matériel via son noyau (kernel). Entre ces deux extrémités se trouvent plusieurs couches logicielles qui abstraient les complexités techniques.
Un système d'exploitation remplit deux fonctions essentielles :
- Servir d'intermédiaire entre le matériel informatique et les logiciels : il crée une couche d'abstraction qui permet aux applications d'accéder aux ressources matérielles sans avoir à gérer leur complexité technique.
- Gérer efficacement les ressources de l'ordinateur : il organise le partage du processeur, de la mémoire centrale et des périphériques d'entrées-sorties entre les différents programmes qui s'exécutent simultanément.
Processus : création et ordonnancement
- Décrire la création d’un processus, l’ordonnancement de plusieurs processus par le système.
Un processus est la représentation pour le système d'exploitation d'un programme en cours d'exécution ;
L'ordonnancement est la gestion de l'allocation du processeur par le système d'exploitation, c'est-à-dire le partage du processeur entre les différents processus.
Les processus
Un programme est vu différemment selon la perspective :
- Sous forme statique : un programme est un fichier exécutable stocké en mémoire auxiliaire contenant des instructions et données ;
- Sous forme dynamique : un processus est l'instance d'un programme en cours d'exécution, qui utilise activement des ressources système.
Une ressource est tout ce dont un processus a besoin pour s'exécuter : ressources matérielles (processeur, périphériques) ou logicielles (fichiers, variables).
Pour obtenir une ressource, un processus entre en concurrence avec d'autres demandes issues d'autres processus.
Bloc de contrôle de processus (PCB)
Au sein du système d'exploitation, le processus est représenté par une structure de données appelée bloc de contrôle de processus (PCB). Cette structure contient notamment :
- un identificateur unique du processus (PID) ;
- l'état courant du processus (prêt, élu, bloqué) ;
- des informations sur l'exécution et les ressources utilisées ;
- des données relatives à l'ordonnancement.
Le PCB permet au système d'exploitation de gérer et de suivre l'état de chaque processus.
Liste des processus en cours
Dans la console PowerShell de Windows, tapez la commande suivante :
Get-Process | Format-Table -Property Id, ProcessName, CPU, WorkingSet -AutoSize
Cette commande affiche l'ID des processus, son nom, l’utilisation CPU et la mémoire utilisée.
Pour avoir une idée des ressources mémoire utilisées :
Get-Process | Format-Table Id, ProcessName, CPU, WorkingSet, PagedMemorySize, PrivateMemorySize, VirtualMemorySize -AutoSize
WorkingSet: mémoire physique utiliséePagedMemorySize: mémoire paginéePrivateMemorySize: mémoire privée (non partagée)VirtualMemorySize: espace d'adressage virtuel
Pour avoir des informations sur l'exécution :
Get-Process | Format-Table Id, ProcessName, StartTime, TotalProcessorTime, UserProcessorTime, PrivilegedProcessorTime -AutoSize
StartTime: heure de démarrage du processusTotalProcessorTime: temps total d'utilisation CPUUserProcessorTime: temps passé en mode utilisateurPrivilegedProcessorTime: temps passé en mode privilégié (noyau)
Correction
État d’un processus
Un processus est dit :
- prêt lorsqu’il est en attente du processeur ;
- élu lorsqu’il a obtenu le processeur et qu’il s’exécute ;
- bloqué lorsqu’il attend une ressource autre que le processeur.
Lorsqu’un processus bloqué a obtenu la ressource qu’il attendait, il repasse dans l’état prêt car le processeur n’est pas forcément libre.
Exemple : imaginons un système d'exploitation qui gère trois processus simples :
- P1 : un traitement de texte
- P2 : un navigateur web
- P3 : une application de calcul
Voici comment ces processus pourraient évoluer dans le temps :
| Temps | P1 | P2 | P3 |
|---|---|---|---|
| t0 | Élu | Prêt | Prêt |
| t1 | Élu | Prêt | Prêt |
| t2 | Bloqué (attend saisie) | Élu | Prêt |
| t3 | Bloqué (attend saisie) | Élu | Prêt |
| t4 | Bloqué (attend saisie) | Bloqué (charge page) | Élu |
| t5 | Prêt (saisie reçue) | Bloqué (charge page) | Élu |
| t6 | Prêt | Prêt (page chargée) | Élu |
| t7 | Élu | Prêt | Prêt |
| t8 | Élu | Prêt | Prêt |
Explications
1. Au temps t0-t1 :
- P1 (traitement de texte) est élu et s'exécute sur le processeur
- P2 et P3 sont prêts, en attente du processeur
2. Au temps t2-t3 :
- P1 devient bloqué car il attend une saisie utilisateur
- P2 (navigateur) devient élu et commence à s'exécuter
- P3 reste prêt
3. Au temps t4 :
- P1 est toujours bloqué en attente de saisie
- P2 devient bloqué car il attend le chargement d'une page web
- P3 (application de calcul) devient élu et commence ses calculs
4. Au temps t5 :
- P1 reçoit la saisie attendue et passe à l'état prêt (pas encore élu car P3 utilise le processeur)
- P2 est toujours bloqué en attente du chargement
- P3 continue d'être élu
5. Au temps t6 :
- P1 reste prêt
- P2 a terminé son chargement et devient prêt
- P3 est toujours élu
6. Au temps t7-t8 :
- L'ordonnanceur décide de redonner le processeur à P1 qui devient élu
- P2 et P3 passent à l'état prêt
Ordonnancement
L’ordonnancement, c’est la fonction du système d’exploitation qui permet de choisir à un instant donné quel processus va s’exécuter. L’opération qui consiste à choisir ce processus est appelée opération d’élection.
L’ordonnancement peut être de différents types : par ordre de soumission, par tourniquet, par priorité (préemptive ou non), etc. Une priorité est un nombre entier positif qui donne le rang à chaque processus parmi l’ensemble des processus présents dans la machine.