Lorsque la CPU ne fait rien, il exécute le processus de ralenti. J'ai entendu dire que ce processus recherche des programmes qui attendent dans la file d'attente afin que la CPU puisse les exécuter. Est-ce tout ce qu'il fait? À quoi ressemble le code? Je suis également intéressé à connaître le nom de fichier du processus de veille du système dans les différents OSES. P>
5 Réponses :
Le processus de ralenti ne fait rien; Le système d'exploitation lui-même est responsable des processus de planification à courir. Le processus de ralenti lui-même vient de boucler les instructions HLT. (Source: Wikipedia ) P>
Ce lien ne va nulle part.
Plus moderne X86 OSES Utilisez Monitor CODE> /
MWAIT CODE> Pour placer la CPU dans un état de sommeil plus profond, mais oui, c'est juste une façon fantaisie de
HLT code>.
Le système d'exploitation exécute le planificateur chaque fois qu'un processus est à la fin de sa tranche de temps, et chaque fois qu'un processus a effectué une opération de blocage. Le planificateur choisit ensuite le prochain processus à exécuter. Sur les plates-formes que je sais, cela n'a aucun sens de voir le planificateur comme un processus. P>
Voici un peu plus sur planification . P>
Dans les systèmes intégrés critiques de l'espace, le processus inactif est utilisé pour Mémoire de gommage afin de vérifier Si les rayons cosmiques ont introduit des flips de bits. P>
La question contient plusieurs hypothèses tacites erronées. Voici quelques indications: p>
HLT code>, dont l'intention est en termes généraux pour réduire l'utilisation du processeur de ralenti du bus système (de sorte que, bien sûr, non em > -Idle Les processeurs peuvent utiliser cette bande passante de bus). Donc, sur de nombreuses architectures, la boucle infinie exécute à plusieurs reprises ces instructions. Certains processeurs peuvent signaler leur état "inactif" sur le bus lorsqu'ils exécutent de telles instructions, quel matériel externe peut reconnaître et agir (par exemple en ralentissant les horloges de bus et consommant moins de puissance, par exemple). De même, les instructions de ralenti peuvent amener les processeurs eux-mêmes de faire des choses telles que le ralentissement de l'horloge et l'économie d'énergie. Li>
- Schedule de bas niveau n'est pas une chose "in-thread". strong> Après tout, c'est le planificateur de bas niveau, souvent appelé le répartiteur em>, qui détermine quel fil même courir en premier lieu. Il s'agit de planification de haut niveau de taille moyenne et (parfois bien que rarement) dans des filets. Un planificateur de taille moyenne peut être, par exemple, un fil qui se réveille toutes les n secondes et analyse la table de threads recompagnant les priorités de fil des threads de priorité dynamique. Ou peut-être un fil que, toutes les n secondes, poussent des segments de processus complets sur le disque et les redevient de nouveau, en fonction de la priorité des processus et de l'utilisation récente de la CPU. (Ce dernier type est rare sur les systèmes d'exploitation de pagination modernes, mais il existait sur les systèmes d'exploitation d'échange de segments.) LI>
ul>
Le processus d'inactivité est destiné au planificateur d'exécuter quelque chose lorsque aucun processus n'est exécuté. Cela dépend du système d'exploitation en particulier. P>
Pour une compréhension simple, nous pouvons dire que le processus d'inactivité est une boucle infinie, qui sera programmée lorsqu'aucun processus ne fonctionne p>