Exercice Corrigé Gestion Des Processus Linux – Partie 1

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: Question générale sur la gestion des processus Linux

1.1) Qu’est-ce qu’un processus et comment est-il identifié dans un système Linux ?

Un processus est une instance d’un programme en cours d’exécution dans un système Linux. Il est identifié par un PID (Process ID) unique. Identification:

  • PID: Numéro unique attribué à chaque processus.
  • PPID: PID du processus parent.
  • Nom: Nom du programme.

1.2) Quel est le rôle de la mémoire virtuelle dans la gestion des processus sous Linux ?

La mémoire virtuelle sous Linux permet d’isoler et de gérer la mémoire utilisée par chaque processus. Chaque processus fonctionne dans son propre espace d’adressage, empêchant les interférences entre processus. Elle utilise des techniques comme la pagination pour allouer et libérer de la mémoire de manière dynamique. Elle permet d’exécuter des processus plus grands que la mémoire physique disponible en utilisant le disque dur comme extension (swap).

1.3) Quels types d’informations d’identification un processus possède-t-il dans Linux ? Expliquez le rôle de l’UID et des GIDs.

Dans Linux, un processus possède plusieurs types d’informations d’identification:

  • UID (User ID): Identifie l’utilisateur qui a créé le processus. Il détermine les permissions d’accès aux fichiers et aux ressources système. Par défaut, un processus hérite de l’UID de l’utilisateur qui l’a lancé.
  • GIDs (Group IDs): Identifient les groupes auxquels appartient l’utilisateur. Chaque processus a un GID principal, ainsi que des GIDs supplémentaires pour les groupes secondaires. Ces identifications sont utilisées pour gérer les permissions d’accès aux ressources partagées.

Rôle:

  • UID: Contrôle les droits d’accès et les opérations qu’un processus peut effectuer (lecture, écriture, exécution).
  • GIDs: Permettent une gestion des permissions pour des groupes d’utilisateurs, facilitant la collaboration et l’accès partagé aux fichiers et ressources.

1.4) Quelles sont les composantes du contexte de système de fichiers d’un processus ? Décrivez l’importance de chacune.

Les composantes du contexte de système de fichiers d’un processus sous Linux sont:

  • Répertoire de travail actuel (CWD): Indique où le processus opère par défaut; affecte l’accès aux fichiers relatifs.
  • Répertoire racine (root): Définit le point de départ du système de fichiers pour le processus; utile pour les environnements isolés.
  • Fichiers ouverts: Liste des fichiers ouverts par le processus; essentielle pour la gestion des I/O.
  • Permissions d’accès: Détermine les droits d’accès aux fichiers, basés sur l’UID et les GIDs; assure la sécurité des données.

1.5) Que comprend le contexte d’ordonnancement d’un processus et pourquoi la valeur de gentillesse (niceness) est-elle importante ?

Le contexte d’ordonnancement d’un processus comprend:

  • État: En cours d’exécution, en attente, ou stoppé.
  • Priorité: Importance du processus par rapport aux autres.
  • Valeur de gentillesse (niceness): Indique la propension du processus à céder du temps CPU, variant de -20 à 19.

La valeur de gentillesse (niceness) est un paramètre dans les systèmes Unix et Linux qui détermine la priorité d’un processus dans l’ordonnancement du CPU. Elle influence combien un processus est « gentil » en matière d’utilisation des ressources CPU. Elle aide ainsi à équilibrer la charge et à optimiser les performances.

1.6) Qu’est-ce que les variables d’environnement dans un processus, et pourquoi sont-elles utiles ?

Les variables d’environnement servent à transmettre des informations et des paramètres de configuration entre le système d’exploitation et les processus. Elles permettent aux programmes d’accéder à des données essentielles, comme les chemins de fichiers, les paramètres régionaux et d’autres configurations, facilitant ainsi la personnalisation et la gestion des comportements des applications.

1.7) Laquelle des commandes suivantes peut être utilisée pour visualiser les processus en cours d’exécution sur une machine Linux ?

A ps

B top

C gnome-system-monitor

D Tout ce qui précède

