Gestion des Processus



Documents pareils
Cours Programmation Système

Partie 7 : Gestion de la mémoire

gestion des processus La gestion des processus

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Cours A7 : Temps Réel

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Chapitre 4 : Outils de communication centralisés entre processus

Le système GNU/Linux IUP NTIC /11/05

Systemes d'exploitation des ordinateurs

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

SYSTÈME DE GESTION DE FICHIERS

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Gestion des processus

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Retrospect 7.7 Addendum au Guide d'utilisation

PROGRAMMATION EVENEMENTIELLE sur EXCEL

GESTION DE LA MEMOIRE

Introduction aux Systèmes et aux Réseaux

VRM Monitor. Aide en ligne

CPLN 20/08/2009 MBO Service ICT et Pédagogie

Livre blanc Mesure des performances sous Windows Embedded Standard 7

Concept de machine virtuelle

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Conception de circuits numériques et architecture des ordinateurs

Métriques de performance pour les algorithmes et programmes parallèles

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Guide d'utilisation du Serveur USB

Les avantages de la virtualisation sont multiples. On peut citer:

Virtualisation de Windows dans Ubuntu Linux

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

Guide de configuration de SQL Server pour BusinessObjects Planning

Système et réseaux (SR1) Gestion des utilisateurs

Résolution des problèmes de connexion XDMCP aux hôtes UNIX et Linux

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Maarch V1.4

Installation d un serveur DHCP sous Gnu/Linux

Cloner un disque dur

Cours de Génie Logiciel

2011 Hakim Benameurlaine 1

GPA770 Microélectronique appliquée Exercices série A

progecad NLM Guide de l'utilisateur

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

Guide rapide d'installation SUSE Linux Enterprise Server 11 SP1

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

Guide de prise en main Symantec Protection Center 2.1

Configuration requise Across v6 (Date de mise à jour : 3 novembre 2014)

Guide d'installation. Release Management pour Visual Studio 2013

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

modélisation solide et dessin technique

VD Négoce. Description de l'installation, et procédures d'intervention

Samsung Magician v.4.3 Guide d'introduction et d'installation

LOGICIEL ALARM MONITORING

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Check-list de maintenance du système Instructions impératives pour l'utilisateur du système Dernière mise à jour 09 juin 2011

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Symantec Backup Exec Remote Media Agent for Linux Servers

FreeNAS Shere. Par THOREZ Nicolas

TP WINDOWS 2008 SERVER - OUTILS DE SAUVEGARDE ET DE RESTAURATION

Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Protocoles DHCP et DNS

Responsabilités du client

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

ipra*cool v 1.08 guide de l utilisateur ipra*cool v.1-08 Guide de l'utilisateur ipra*cool v

WINDOWS 2000 SERVEUR

Politique de résolution des litiges relatifs aux noms de domaine Point ML

Démontage d'un ordinateur

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

ORACLE TUNING PACK 11G

Formation Technicien Supérieur de Support en Informatique T2SI. Le module LINUX. Session J04 Version 01

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

QUELQUES CONSEILS POUR LA MAINTENANCE DE VOTRE ORDINATEUR

Virtual PC Virtual PC 2007 Page I

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Guide de l'utilisateur

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Guide de fonctions du téléphone du système SCI Norstar

Initiation à la programmation en Python

A. Sécuriser les informations sensibles contre la disparition

TeamViewer 9 Manuel Wake-on-LAN

Architecture des ordinateurs. Environnement Windows : sauvegarde

Annexe : La Programmation Informatique

Simple Database Monitoring - SDBM Guide de l'usager

Guide de déploiement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Les diagrammes de modélisation

l'ordinateur les bases

Fonctionnalités d Acronis :

Infrastructure - Capacity planning. Document FAQ. Infrastructure - Capacity planning. Page: 1 / 7 Dernière mise à jour: 16/04/14 16:09

Transcription:

Gestion des Processus 1. LA NOTION DE PROCESSUS EN INFORMATIQUE... 2 ETAT DU PROCESSEUR :...2 PROCESSUS...3 CARACTÉRISATION D'UN PROCESSUS : CONTENU DU BLOC DE CONTEXTE...3 FILE D'ATTENTE DE BLOCS DE CONTEXTE :...4 2. L'ÉTAT D'UN PROCESSUS... 5 3. LA GESTION DES TRAVAUX ET LA CRÉATION DES PROCESSUS... 7 LA GESTION DE TRAVAUX...7 CRÉATION D'UN PROCESSUS ET NOTION DE FILIATION...8 ARBORESCENCE DE PROCESSUS...8 4. LA GESTION DES PROCESSUS... 9 QUAND RÉAFFECTER LE PROCESSEUR?...9 QUEL PROCESSUS SÉLECTIONNER?...9 "ROUND ROBIN" OU "TOURNIQUET"...9 PROCESSEUR...9 PRIORITÉS STATIQUES...10 PRIORITÉS DYNAMIQUES...10 5. TECHNIQUES DE GESTION DE LA MÉMOIRE CENTRALE... 11 6. APPLICATION AUX PROCESSUS DU SYSTÈME D'EXPLOITATION UNIX... 12 ENVIRONNEMENT D'UN PROCESSUS...12 COMMANDE SU ET ENVIRONNEMENT...12 LES COMMANDES LINUX : PS, KPM, PSTREE, TOP, KTOP...13 Groupe - esaip 1 TSE 2 Processus.doc

1. La notion de processus en Informatique Un processeur est un dispositif capable d'interpréter une séquence d'înstructions et d'exécuter une séquence d'actions correspondantes, ce processeur peut être réalisé sous forme matérielle ou logicielle. Son état à un moment donné de l'exécution d'une séquence d'instructions est défini par le contenu d'un certain nombre de registres internes. Une description pseudo-pascal pourrait en être la suivante Etat du processeur : Type registre = integer ; Type etat_processeur = record regs : array [0..n] of registres; registres généraux sp : registre; pointeur de pile pc : registre; compteur ordinal psw : registre; mot d'état base,taille : registre; registres de protection mémoire end; Var etat_courant : etat_processeur ; ü ü ü Le compteur ordinal contient l'adresse de l'instruction en cours Le mot d'état contient la valeur de tous les indicateurs du processeur. Les registres de protection mémoire permettent au processeur de contrôler à tout moment que le processus actif n'accède pas à une zone de mémoire centrale qui ne lui appartient pas : le mécanisme supposé mis en place ici attribue à un processus une plage de mémoire contigüe définie par une adresse de base et une taille. Groupe - esaip 2 TSE 2 Processus.doc

Processus Un processus peut être assimilé à un programme en exécution. Cette exécution sera réalisée sur un processeur capable d'interpréter le code du programme et dans le cas qui nous intéresse, plusieurs processus s'exécuteront en parallèle chaque d'eux recevant tour à tour le contrôle du processeur. Un processus possède 2 propriétés importantes : ü les effets d'un processus sont indépendants de la vitesse àlaquelle il s'exécute ; ü un processus est reproductible ; appliqué aux mêmes données, il parcourra la même suite d'états et aboutira aux mêmes résultats. Il est par ailleurs courant que plusieurs processus déroulent le même programme : plusieurs utilisateurs par exemple utilisent le même éditeur de texte. Le code du programme est alors en général une zone de mémoire partagée, commune à ces différents processus. Par contre les données restent privées, propres à chacun des processus, de même que le bloc de contexte mémorisant la situation du processus par rapport au programme qu'il exécute. Mémoire privée du Processus P1 Donnée locales de P1 Contexte de P1 Mémoire partagée par les processus P1 et P2 Programme exécutable commun à P1 et P2 Mémoire privée du Processus P2 Données locales de P2 Contexte de P2 Caractérisation d'un processus : contenu du bloc de contexte Type evenement = (arrive, pas_arrive); Type bloc_de_contexte = record cm : etat_processeur; Contexte Matériel = état du processeur au moment où le processus a été arrêté... etat : (bloque, pret, etc...); Etat du Processus vis à vis de l'allocation du processeur end; processus_père : ^bloc-de-context; Pointeur sur le bloc de contexte du processus père ptindic : ^evenement; Pointeur sur le premier élément d'une liste chaînée de conditions de blocage... etc... : autres informations sur le processus Groupe - esaip 3 TSE 2 Processus.doc

File d'attente de blocs de contexte : Un seul processus est actif à un moment donné, tous les processus non actifs seront chaînés dans une file d'attente (il peut y en avoir plusieurs, selon l'état prêt ou bloqué des processus et en fonction des causes de blocage). Le schéma suivant représente une file d'attente de blocs de contexte, accessible à partir de 2 pointeurs. L'un appelé "QUEUE" pointe sur le dernier bloc de contexte de la file d'attente, l'autre appelé "TETE" pointe sur le premier bloc de contexte de cette file d'attente. Dans la file elle-même, chaque bloc de contexte pointe sur le suivant par l'intermédiaire d'un pointeur nommé "suivant". Type file_attente = record queue, tete : ^bloc-de-context; end; QUEUE TETE suivant suivant suivant cm cm cm etat etat etat processus_père processus_père processus_père ptindic ptindic ptindic... etc...... etc...... etc... Le mécanisme fondamental de la gestion des processus est le blocage et la réactivation d'un processus qui va conduire à : ü ü mémoriser dans la file d'attente l'état du processus jusqu'alors actif (blocage) réinitialiser les registres du processeur à partir des informations d'un bloc de contexte (réactivation) Ce mécanisme a reçu le nom d'échange de contexte (context switching) Groupe - esaip 4 TSE 2 Processus.doc

2. L'état d'un processus Un processus pour son exécution a besoin d'un certain nombre de ressources, il les obtient du système d'exploitation en appelant un sous-programme spécifique : le résultat est l'allocation de la ressource demandée, si elle est disponible ou le blocage du processus demandeur si la ressource n'est pas disponible. Le processeur est une ressource particulière en ce sens qu'il ne nécessite pas de requête explicite : il est requis implicitement par tous les processus. Parmi les différentes ressources nécessaires à l'exécution d'un processus, on peut distinguer : des ressources matérielles : processeur, mémoire centrale, certains périphériques... des ressources logicielles : les fichiers, les informations partagées entre processus.. L'état d'un processus décrit sa situation par rapport aux ressources qu'il demande, depuis sa prise en compte par le gestionnaire des travaux, et jusqu'à sa disparition, qui libère toutes les ressources qu'il utilisait. Les différents états d'un processus, et les transitions possibles, entre ces états peuvent être représentées de la manière suivante : Lorsqu'un processus est créé, il demeure dans l'état "en-attente" jusqu'à ce que toutes les opérations de création, en particulier le chargement du programme en mémoire, soient terminées (voir plus loin la paragraphe "création de processus et notion de filiation"). Lorsque le processus est prêt à être exécuté, il est inséré dans la file d'attente des processus prêts. Il commencera à s'exécuter lorsque l'ordonnanceur lui attribuera le processeur. Il passera alors dans l'état actif. Cependant le processeur n'est alloué au processus que pour un temps limité, appelé quantum de temps (ou time slice), dont l'ordre de grandeur peut être 10ms. Le processus pourra sortir de l'état actif sur l'une des 3 conditions suivantes : Le programme se termine, de manière normale, ou sur erreur : le processus sera alors détruit. Le programme lance une opération d'entrée-sortie, en faisant un appel système: le processus sera alors bloqué, c'est à dire retiré de la file d'attente des processus prêts, pour passer dans une file d'attente de processus bloqués. Plus tard, lorsque l'opération d'entrée-sortie sera terminée, le système remettra le processus dans la file d'attente des processus prêts, pour qu'il puisse continuer son exécution. Le programme est dans une phase de calculs, il ne réalise pas d'entrées-sorties et continue à utiliser la processeur : à l'expiration du quantum de temps, l'ordonnanceur sera réactivé grâce à une interruption matérielle liée à l'horloge de l'ordinateur; le processur sera alors retiré au processus actif, et alloué à un autre processus prêt, c'est la réquisition du processeur. Groupe - esaip 5 TSE 2 Processus.doc

Requête de création de processus Processus en attente ne disposant des ressources mémoires nécessaires à son exécution processus prêt Processus élu par l'ordonnanceur Processus arrêté sur réquisition du processeur à l' expiration du quantum de temps processus bloqué processus actif Processus terminé Groupe - esaip 6 TSE 2 Processus.doc

3. La gestion des travaux et la création des processus Un processus est créé en réponse à une requête d'un utilisateur. Au cours du traitement de cette requête, le processus correspondant passe par un certain nombre d'états que nous décrirons ci-après. Le traitement d'une requête nécessite l'exécution d'un programme, que nous supposons à l'origine sur une mémoire auxiliaire (disque) : il est donc nécessaire d'amener ce programme en mémoire centrale, et, ensuite de lui allouer le processeur. Deux modules du système d'exploitatîon prendront en charge ces fonctions la gestion des travaux est responsable des transferts des programmes entre mémoires auxiliaires et mémoire centrale la gestion des processus est chargée de l'allocation du processeur La gestion de travaux Le module système de gestion de travaux est responsable de la prise en compte des requêtes de création de processus. Sa fonction principale est 1) d'allouer un espace mémoire pour le processus, et d'y charger le programme correspondant à partir de la mémoire de masse (disque) 2) d'initialiser un bloc de contexte et de le placer dans la file d'attente des processus «prêts». L'activation de ce nouveau processus sera réalisée plus tard par le gestionnaire des processus. Pour assurer à l'utilisateur un délai raisonnable dans la prise en compte de sa requête, il peut être nécessaire de réquisitionner une zone de mémoire centrale déjà affectée à un processus «moins prioritaire» : ce processus devra plus tard, évidemment, être rechargé en mémoire centrale. Dans un contexte interactif, on préférera placer toutes les requêtes sur un pied d'égalité: chaque programme se voit alors affecter un quantum de résidence en mémoire au bout duquel il devient candidat à la réquisition : Celle-ci n'aura lieu que si elle est nécessaire. On pourra aussi considérer qu'il est préférable de soumettre à réquisition un processus bloqué (en attente d'une entrée/sortie en particulier) plutôt qu'un processus prêt. Notons cependant que si la réquisition du processeur ne nécessite qu'une sauvegarde du contexte matériel et se chiffre en centaines de microsecondes, le coût de la réquisition d'une zone de mémoire centrale est loin d'être négligeable en terme d'activîté système : il faut mettre en jeu des entrées/sorties physiques qui nécessiteront quelques centaines de millisecondes ; le rapport est donc de 1 à 1000 entre la réquisition du processeur et celle d'une zone de mémoire centrale. Ce problème d'allocation mémoire pour les nouvelles requêtes est largement tributaire des méthodes utilisées par ailleurs pour la gestion de la mémoire centrale : l'utilisation d'un Groupe - esaip 7 TSE 2 Processus.doc

dispositif de mémoire virtuelle paginée rend plus rare la nécessité de recourir à une réquisition totale (voir ci-après : techniques de gestion de la mémoire centrale) Création d'un processus et notion de filiation 1) acquérir dans l'espace mémoire du système un nouveau bloc de contexte : bloc_de_contexte * PBC ; {... PBC=malloc(sizeof(bloc_de_contexte)); } 2) à partir du nom du programme, localiser sur disque le fichier correspondant et y retrouver les informations : taille du programme et adresse de lancement. 3) trouver une zone de mémoire centrale pour charger le programme et commencer l'initialisation du contexte : PBC->CM.base = adresse_de_base_de_la_memoire_centrale_allouee ; PBC->CM.taille = taille_du_programme ; 4) chargement du programme en mémoire centrale 5) fin d'initialisation du bloc de contexte : PBC->CM.pc PBC->état = adresse_de_lancement; = pret; 6) incorporation du processus à la file d'attente PBC->suivant = NULL; File_processus.queue->suivant = PBC; File_processus.queue = PBC; 7) le processus créé ne sera effectivement activé que lors d'une prochaine réaffectation du processeur par l'ordonnanceur. Arborescence de processus La notion de filiation a un intérêt important au niveau du droit accordé àun processus de détruire un autre processus : ce droit ne lui sera en général reconnu que sur les processus de sa descendance. Groupe - esaip 8 TSE 2 Processus.doc

