[Linux] Paramètres de ligne de commande et priorité du processus

[Linux] Paramètres de ligne de commande et priorité du processus

Paramètres de ligne de commande

Le concept de paramètres de ligne de commande

Les paramètres de ligne de commande font référence aux paramètres saisis sur la ligne de commande lors de l'exécution d'un programme.

Réception des paramètres de fonction de commande

La fonction main en langage C a deux paramètres pour recevoir les paramètres de ligne de commande, à savoir argc et argv. Même si les paramètres de la fonction main ne sont pas explicitement indiqués, le compilateur ajoutera et recevra automatiquement les paramètres lors de la compilation, mais ils ne le seront pas. explicitement indiqué. Impossible d'utiliser le paramètre :

int main(int argc, char *argv[]);

Lors de l'exécution du programme, vous devez saisir des paramètres sur la ligne de commande. L'essence des paramètres est une chaîne. Ils seront séparés par des espaces avant d'être transmis à la fonction principale, puis transmis séparément. Le paramètre argc enregistre le nombre de paramètres transmis et le paramètre argv enregistre l'adresse de chaque paramètre :

image-20230825134110559

Vérification du code d'écriture

Écrivez le code suivant pour vérifier que la fonction principale accepte les paramètres de ligne de commande :

#include <stdio.h>

int main(int argc, char *argv[])
{
    
    
  int i = 0;
  for (i = 0; i < argc; i++)
  {
    
    
      printf("argv[%d]->%s\n", i, argv[i]);
  }
  return 0;
}

Test après compilation réussie :

image-20230825134818559

Supplément : C'est précisément parce que la fonction principale peut recevoir des paramètres de ligne de commande que la fonction d'ajout d'options lors de l'utilisation des instructions Linux est réalisée.

Processus prioritaire

Le concept de priorité de processus

La priorité d'un processus fait référence à l'ordre dans lequel les ressources CPU sont allouées. Les processus avec une priorité plus élevée ont des droits d'exécution prioritaires.

La raison de l'émergence de la priorité des processus : il existe de nombreux processus système, mais il n'y a qu'une petite quantité de ressources CPU, voire une, il y a donc une 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.

PRI et NI

Entrez les paramètres pour visualiser le processus système sous le système Linux ps -l:

image-20230825140845597

Parmi les nombreuses données, les deux paramètres liés à la priorité sont PRI et NI.

  • PRI : représente la priorité avec laquelle ce processus peut être exécuté. Plus la valeur est petite, plus il sera exécuté tôt.

  • NI : représente la belle valeur de ce processus, qui représente la valeur modifiée de la priorité à laquelle le processus peut être exécuté.

PRI = valeur de priorité initiale + valeur intéressante.

La plage de valeur nice est [-20,19). Si la priorité d'un certain processus est trop élevée ou trop faible, cela peut empêcher d'autres processus d'être planifiés ou lui-même ne peut pas être planifié, donc la valeur nice a un gamme.

Utilisez la commande top pour modifier la belle valeur

Écrivez le code suivant pour tester la belle modification de la valeur :

#include <stdio.h>
#include <unistd.h>

int main()
{
    
    
  while(1)
  {
    
    
    printf(".");
    fflush(stdout);
    sleep(1);
  }
  return 0;
}

Exécutez après une compilation réussie et ouvrez deux terminaux supplémentaires, entrez topla commande dans l'un et entrez ps -alla commande dans l'autre :

image-20230825143626926

Appuyez sur r dans le processus supérieur :

image-20230825143651375

Dans le processus supérieur, entrez l'ID du processus à modifier en nice :

image-20230825143732282

Saisissez la belle valeur à modifier :

image-20230825143825468

Utilisez ps -alla commande pour afficher :

image-20230825143853689

Puisque la valeur initiale est de 80 et la belle valeur de 10, le PRI final est de 90.

Je suppose que tu aimes

Origine blog.csdn.net/csdn_myhome/article/details/132509755
conseillé
Classement