D
Toutes les commandes mentionnées (ps, top, et gnome-system-monitor) peuvent être utilisées pour visualiser les processus en cours d’exécution sur une machine Linux.

 

1.8) Laquelle des lignes de commande suivantes permet d’obtenir la liste de tous les processus de l’utilisateur alex ?

A ps -a alex

B ps -k alex

C ps -U alex

D ps -l alex

E Aucune de ces réponses

C
La commande correcte pour obtenir la liste de tous les processus de l’utilisateur alex est C. ps -U alex. Cette commande affiche les processus en cours d’exécution pour un utilisateur spécifique.

 

1.9) Lors de l’exécution de la commande top, quelle touche est utilisée pour trier les processus en fonction de l’activité du processeur ?

A C

B A

C P

D U

E Aucune de ces réponses

C
La touche utilisée pour trier les processus en fonction de l’activité du processeur lors de l’exécution de la commande top est P.

 

1.10) Lors de l’exécution de la commande top, quelle touche est utilisée pour trier les processus en fonction de la taille de la mémoire ?

A M

B S

C V

D T

E Aucune de ces réponses

A
La touche utilisée pour trier les processus en fonction de la taille de la mémoire lors de l’exécution de la commande top est M.

 

1.11) Laquelle des lignes de commande suivantes permet d’afficher une liste de tous les processus présents sur la machine ?

A ps -e

B ps ax

C ps aux

D ps -A

E Toutes ces réponses

E
Chacune de ces commandes a un format légèrement différent, mais elles affichent toutes les processus en cours.

 

1.12) Lequel des commandes suivants permet d’obtenir la liste de toutes les instances de la commande httpd ?

A ps –cmd httpd

B ps p httpd

C ps -C httpd

D ps -l httpd

E Aucune de ces réponses

C
La commande correcte pour obtenir la liste de toutes les instances de la commande httpd est C. ps -C httpd. Cette commande permet d’afficher tous les processus correspondant au nom spécifié.

 

1.13) Si un processus attend une entrée au clavier avant de continuer, dans quel état se trouve-t-il ?

A blocage

B attente

C exécutable

D arrêté

E zombie

A, B
Lorsqu’un processus attend une entrée au clavier avant de continuer, il se trouve dans un état de « blocage » ou « d’attente ». Cela signifie qu’il ne peut pas avancer tant que l’entrée requise n’est pas fournie, ce qui suspend son exécution jusqu’à ce que l’utilisateur interagisse avec le programme.

 

1.14) Le serveur web Apache utilise plusieurs processus httpd afin de pouvoir répondre à plusieurs requêtes simultanées. Si des centaines de personnes demandaient simultanément des informations stockées dans le même fichier, dans quel état se trouveraient la plupart des processus httpd ?

A blocage

B attente

C exécutable

D arrêté

E zombie

B
Dans le cas où plusieurs personnes demandent simultanément des informations stockées dans le même fichier, la plupart des processus httpd du serveur web Apache seraient probablement dans un état d’attente. Plus précisément:

  • Si les requêtes sont en cours de traitement, certains processus pourraient être en état exécutable, en traitant les requêtes.
  • Si d’autres processus sont en attente d’accès au fichier (en raison de verrous, par exemple), ils se trouveraient dans un état de blocage ou d’attente.

Apache gère généralement ces situations en utilisant des mécanismes de mise en cache et des pools de processus, ce qui permet de réduire les temps d’attente et d’améliorer les performances pour des accès concurrents.

 

1.15) Une simulation physique effectue des calculs numériques intensifs. Dans quel état se trouverait probablement le processus ?

A blocage

B attente

C exécutable

D arrêté

E zombie

C
Dans le cas d’une simulation physique effectuant des calculs numériques intensifs, le processus serait probablement dans un état d’exécution. Cela signifie qu’il est actif et utilise le processeur pour effectuer les calculs nécessaires à la simulation.

Selon la gestion des ressources du système, il pourrait également être en état d’attente si des ressources spécifiques (comme de la mémoire ou des données) ne sont pas disponibles à un moment donné. Mais en général, pour des calculs intensifs, on s’attend à ce que le processus soit principalement en cours d’exécution.

 

1.16) Vous avez suspendu l’éditeur vi avec la touche CTRL+Z. Dans quel état se trouve le processus ?

A blocage

B attente

C exécutable

D arrêté

E zombie

D
Lorsque vous suspendez l’éditeur vi avec la touche CTRL+Z, le processus se trouve dans l’état D. arrêté. Cela signifie que le processus est temporairement arrêté, mais pas terminé, et il peut être repris plus tard en utilisant la commande fg pour le ramener au premier plan ou bg pour le mettre en arrière-plan.

 

1.17) Vous exécutez une application complexe, qui utilise de nombreux sous-processus pour effectuer ses différentes tâches. De temps en temps, certains de ces sous-processus semblent être terminés (ils ne prennent plus de mémoire ni de temps d’unité centrale), mais ils apparaissent toujours dans la liste des processus. Dans quel état se trouvent ces sous-processus ?

A blocage

B attente

C exécutable

D arrêté

E zombie

E
Dans ce cas, les sous-processus qui semblent être terminés mais apparaissent toujours dans la liste des processus se trouvent dans l’état E. zombie.

Un processus zombie est un processus qui a terminé son exécution, mais dont l’entrée est toujours présente dans la table des processus, car son processus parent n’a pas encore récupéré son statut. Ils ne consomment pas de ressources, mais leur présence dans la liste des processus indique qu’ils attendent d’être collectés par leur parent.

 

1.18) En observant une liste de processus, votre ami s’inquiète de l’apparition de quelques processus zombies. Quel conseil lui donneriez-vous ?

A Votre ami devrait redémarrer la machine quand cela lui convient, car les processus zombies vont lentement commencer à consommer de plus en plus de ressources.

B Votre ami ne doit pas s’inquiéter trop vite. Ils ne consomment pas de ressources et disparaîtront lorsque leur processus parent sera mort.

C Votre ami devrait redémarrer la machine immédiatement, avant que les processus zombies ne commencent à infecter d’autres processus, les transformant eux aussi en zombies. Quel cauchemar horrible ce serait.

D Votre ami devrait se déconnecter et se reconnecter pour se débarrasser des zombies.

E Aucune des suggestions ci-dessus ne s’applique.

B
Le meilleur conseil à donner à votre ami est B. il ne doit pas s’inquiéter trop vite. Ils ne consomment pas de ressources et disparaîtront lorsque leur processus parent sera mort.

Les processus zombies ne consomment pas de ressources, et ils seront automatiquement supprimés lorsque leur processus parent les « recolle » en utilisant la fonction wait(). Il n’est pas nécessaire de redémarrer la machine pour gérer des processus zombies.

 

1.19) Comment Linux (et Unix) appelle-t-il la création d’un nouveau processus ?

A spawning

B forking

C launching

D executing

E Aucune de ces réponses

B
La création d’un nouveau processus sous Linux (et Unix) est appelée b. forking. Le terme « forking » fait référence à l’utilisation de la fonction fork(), qui permet à un processus de créer une copie de lui-même, formant ainsi un nouveau processus.

 

1.20) Quelle lettre utilise ps et top pour représenter l’état de sommeil (sleep)?

A I

B T

C D

D Z

E Aucune de ces réponses

E
L’état de sommeil (sleep) est représenté par la lettre S dans les commandes ps et top.

La colonne STAT de la sortie de la commande ps indique l’état actuel du processus. Les deux entrées les plus courantes de la colonne STAT sont S pour sleeping (sommeil) et R pour running (exécution). Un processus en sommeil est un processus qui n’est pas actif actuellement. Un processus en cours d’exécution est un processus qui s’exécute actuellement sur le processeur.
 

 

1.21) Quelle est la lettre utilisée par ps et top pour représenter l’état d’arrêt (suspendu) ?

A I

B T

C D

D Z

E Aucune de ces réponses

B
L’état d’arrêt (suspendu) est représenté par la lettre T dans les commandes ps et top. Donc, la réponse correcte est B.

 

 

Laisser un commentaire

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