Exercice Corrigé Gestion Des Processus Linux – Partie 8

Les exercices pratiques sur la gestion des processus linux comportent des exercices théoriques et pratiques sur les concepts fondamentaux de la gestion des processus, y compris la création, la planification, et la terminaison des processus. Vous aurez l’occasion d’explorer des commandes essentiels tels que ps et top pour surveiller les processus en temps réel, ainsi que d’utiliser des commandes comme kill pour gérer les processus.

De plus, des exercices aborderont la gestion de la mémoire, l’utilisation des identifiants de processus (PID), ainsi que l’interaction entre les processus via des signaux. Les travaux pratiques incluront des scénarios de simulation où vous pouvez créer des scripts pour automatiser la gestion des processus et résoudre des problèmes courants liés aux processus orphelins et aux zombies.

L’objectif est de fournir une compréhension approfondie de la manière dont le système d’exploitation Linux gère les processus, ainsi que des compétences pratiques pour gérer efficacement les processus dans un environnement réel.

 
 

Exercice 1:

Utilisez la sortie suivante de la commande top pour répondre aux 6 questions suivantes.

PID   USER  PRI  NI  SIZE  RSS   SHARE  STAT %CPU  %MEM TIME  CPU COMMAND
5211  alex  24   0   400   400   352    R    15.9  0.1  0:03  0   proc_a
5212  alex  24   0   400   400   352    R    15.9  0.1  0:03  0   proc_a
5213  alex  24   0   400   400   352    R    14.3  0.1  0:03  0   proc_a
5208  alex  30   5   400   400   352    R N  11.1  0.1  0:07  0   proc_b
5207  alex  30   5   400   400   352    R N  10.5  0.1  0:07  0   proc_b
5205  alex  30   5   516   516   452    R N  9.7   0.2  0:18  0   proc_b
5206  alex  30   5   404   404   352    R N  9.7   0.1  0:08  0   proc_b
2648  alex  16   0   9752  8496  2980   R    6.5   3.3  2:00  0   gnome-termina
5209  alex  37   15  404   404   352    R N  2.7   0.1  0:01  0   proc_c
5210  alex  37   15  400   400   352    R N  2.7   0.1  0:01  0   proc_c
5214  alex  15   0   1132  1132  864    R    0.3   0.4  0:00  0   top
1     root  15   0   108   76    52     S    0.0   0.0  0:04  0   init
2     root  15   0   0     0     0      SW   0.0   0.0  0:00  0   keventd
3     root  15   0   0     0     0      SW   0.0   0.0  0:00  0   kapmd
4     root  34   19  0     0     0      SWN  0.0   0.0  0:00  0   ksoftirqd_CPU

1.1) Quelle est la valeur de gentillesse(niceness) des processus proc_c?

A 15

B 37

C 2.7

D 404

E Aucune de ces réponses

A
La valeur « niceness » des processus proc_c est de 15. Dans la sortie de la commande top, vous pouvez trouver les valeurs « niceness » dans la colonne NI, et les deux entrées pour proc_c ont une valeur « niceness » de 15.

 

1.2) Quelle est la valeur de gentillesse(niceness) des processus proc_a?

A 0

B 400

C 24

D 15

E 352

A
La valeur « niceness » des processus proc_a est de 0, comme l’indique la colonne NI pour chacun d’entre eux.

 

1.3) Laquelle des commandes suivantes aurait pu être utilisée pour lancer la commande proc_c, conformément à la sortie ci-dessus ?

A nice +15 proc_c

B nice -15 proc_c

C nice 15 proc_c

D nice --value=15 proc_c

E Aucune de ces réponses

B
La bonne réponse est nice -15 proc_c. Cette commande fixe la valeur de la gentillesse à 15, ce qui est cohérent avec la sortie montrant une valeur de gentillesse de 15 pour les processus proc_c.

 

1.4) Laquelle des lignes de commande suivantes pourrait être utilisée pour modifier la valeur de l’une ou de toutes les commandes proc_a à 19 ?

A renice -c proc_a 19

B renice 19 5211

C renice -c proc_a -19

D renice -19 5211

E Aucune de ces réponses

B
La bonne réponse est renice 19 5211. Cette commande modifie la valeur de gentillesse du processus avec le PID 5211 (parmi les commandes proc_a) en 19. L’option a est incorrecte car -c n’est pas une option valide pour renice. Les options c et d sont incorrectes parce qu’elles utilisent une syntaxe incorrecte ou tentent de définir la valeur négative de la gentillesse, ce qui n’est pas conforme à l’exigence de la question.

 

1.5) Si vous deviez regarder la sortie de la même commande top dans quelques secondes, à quoi vous attendriez-vous pour la priorité des processus proc_b (en supposant que l’activité de la machine ne change pas beaucoup dans l’intervalle) ?

A 30

B 5

C 400

D Bien que vous ne puissiez pas le dire exactement, vous vous attendez à ce qu’il s’agisse d’un nombre entier proche de 30.

E Les informations fournies ne sont pas suffisantes

