


Les processus ont-ils des priorités sous Linux ?
Les processus sous Linux ont des priorités. Linux est un système d'exploitation multi-utilisateurs et multitâches. Il existe généralement de nombreux processus en cours d'exécution dans le système, mais le processeur ne peut exécuter qu'une seule instruction par cycle d'horloge. Quel processus doit fonctionner en premier et qui doit fonctionner en dernier ? Cela doit être déterminé par la priorité du processus. Dans le système Linux, il existe deux paramètres qui représentent la priorité du processus : Pri et Nice ; la priorité du processus est la valeur PRI, pas la valeur Nice, mais la valeur Nice affectera la priorité.
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
Linux-Process Priority
Linux est un système d'exploitation multi-utilisateurs et multitâche, et de nombreux processus sont généralement en cours d'exécution dans le système. Cependant, le processeur ne peut exécuter qu'une seule instruction dans un cycle d'horloge (le processeur actuel utilise une technologie multithread et multicœur, il peut donc exécuter plusieurs instructions dans un cycle d'horloge. Cependant, le nombre d'instructions pouvant être exécutées en même temps même temps est bien inférieur à celui du système (le nombre total de processus), alors la question se pose : qui doit calculer en premier et qui doit calculer en dernier ? Cela doit être déterminé par la priorité du processus.
L'ordre dans lequel le processeur alloue les ressources est la priorité
Les processus avec une priorité élevée ont le droit de s'exécuter en premier
-
permet au processus de s'exécuter sur le processeur désigné et d'améliorer les performances globales du système
.
De plus, lorsque le processeur calcule des données, il n'effectue pas un calcul intégré puis effectue le calcul du processus suivant. Au lieu de cela, il calcule d'abord le processus 1, puis le processus 2, puis le processus 3, puis le processus 1. jusqu'à ce que la tâche de processus se termine. De plus, en raison de l'existence d'une priorité de processus, les processus ne sont pas calculés séquentiellement, mais le processus ayant une priorité plus élevée sera calculé plusieurs fois au cours d'un cycle de calcul.
C’est difficile à comprendre de cette façon, disons les choses autrement. Supposons que j'ai maintenant 4 enfants (processus) qui doivent être nourris (calculés). Je préfère l'enfant 1 (le processus 1 a une priorité plus élevée) et l'enfant 2, l'enfant 3 et l'enfant 4 sont traités de la même manière (processus 2, processus 3 et le processus 4 est prioritaire). Maintenant, je commence à nourrir. Je ne peux pas nourrir l'enfant 1 en premier, puis nourrir les autres enfants. Au lieu de cela, je dois nourrir la nourriture en boucle (tous les processus sont en boucle pendant le fonctionnement du processeur). Ensuite, lorsque je nourrirai (calcul), je donnerai d'abord à l'enfant une bouchée de riz, puis je nourrirai les autres enfants. Et dans un cycle, donnez d'abord deux bouchées de nourriture à l'enfant 1, car je préfère l'enfant 1 (haute priorité), et donnez aux autres enfants une bouchée de nourriture. De cette façon, l'enfant 1 sera nourri en premier (le processus 1 calcule plus rapidement) car j'aime davantage l'enfant 1.
Afficher la priorité du processus
1. Utilisez ps-al pour voir la priorité du processus
2. PRI et NI
Dans les systèmes Linux, représente la priorité du processus en a deux. paramètres : Prioritaire et Nice.
[root@localhost ~]# ps -le F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 1 0 0 80 0 - 718 - ? 00:00:01 init 1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd ...省略部分输出...
Parmi eux, PRI signifie Priorité et NI signifie Nice. Les deux valeurs représentent la priorité. Plus la valeur est petite, plus le processus sera traité par le CPU. Cependant, la valeur PRI est ajustée dynamiquement par le noyau et ne peut pas être modifiée directement par l'utilisateur. Nous ne pouvons donc affecter la valeur PRI qu'en modifiant la valeur NI et en ajustant indirectement la priorité du processus. La relation entre
PRI et NI est la suivante :
PRI (valeur finale) = PRI (valeur d'origine) + NI
En fait, tout le monde doit juste se rappeler qu'on peut changer la priorité du processus en modifiant la valeur de NI. Plus la valeur NI est petite, la valeur PRI du processus diminuera et le processus sera traité en premier par le CPU, à l'inverse, plus la valeur NI est grande, la valeur PRI du processus augmentera et le processus sera traité plus tard ; par le processeur.
Il y a plusieurs choses à noter lors de la modification de la valeur NI :
La plage NI est de -20~19.
Les utilisateurs ordinaires peuvent ajuster la valeur NI dans la plage de 0 à 19, et ils ne peuvent ajuster que leurs propres processus.
Les utilisateurs ordinaires ne peuvent qu'augmenter la valeur NI, pas la diminuer. Si la valeur NI d'origine est 0, elle ne peut être ajustée que pour être supérieure à 0.
Seul l'utilisateur root peut définir la valeur NI du processus sur une valeur négative et peut ajuster le processus de n'importe quel utilisateur.
Affichez la commande pour afficher et modifier la belle valeur
1. Utilisez la commande supérieure pour afficher et modifier la belle valeur
Entrez en haut et appuyez sur r, entrez le pid du processus, entrez la belle valeur. . (S'il indique que l'élévation est refusée, utilisez sudo pour élever les autorisations de la commande supérieure).
2. Autres concepts
Concurrence : Il existe de nombreux systèmes, mais seulement un petit nombre de CPU, voire un seul, il y a donc concurrence entre les processus. Afin d'accomplir les tâches efficacement et de rivaliser plus raisonnablement pour les ressources associées, la priorité est donnée.
Indépendance : le fonctionnement multi-processus nécessite l'utilisation exclusive de diverses ressources, de sorte que les multi-processus n'interfèrent pas les uns avec les autres.
Parallèle : plusieurs processus exécutés sur plusieurs processeurs en même temps sont appelés parallélisme.
Concurrence : plusieurs processus utilisent la commutation de processus sur un processeur pour faire avancer plusieurs processus sur une période de temps, ce que l'on appelle la concurrence.
La priorité du processus est la valeur PRI, pas la valeur Nice, mais la valeur Nice affectera la priorité
PRI est également relativement facile à comprendre, c'est-à-dire la priorité du processus, ou dans En termes simples, le programme est exécuté par le CPU. Plus la valeur est petite, plus la priorité du processus est élevée. Et NI ? C'est la belle valeur dont nous parlons, qui représente la valeur modifiée de la priorité à laquelle le processus peut être exécuté. Comme mentionné précédemment, plus la valeur PRI est petite, plus elle sera exécutée rapidement. Après avoir ajouté la valeur nice, le PRI deviendra : PRI(new)=PRI(old)+nice.
Jusqu'à présent, ce qu'il faut souligner, c'est que la belle valeur d'un processus n'est pas la priorité du processus. Ce n'est pas un concept, mais la belle valeur du processus affectera le changement de priorité du processus.
Modifiez la priorité du processus en ajustant la valeur agréable. La plage de réglage agréable est de -20 à 19.
Facteurs d'influence et principes de priorité et de changement des processus
Stratégie de planification : les processus de planification RR et FIFO sont des processus en temps réel, et les processus de planification en temps partagé (AUTRES) sont des processus non en temps réel.
FIFO (premier entré, premier sorti) et RR (rotation des tranches de temps) sont utilisés pour les processus en temps réel, et OTHER (planification en temps partagé) est utilisé pour les processus non en temps réel qui préempteront ; les processus ordinaires ; FIFO fera en sorte que les processus en temps réel de même priorité occupent toujours le CPU et RR garantira que les processus en temps réel de même priorité sont exécutés à tour de rôle selon des tranches de temps.
La priorité des processus en temps réel est supérieure à celle des processus ordinaires. Les processus en temps réel utilisent une planification de priorité statique, et les processus non en temps réel utilisent une planification de priorité dynamique. ajusté par nice et peut être affecté par le bonus.
Les processus Linux ont deux priorités : la priorité de processus normale (en utilisant la politique de planification SCHED_NORMAL) et la priorité de processus en temps réel (en utilisant la politique de planification SCHED_FIFO ou SCHED_RR)
Les processus en temps réel avec des politiques de planification différentes n'ont que la même priorité. comparable.À tout moment, la priorité des processus en temps réel est supérieure à celle des processus ordinaires. Linux utilise une planification de priorité statique pour les processus en temps réel, et les processus ordinaires (processus non temps réel) sont planifiés selon des priorités dynamiques.
Le processus en temps réel n'a qu'une priorité statique (entre 0~MAX_RT_PRIO-1, la valeur par défaut MAX_RT_PRIO est 100), le noyau n'ajustera plus sa priorité statique en fonction du sommeil et d'autres facteurs
Priorité du processus en temps réel 0- ; 99 Chaque priorité correspond à une file d'attente prioritaire (liste chaînée), et la liste chaînée correspondante avec une valeur plus élevée est exécutée en premier (le numéro 0 est le plus bas). La priorité peut être modifiée par le chrt et les fonctions correspondantes décrites plus loin ; la priorité statique des processus non temps réel peut être ajustée par une valeur intéressante (-20~19) : static_prio=MAX_RT_PRIO + nice + 20.
nice n'affecte que les processus non temps réel (la priorité statique est comprise entre 100 et 139). Plus la valeur nice est grande, plus la valeur de priorité statique est grande et plus la priorité est faible.
La priorité dynamique des processus non temps réel est calculée en fonction de la priorité statique et du bonus :dynamic_prio = max (100, min (static_prio - bonus + 5, 139))
bonus reflète le temps de sommeil moyen du processus (plage 0 ~ 10), temps de veille Plus il est probable qu'il s'agisse d'un processus interactif, plus il est probable qu'il n'utilisera pas la tranche de temps avant de libérer le processeur à chaque fois que ce sera son tour de s'exécuter.
Recommandations associées : "
Tutoriel vidéo Linux"
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Vs Code Système Exigences: Système d'exploitation: Windows 10 et supérieur, MacOS 10.12 et supérieur, processeur de distribution Linux: minimum 1,6 GHz, recommandé 2,0 GHz et au-dessus de la mémoire: minimum 512 Mo, recommandée 4 Go et plus d'espace de stockage: Minimum 250 Mo, recommandée 1 Go et plus d'autres exigences: connexion du réseau stable, xorg / wayland (Linux) recommandé et recommandée et plus

Les raisons de l'installation des extensions de code vs peuvent être: l'instabilité du réseau, les autorisations insuffisantes, les problèmes de compatibilité système, la version de code vs est trop ancienne, un logiciel antivirus ou des interférences de pare-feu. En vérifiant les connexions réseau, les autorisations, les fichiers journaux, la mise à jour vs du code, la désactivation des logiciels de sécurité et le redémarrage du code ou des ordinateurs, vous pouvez progressivement dépanner et résoudre les problèmes.

Bien que le bloc-notes ne puisse pas exécuter directement le code Java, il peut être réalisé en utilisant d'autres outils: à l'aide du compilateur de ligne de commande (Javac) pour générer un fichier bytecode (filename.class). Utilisez l'interpréteur Java (Java) pour interpréter ByteCode, exécuter le code et sortir le résultat.

VS Code est le code Visual Studio Nom complet, qui est un éditeur de code multiplateforme gratuit et open source et un environnement de développement développé par Microsoft. Il prend en charge un large éventail de langages de programmation et fournit une mise en surbrillance de syntaxe, une complétion automatique du code, des extraits de code et des invites intelligentes pour améliorer l'efficacité de développement. Grâce à un écosystème d'extension riche, les utilisateurs peuvent ajouter des extensions à des besoins et des langues spécifiques, tels que les débogueurs, les outils de mise en forme de code et les intégrations GIT. VS Code comprend également un débogueur intuitif qui aide à trouver et à résoudre rapidement les bogues dans votre code.

VS Code est disponible sur Mac. Il a des extensions puissantes, l'intégration GIT, le terminal et le débogueur, et offre également une multitude d'options de configuration. Cependant, pour des projets particulièrement importants ou un développement hautement professionnel, le code vs peut avoir des performances ou des limitations fonctionnelles.

Visual Studio Code (VSCODE) est un éditeur de code Open Source, Open Source et gratuit développé par Microsoft. Il est connu pour son léger, l'évolutivité et le support pour une large gamme de langages de programmation. Pour installer VScode, veuillez visiter le site officiel pour télécharger et exécuter l'installateur. Lorsque vous utilisez VSCODE, vous pouvez créer de nouveaux projets, modifier le code, déboguer le code, naviguer dans les projets, développer VSCODE et gérer les paramètres. VScode est disponible pour Windows, MacOS et Linux, prend en charge plusieurs langages de programmation et fournit diverses extensions via Marketplace. Ses avantages incluent le léger, l'évolutivité, le support linguistique étendu, les fonctionnalités riches et la version

Les principales utilisations de Linux comprennent: 1. Système d'exploitation du serveur, 2. Système intégré, 3. Système d'exploitation de bureau, 4. Environnement de développement et de test. Linux excelle dans ces domaines, offrant des outils de stabilité, de sécurité et de développement efficaces.

Pour afficher l'adresse du référentiel GIT, effectuez les étapes suivantes: 1. Ouvrez la ligne de commande et accédez au répertoire du référentiel; 2. Exécutez la commande "git Remote -v"; 3. Affichez le nom du référentiel dans la sortie et son adresse correspondante.