4. La gestion des processus Le mécanisme fondamental de la gestion des processus est le blocage et la réactivation d'un processus pour échange de contexte (context switching). Deux questions sont à prendre en compte : QUAND doit-on modifier l'affectation du processeur, et QUEL processus sélectionner dans la file d'attente des blocs de contexte? QUAND réaffecter le processeur? attendre que le processus actif abandonne de lui-même le processeur (sur une demande de ressource ou fin de programme) interrompre le processus actif au bout d'un temps fixé (quantum de temps épuisé et réquisition du processeur) QUEL processus sélectionner? "Round Robin" ou "Tourniquet" La gestion «Round-Robin» des processus prêts considère dééinit une file d'attente FIFO (first-in first-out): l 'ordonnanceur élit systématiquement le processus dont l'attente a été la plus longue. Cependant, ce processus ne recevra le processeur que pour un temps limité, à l'expiration de ce délai, il reviendra à la fin de la file d'attente, sauf s'il se termine ou se bloque. En fin de blocage, lorsque seront satisfaites les conditions de blocage, le processus reviendra à la fin de la file d'attente des processus prêts. C'est ce mécanisme que nous avons déjà commenté dans le paragraphe "L'état d'un processus". File d attente des processus prêts nouveau processus P1 P3 P10 P7 Elu Dispose du Processeur Quantum épuisé Terminé Bloqué en attente de fin d'entrée /sortie P15 P8 P14 P6 File d attente des processus bloqués Groupe - esaip 9 TSE 2 Processus.doc

Priorités statiques L'allocation d'une priorité statique à un programme ou à un utilisateur : le processus prêt n'est plus inséré à la fin de la file d'attente, mais à une place calculée en fonction des priorités relatives des processus qui y sont déjà. L'un des problèmes liés à l'allocation des priorités statiques est que l'on ne peut plus garantir simplement qu'un processus de basse priorité sera pris en compte dans un temps raisonnable : une solution pourra être d'incrémenter pérîodiquement les priorités. Priorités dynamiques On pourra allouer une priorité dynamique aux processus en fonction de leur comportement: le but est essentiellement ici de favoriser les processus interactifs au détriment de ceux qui nécessitent une forte activité de calcul. Une méthode peut consister à fîxer une priorité à un processus lors de sa première activation puis à diminuer cette priorité s'il épuise son quantum. Groupe - esaip 10 TSE 2 Processus.doc

5. Techniques de gestion de la mémoire centrale Pagination : cette technique permet d'implanter un programme dans des zones non contigües en mémoire centrale. Le programme fait référence à des adresses virtuelles qui sont converties en adresses physiques par l'intermédiaire d'une table des pages. adresses mémoire 0000 1023 1024 2047 2048 3071 3072 4095 4096 5119 Mémoire Table des pages adresses virtuelle Indice PP PV mémoire page V0 0 2 0000 1 4 1023 page V1 2 0 1024 2047 page V2 2048 3071 page V3 page V4 Mémoire physique PV2 PV4 PV0 PP0 PP1 PP2 Mémoire virtuelle paginée dans un contexte de pagination, cette technique permet de n'avoir en mémoire centrale que certaines pages du programmes, réputées utiles, à un moment donné. Les autres pages résident sur une mémoire auxiliaire, mémoire de pagination, en général sur disque : elles seront amenées en mémoire centrale lorsque le programme y fera référence. Ceci suppose que le processeur implémente les mémoires mécanismes nécessaires à la gestion des tables de page, et à la génération de déroulements (interruptions) pour défauts de page. Le traitement d'un défaut de page pourra nécessiter l'élimination d'une autre page de la mémoire centrale, (avec recopie de son contenu sur le disque, si cette page avait été modifiée) : ce mécanisme de remplacement des pages en mémoire centrale porte le nom de swapping (ou échange de pages). Les performances du système ne resteront acceptables que si les déroulements pour défaut de page sont relativement rares. Pour que cela soit le cas, il est nécessaire d'avoir des programmes dont le comportement reste conforme au principe de proximité des références mémoire, et d'autre part de leur avoir alloué un nombre de blocs suffisant au départ. Groupe - esaip 11 TSE 2 Processus.doc

6. Application aux processus du système d'exploitation UNIX L'exécution d'une commande par le shell donne lieu à la création d'un processus fils exécutant la commande spécifiée et à la mise en attente du shell, jusqu'à la fin d'exécution de cette commande L'exécution en arrière-plan, obtenue en faisant suivre la commande du caractère & permet de "garder la main" en évitant l'attente du shell. Dans ce cas le shell affiche le numéro du processus qui vient d'être lancé en arrière plan, de même qu'il affichera plus tard le numéro du pocessus d'arrrière plan qui se termine. Il est possible de lancer plusieurs processus en arrière plan puis de demander au shell d'attendre la fin d'exécution de tous les processus d'arrière-plan grâce à la commande wait. Normalement, lorsqu'un processus se termine, tous les processus fils qu'il a créé sont tués. Il est cependant possible de protéger les processus lancés en arrière plan de telle sorte qu'il continuent leur exécution après la mort du shell qui les a créés, grâce à la commande nohup. Ce processus "protégé" se trouvera ainsi "adopté" par le processus init, à la mort du shell qui l'a créé. Environnement d'un processus A chaque processus est associé un environnement qui est constitué en particulier d'une liste de variables, mais aussi la liste des fichiers ouverts etc... Pour définir une variable, par exemple la variable PS1: Cette variable définit le prompt de bash ( voir man bash) PS1='\u@\h \w >' Pour afficher la liste des variables définies, taper set. Cependant une variable ainsi définie ne sera pas transmise aux processus fils de ce shell. Il est nécessaire de demander explicitement cette option en tapant ensuite export PS1. Pour obtenir la liste des variables "exportées" vers les processus fils, taper env. On peut donc considérer que l'ensemble env est un osus-ensemble de l'esnsemble set. Si on lance l'exécution d'un fichier de commandes, script shell, les commandes de ce fichier sont exécutées par un processus shell, fils du shell courant. Cependant si les commandes modifient l'environnement du processus (création ou mdifications de variables par exmple), le processus shell à partir duquel on a lancé la commande ne voir pas son environnement modifié. Il est donc possible de demander l'exécution des commandes du fichier directement pas le shell courant en faisant précéder le nom de la commande par ". " (point suivi d'un espace) Commande su et environnement La commande su (shift user) permet de changer de nom d'utilisateur en acquérant les droits du nouvel utilisateur, à condition de connaître son mot de passe. su test02 permet de devenir l'utilisateur test02, sans changer d'environnement su test02 permet de devenir l'utilisateur test02, en changeant l'environnement courant Groupe - esaip 12 TSE 2 Processus.doc

pour celui de test02, au moment où il se connecte Les commandes Linux : ps, kpm, pstree, top, ktop voir l'aide en ligne de ps ou kpm ps ps lxf ps axlf affiche la liste des processus de l'utilisateur qui invoque cette commande permet de connaître plus de détails, dont le numéro du processus père... permet de connaître l'état de tous (a=all) les processus actuel de la machine Exemple 1... un seul processus shell bash demo+forum ~ > ps lf F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 100 500 5596 5593 8 0 1740 980 wait4 S pts/0 0:00 -bash 000 500 5802 5596 12 0 2700 1024 - R pts/0 0:00 ps lf Exemple 2... un seul processus shell bash + un autre shell appartenant aussi à demo + une commande sleep lancée en arrière plan et adoptée par init (processus N 1 ) demo+forum ~ > ps xlf F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 100 500 5596 5593 7 0 1740 980 wait4 S pts/0 0:00 -bash 000 500 5804 5596 10 0 2700 1028 - R pts/0 0:00 ps xlf 100 500 4195 4190 0 0 1740 980 read_c S pts/5 0:00 -bash 000 500 5582 1 0 0 1236 440 nanosl S? 0:00 sleep 3600 Exemple 3... une liste de commandes entre parenthèses crée un shell fils qui interprète le contenu entre parenthèses... cette liste de commandes est ici lancée en arrière plan demo+forum ~ > ( sleep 30 ; echo reveil ) & [1] 5821 demo+forum ~ > ps lf F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 100 500 5596 5593 8 0 1744 984 wait4 S pts/0 0:00 -bash 040 500 5821 5596 8 0 1740 980 wait4 S pts/0 0:00 -bash 000 500 5822 5821 8 0 1236 440 nanosl S pts/0 0:00 \_ sleep 30 000 500 5824 5596 11 0 2700 1028 - R pts/0 0:00 ps lf demo+forum ~ > reveil [1]+ Done ( sleep 30; echo reveil ) demo+forum ~ > ps lf F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 100 500 5596 5593 12 0 1744 984 wait4 S pts/0 0:00 -bash 000 500 5832 5596 18 0 2700 1024 - R pts/0 0:00 ps lf Groupe - esaip 13 TSE 2 Processus.doc

Résultat de la commande Linux ps lf Annexes UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 0 28525 28503 16 0 5520 2576 wait4 S pts/0 0:00 su - 4 0 28527 28525 15 0 2700 1632 schedu S+ pts/0 0:00 \_ -bash 4 0 9124 9122 15 0 2832 1704 wait4 Ss pts/3 0:00 -bash 4 0 9729 9124 16 0 2148 640 - R+ pts/3 0:00 \_ ps lf 4 0 9730 9124 15 0 2044 824 pipe_w S+ pts/3 0:00 \_ less 4 0 4885 4883 15 0 2856 1704 schedu Ss+ pts/2 0:00 bash Résultat de la commande ps u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 28525 0.0 0.2 5520 2576 pts/0 S Oct14 0:00 su - root 28527 0.0 0.1 2700 1632 pts/0 S+ Oct14 0:00 -bash root 4885 0.0 0.1 2856 1704 pts/2 Ss+ Oct17 0:00 bash root 9124 0.0 0.1 2832 1704 pts/3 Ss 09:26 0:00 -bash root 9739 0.0 0.0 2156 684 pts/3 R+ 12:51 0:00 ps u root 9740 0.0 0.0 2044 824 pts/3 S+ 12:51 0:00 less Résultat de la commande pstree -p init(1) cron(5175) cupsd(4752) events/0(3) aio/0(10) kacpid(4) kblockd/0(5) kcopyd(1040) khelper(6) pdflush(15864) pdflush(15878) reiserfs/0(583) httpd2 prefork(5133) httpd2 prefork(5177) httpd2 prefork(5179) httpd2 prefork(5181) httpd2 prefork(5182) hwscand(2548) katad 1(203) kdeinit(4813) artsd(4841) kdeinit(4861) kdeinit(4862) kdeinit(4863) kdeinit(4879) xterm(4883) bash(4885) Groupe - esaip 14 TSE 2 Processus.doc