D
Étant donné la sortie que vous avez fournie, la priorité (PRI) des processus proc_b est actuellement de 30, et leur valeur de gentillesse est de 5. Étant donné que la valeur de gentillesse peut affecter la priorité, mais que vous n’avez mentionné aucune modification des processus ou de la charge du système, on peut s’attendre à ce que la priorité reste à peu près à cette valeur. La meilleure réponse est donc: « D. Bien que vous ne puissiez pas le dire exactement, vous vous attendez à ce qu’il s’agisse d’un nombre entier proche de 30. »

Cela tient compte des changements potentiels de la charge du système et de l’ordonnancement qui pourraient légèrement modifier la priorité.

 

1.6) Laquelle des commandes suivantes pourrait être utilisée par Alex pour abaisser à 10 le niveau de gentillesse de l’un de ses processus proc_c ?

A renice 10 5209

B renice -10 5209

C renice +10 5209

D Les utilisateurs normaux ne peuvent pas réduire la valeur « nice » des processus.

E Les informations fournies sont insuffisantes.

B
Pour diminuer le niveau du niceness d’un processus, vous devez utiliser une valeur négative avec la commande renice, car des valeurs de niceness plus faibles correspondent à une priorité plus élevée.

La bonne option est: B. renice -10 5209

Cette commande ramènerait à -10 la valeur de gentillesse du processus PID 5209, ce qui augmenterait sa priorité. Cependant, les utilisateurs normaux ne peuvent abaisser les valeurs de gentillesse qu’à un minimum de 0. Il convient donc de noter que s’ils peuvent augmenter la priorité, ils ne peuvent pas l’abaisser en dessous de la valeur par défaut. Étant donné que vous avez fourni le PID d’un processus proc_c (qui a probablement une priorité plus élevée que -10), cette option est valide en termes de syntaxe de commande.

 

1.7) Laquelle des commandes suivantes permet de définir la valeur de gentillesse d’un processus ?

A nice

B renice

C top

D Toutes ces commandes

E Aucune de ces réponses

B

La commande qui peut être utilisée pour définir la valeur de gentillesse d’un processus est: B. renice

  • nice est utilisé pour démarrer un nouveau processus avec une valeur de gentillesse spécifiée.
  • renice est utilisé pour modifier la valeur de gentillesse d’un processus déjà en cours d’exécution.
  • top vous permet de visualiser et d’interagir avec les processus, mais il ne définit pas directement les valeurs de gentillesse.

La meilleure réponse est donc B. renice.

 

1.8) Laquelle des commandes suivantes peut être utilisée pour définir (ce que ps et top appellent) la priorité d’un processus ?

A nice

B renice

C top

D Toutes ces commandes

E Aucune de ces réponses

D

La bonne réponse est D. Toutes ces commandes.

  • nice: Utilisée pour démarrer un nouveau processus avec une priorité (niceness) spécifiée.
  • renice: Utilisée pour changer la priorité (niceness) d’un processus déjà en cours d’exécution.
  • top: Permet de visualiser les processus en cours et d’interagir avec eux, y compris la modification de leur priorité via renice.

Donc, toutes ces commandes peuvent être liées à la gestion de la priorité d’un processus.

 

1.9) Quelle est la touche utilisée par top pour modifier la valeur de gentillesse(niceness) d’un processus ?

A n

B r

C c

D p

E Aucune de ces réponses

B
La touche utilisée par top pour modifier la valeur de gentillesse (niceness) d’un processus est r.

 

 

Exercice 2:

Référez-vous à la transcription suivante pour répondre à la question suivante.

[alex@station alex]$ renice 10 -u alex
515: old priority 0, new priority 10

[alex@station alex]$ ps l -u alex
F  UID  PID   PPID  PRI  NI  VSZ   RSS   WCHAN  STAT  TTY    TIME  COMMAND
4  515  9245  9242  25   10  4312  1376  wait4  SN    pts/4  0:00  -bash
0  515  9445  9245  31   10  3112  1160  -      RN    pts/4  0:00   ps l -u alex

2.1) Lequel des énoncés suivants explique le mieux pourquoi la commande ps a une valeur de gentillesse(niceness) de 10 ?

A La commande renice a défini la valeur de gentillesse de tous les processus appartenant à l’utilisateur alex à 10, y compris le processus ps.

B La commande renice a fixé à 10 la valeur de gentillesse par défaut de tous les processus lancés par alex.

C Lorsque l’interpréteur de commandes bash a forké pour exécuter la commande ps, le processus enfant a hérité de la valeur de gentillesse de son parent, qui était de 10.

D La commande renice a fixé à 10 le niveau de gentillesse par défaut de tous les processus de la machine.

E Aucune des réponses ci-dessus n’explique correctement pourquoi la commande ps a une valeur de gentillesse de 10.

C
La meilleure explication du fait que la commande ps a une valeur de gentillesse de 10 est:

C. Lorsque l’interpréteur de commandes bash a forké pour exécuter la commande ps, le processus enfant a hérité de la valeur de gentillesse de son parent, qui était de 10.

Lorsqu’un nouveau processus est créé (comme lors de l’exécution de la commande ps), il hérite de la valeur de gentillesse de son processus parent (dans ce cas, l’interpréteur de commandes bash), qui avait une valeur de gentillesse de 10 après l’exécution de la commande renice.

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *