Contexte de processus et bloc de contrôle de processus (PCB)
Le noyau alloue des ressources à un processus et le planifie pour l'utilisation du CPU. En conséquence, la vue du noyau d'un processus se compose de deux parties :
- Code, données et pile du processus, et informations concernant la mémoire et les autres ressources, telles que les fichiers, qui lui sont allouées.
- Informations concernant l'exécution d'un programme, telles qu'un état de processus, l'état de la CPU, y compris le pointeur de pile, et quelques autres éléments d'information.
Ces deux parties de la vue du noyau sont contenues respectivement dans le contexte de processus et le bloc de contrôle de processus (PCB). Cette disposition permet à différents modules OS d'accéder facilement et efficacement aux informations pertinentes liées au processus.
Contexte de processus
Le contexte de processus se compose des éléments suivants :
- Espace d'adressage du processus : le code, les données et les composants de pile du processus.
- Information d'allocation mémoire : Information concernant les zones mémoire allouées à un processus. Ces informations sont utilisées par l'unité de gestion de la mémoire (MMU) pendant le fonctionnement du processus.
- État des activités de traitement des fichiers : informations sur les fichiers utilisés, telles que les positions actuelles dans les fichiers.
- Informations sur l'interaction du processus : informations nécessaires pour contrôler l'interaction du processus avec d'autres processus, par exemple, les identifiants des processus parent et enfant, et les messages interprocessus qui lui ont été envoyés et qui ne lui ont pas encore été livrés.
- Informations sur les ressources : informations concernant les ressources allouées au processus.
- Informations diverses : Informations diverses nécessaires au fonctionnement d'un processus.
Le système d'exploitation crée un contexte de processus en allouant de la mémoire au processus, en chargeant le code du processus dans la mémoire allouée et en configurant son espace de données. Les informations concernant les ressources allouées au processus et son interaction avec d'autres processus sont maintenues dans le contexte du processus tout au long de la vie du processus. Ces informations changent à la suite d'actions telles que l'ouverture et la fermeture de fichiers et la création et la destruction de données par le processus pendant son fonctionnement.
Bloc de contrôle du processus (PCB)
Chaque processus est représenté dans le système d'exploitation par un bloc de contrôle de processus (PCB) également appelé bloc de contrôle de tâche. Un PCB est illustré dans la figure ci-dessous. Il contient de nombreux éléments d'information associés à un processus spécifique, dont les suivants :
- État du processus. L'état peut être nouveau, prêt, en cours d'exécution, bloqué, terminé, etc.
- Compteur de programme. Le compteur indique l'adresse de la prochaine instruction à exécuter pour ce processus.
- Les registres du processeur. Les registres varient en nombre et en type, selon l'architecture de l'ordinateur. Ils comprennent les accumulateurs, les registres d'index, les pointeurs de pile et les registres à usage général, ainsi que toute information sur le code d'état. Avec le compteur de programme, ces informations d'état doivent être sauvegardées lorsqu'une interruption se produit, afin de permettre au processus de se poursuivre correctement par la suite lorsqu'il est reprogrammé pour s'exécuter.
- Informations sur l'ordonnancement du processeur. Ces informations comprennent la priorité du processus, les pointeurs vers les files d'attente d'ordonnancement et tout autre paramètre d'ordonnancement.
- Informations sur la gestion de la mémoire. Ces informations peuvent inclure des éléments tels que la valeur des registres de base et de limite et les tables de pages, ou les tables de segments, selon le système de mémoire utilisé par le système d'exploitation.
- Information comptable. Ces informations incluent la quantité d'UC et le temps réel utilisés, les limites de temps, les numéros de compte, les numéros de tâche ou de processus, etc.
- Informations sur l'état des E/S. Ces informations comprennent la liste des périphériques d'E/S alloués au processus, une liste des fichiers ouverts, etc.
En bref, le PCB sert simplement de dépôt pour toutes les données nécessaires au démarrage ou au redémarrage d'un processus, ainsi que pour certaines données comptables.
Sauvegarde du contexte, ordonnancement et dispatching
La fonction de sauvegarde du contexte effectue un nettoyage chaque fois qu'un événement se produit. Il enregistre l'état CPU du processus interrompu dans son PCB, et enregistre les informations concernant son contexte. Rappelez-vous que le processus interrompu aurait été en cours d'exécution avant que l'événement ne se produise. La fonction d'enregistrement de contexte change son état en prêt. Le gestionnaire d'événements peut ensuite changer l'état du processus interrompu en bloqué, par exemple, si l'événement en cours était une demande d'initiation d'E/S par le processus interrompu lui-même.
La fonction de planification utilise les informations d'état de processus des PCB pour sélectionner un processus prêt à être exécuté et transmet son identifiant à la fonction de répartition (dispatching).
La fonction de répartition définit le contexte du processus sélectionné, change son état en exécution et charge l'état du processeur enregistré de son PCB dans le processeur.