Bloc de contrôle de processus - Process control block
Un bloc de contrôle de processus (PCB) est une structure de données utilisée par les systèmes d'exploitation informatiques pour stocker toutes les informations sur un processus. Il est également appelé descripteur de processus. Lorsqu'un processus est créé (initialisé ou installé), le système d'exploitation crée un bloc de contrôle de processus correspondant.
Ceci spécifie l'état du processus, c'est-à-dire nouveau, prêt, en cours d'exécution, en attente ou terminé.
Rôle
Le rôle des PCB est central dans la gestion des processus : ils sont accédés et/ou modifiés par la plupart des utilitaires, en particulier ceux impliqués dans l'ordonnancement et la gestion des ressources.
Structure
Dans les systèmes d'exploitation multitâches , le PCB stocke les données nécessaires à une gestion correcte et efficace des processus. Bien que les détails de ces structures dépendent du système, les éléments communs se répartissent en trois catégories principales :
- Identification du processus
- État du processus
- Contrôle de processus
Des tableaux d'état existent pour chaque entité pertinente, comme décrivant la mémoire, les périphériques d'E/S, les fichiers et les processus.
Les tables de mémoire, par exemple, contiennent des informations sur l'allocation de la mémoire principale et secondaire (virtuelle) pour chaque processus, les attributs d'autorisation pour accéder aux zones de mémoire partagées entre les différents processus, etc. Les tables d'E/S peuvent contenir des entrées indiquant la disponibilité d'un périphérique ou son affectation à un processus, l'état des opérations d'E/S, l'emplacement des tampons mémoire utilisés pour celles-ci, etc.
Les données d'identification de processus comprennent un identifiant unique pour le processus (presque invariablement un nombre entier) et, dans un système multi-utilisateurs et multitâches, des données telles que l'identifiant du processus parent, l'identifiant de l'utilisateur, l'identifiant du groupe d'utilisateurs, etc. L'identifiant du processus est particulièrement pertinent. car il est souvent utilisé pour croiser les tables définies ci-dessus, par exemple montrant quel processus utilise quels périphériques d'E/S, ou zones de mémoire.
Les données d'état du processus définissent l'état d'un processus lorsqu'il est suspendu, permettant au système d'exploitation de le redémarrer ultérieurement. Cela inclut toujours le contenu des registres CPU à usage général, le mot d'état du processus CPU, les pointeurs de pile et de trame, etc. Pendant le changement de contexte , le processus en cours est arrêté et un autre processus s'exécute. Le noyau doit arrêter l'exécution du processus en cours, copier les valeurs des registres matériels sur son PCB et mettre à jour les registres matériels avec les valeurs du PCB du nouveau processus.
Les informations de contrôle de processus sont utilisées par le système d'exploitation pour gérer le processus lui-même. Ceci comprend:
- État de planification du processus - L'état du processus en termes de "prêt", "suspendu", etc., ainsi que d'autres informations de planification, telles que la valeur de priorité, le temps écoulé depuis que le processus a pris le contrôle du processeur ou depuis il a été suspendu. De plus, dans le cas d'un processus suspendu, les données d'identification d'événement doivent être enregistrées pour l'événement que le processus attend.
- Informations de structuration du processus - les identifiants des enfants du processus ou les identifiants d'autres processus liés au processus actuel d'une manière fonctionnelle, qui peuvent être représentés comme une file d'attente, un anneau ou d'autres structures de données
- Informations de communication interprocessus : indicateurs, signaux et messages associés à la communication entre des processus indépendants
- Privilèges de processus – accès autorisé/interdit aux ressources système
- État du processus : nouveau, prêt, en cours d'exécution, en attente, mort
- Numéro de processus (PID) – numéro d'identification unique pour chaque processus (également appelé ID de processus )
- Compteur de programme (PC) - Un pointeur vers l'adresse de la prochaine instruction à exécuter pour ce processus
- Registres CPU–Registre défini où le processus doit être stocké pour l'exécution pour l'état d'exécution
- CPU Scheduling Information–heure CPU de planification des informations
- Informations sur la gestion de la mémoire : table de pages, limites de mémoire, table de segments
- Informations comptables : quantité de CPU utilisée pour l'exécution du processus, les limites de temps, l'ID d'exécution, etc.
- Informations sur l'état des E/S : liste des périphériques d'E/S alloués au processus.
Emplacement
Le PCB doit être conservé dans une zone de mémoire protégée des accès normaux aux processus. Dans certains systèmes d'exploitation, le PCB est placé au début de la pile de noyau du processus.