Maison  >  Article  >  La plus petite unité de planification du processeur

La plus petite unité de planification du processeur

(*-*)浩
(*-*)浩original
2019-10-26 10:59:0810062parcourir

L'unité de base de la planification du processeur est le thread. Un thread est la plus petite unité sur laquelle le système d’exploitation peut effectuer la planification des opérations.

La plus petite unité de planification du processeur

Un thread fait référence à un seul flux de contrôle séquentiel dans un processus. Plusieurs threads peuvent s'exécuter simultanément dans un processus, et chaque thread exécute différentes tâches en parallèle. On l'appelle également processus légers sous Unix System V et SunOS, mais les processus légers font davantage référence aux threads du noyau, tandis que les threads utilisateur sont appelés threads. (Apprentissage recommandé : Tutoriel vidéo Web front-end)

Planificateur de processeur

Chaque fois que le processeur est inactif, l'opération doit être sélectionnée parmi la file d'attente prête un processus à exécuter. La sélection des processus est effectuée par un planificateur à court terme ou un planificateur CPU. Le planificateur sélectionne un processus exécutable dans le noyau et lui alloue le CPU.

La file d'attente prête ne doit pas nécessairement être une file d'attente premier entré, premier sorti (FIFO). Les files d'attente prêtes peuvent être implémentées sous forme de files d'attente FIFO, de files d'attente prioritaires, d'arborescences ou de simples listes chaînées non ordonnées. Cependant, sur le plan conceptuel, tous les processus de la file d'attente prête sont mis en file d'attente en attendant d'être exécutés sur le processeur. Les enregistrements dans la file d'attente sont généralement des blocs de contrôle de processus (PCB).

Planification préemptive

Les décisions de planification du processeur peuvent survenir dans les 4 environnements suivants :

Lorsqu'un processus change depuis l'exécution state Passer à un état d'attente (par exemple, une requête d'E/S ou un appel wait pour attendre la fin d'un processus enfant).

Lorsqu'un processus passe de l'état d'exécution à l'état prêt (par exemple, lorsqu'une interruption se produit)

Lorsqu'un processus passe de l'état d'attente à l'état prêt (par exemple, E/S se termine)

Quand un processus se termine

Pour les cas 1 et 4, il n'y a pas d'autre choix que de planifier. Un nouveau processus (si un processus existe déjà dans la file d'attente prête) doit être sélectionné pour exécution. Cependant, pour les cas 2 et 3, il existe un choix.

Lorsque la planification ne peut avoir lieu que dans les 1ère et 4ème situations, le plan de planification est dit non préemptif ou coopératif sinon, le plan de planification est dit préemptif). Avec la planification non préemptive, une fois le processeur alloué à un processus, le processus utilisera toujours le processeur jusqu'à ce qu'il se termine ou passe à un état d'attente.

Les interruptions peuvent survenir à tout moment et ne peuvent pas toujours être ignorées par le noyau, les segments de code affectés par les interruptions doivent donc être protégés de tout accès simultané. Afin d'empêcher l'accès à ces segments de code par plusieurs processus en même temps, les interruptions doivent être désactivées lors de l'entrée et les interruptions doivent être réactivées lors de la sortie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn