Gestion des processus

Gestion des processus

Nous avons, tout au long de cet ouvrage parlé des processus sans jamais vraiment les définir processus, puis les cinq modes d’exécution d’une commande sous Linux, ainsi que les commandes ps et kill qui permettent de gérer les processus. Enfin nous présentons le job control.Un processus est un programme en cours d’exécution. Les attributs d’un processus appartiennent à ce que l’on appelle son environnement : parmi eux le code, les données temporaires, les données permanentes, les fichiers associés, les variables. L’ environnement d’un processus contient aussi les entités que le système lui attribue : les descripteurs, la mémoire allouée, la pile d’exécution du noyau.Un processus sous Linux est identifié par un numéro unique qui s’appelle le numéro d’identification du processus PID (Process IDentifier) et qui lui est attribué par le système à sa création.On appelle temps partagé une exploitation dans laquelle plusieurs processus sont simultanément en cours d’exécution. Cette simultanéité n’est qu’apparente. Le noyau Linux va affecter à l’unité centrale le processus en cours dont la priorité est la plus importante. Lorsque ce processus est en attente ou si un processus de priorité plus importante apparaît, le noyau libère l’unité centrale du processus en cours et charge le nouveau processus de haute priorité. De surcroît, afin qu’un processus de haute priorité ne monopolise pas l’unité centrale, le noyau Linux va modifier dans le temps les priorités des processus en attente et en cours afin de permettre à l’ensemble des processus d’être exécuté.Le swapping consiste en la recopie sur disque d’un processus complet ou d’une partie d’un processus ayant perdu le contrôle de l’unité centrale et ne pouvant plus rester en mémoire centrale. La mémoire centrale ainsi libérée est affectée à un processus plus prioritaire. Il est aisé de comprendre que la performance d’un système dépend beaucoup de la qualité du swapping.

Classification des processus

Ces processus ne sont sous le contrôle d’aucun terminal et ont comme proprié- taire l’administrateur du système ou un uid d’administration. Ils assurent des tâches d’ordre général, parfois disponibles à tous les utilisateurs du système. Ils ne sont d’habitude stoppés qu’à l’arrêt du système d’exploitation. Les plus courants sont :En mode interactif, mode le plus fréquemment utilisé, la commande est lancée à partir d’un interpréteur de commandes. Pendant l’exécution de la commande, l’utili- sateur ne peut pas utiliser le terminal pour lancer une autre commande. Le contrôle n’est restitué à l’utilisateur qu’à la fin de l’exécution de la commande.Le lancement de commandes en arrière-plan (paragraphe 7.4) permet de rendre immédiatement le contrôle à l’utilisateur. Cette fonctionnalité est intéressante pour des tâches ne nécessitant pas d’interaction entre l’utilisateur et la tâche, comme par exemple la compilation d’un programme.

Lire sur cLicours.com :  Fonctions avancées d'un traitement de texte

Si l’utilisateur est en Bash et qu’il quitte le shell, la commande en arrière-plan est interrompue automatiquement. Pour éviter ce problème, il faut lancer la commande sous le contrôle de la commande nohup ou utiliser la commande interne disowé pour déterminer si l’accès à la commande at doit être interdite à l’utilisateur. Si at.deny est vide, l’utilisation de at est permise pour tous les utilisateurs. Si aucun fichier n’existe, seul l’administrateur (root) a la permission d’utilisation de at.Par défaut at lance l’interpréteur de commandes sh. De plus le processus ainsi créé ne sera associé à aucun terminal ; les sorties sont soit redirigées soit envoyées à l’utilisateur par mail. Il est possible de gérer à l’aide de atq (ou at l) (liste des processus en cours avec indication du numéro d’identification) et de atrm (ou at d numero at) (suppression d’un processus) les processus lancés par un utilisateur.Le batch permet de placer une commande dans une file d’attente. Le système exécu- tera toujours la commande placée en tête dans la file d’attente. Ainsi toutes les commandes lancées par batch seront exécutées séquentiellement quel que soit l’utilisateur qui a mis la commande dans la file d’attente. La gestion des sorties stan- dard est similaire à celle de la commande at. Ce mode est le plus altruiste sur un système Linux très chargé.

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.