Académique Documents
Professionnel Documents
Culture Documents
Nous avons plusieurs fois dans ce qui prcde fait usage du terme processus sans vraiment le
dfinir. Dans ce chapitre, nous nous proposons de prciser cette notion et d'tudier (d'un point de
vue externe, pour le moment) un certain nombre de principes qui la rgissent et les commandes
principales correspondantes.
les processus systme qui ne sont attachs aucun terminal, qui sont crs au lancement
du systme ou des dates fixes par l'administrateur du systme; les premiers ne sont
interrompus qu' l'arrt du systme (citons le swapper, un certain nombre de processus
dits dmons comme, par exemple, le processus assurant le bon usage de l'imprimante en
spoule ou le processus cron, qui permet de lancer des tches une date donne) ;
les processus lancs par un utilisateur particulier, depuis un terminal donn ou une date
donne. En particulier, le fait de se loguer sur un terminal, sous une identification donne,
provoque le lancement d'un processus correspondant l'excution d'un programme
dtermin l'avance pour chaque utilisateur (une rfrence du fichier contenant le
programme excuter est donne dans le fichier systme /etc/passwd). Il s'agit presque
toujours d'un processus correspondant l'excution d'un interprteur de langage de
commandes commme par exemple le Bash.
Le lancement d'un processus suppose par consquent le chargement en mmoire centrale ( partir
du disque) du programme correspondant en vue de son excution. La majorit des programmes
Linux sont rentrants, c'est--dire que si plusieurs utilisateurs demandent l'excution d'un mme
programme, une seule copie du programme est place en mmoire centrale, le systme assurant
pour chacun des processus correspondants la gestion d'une zone de donnes propre chacun et
le bon droulement de chacun des processus (sauvegarde de registres en particulier). L'diteur de
liens de LINUX (commande ld) fournit ou non (selon les options) des modules excutables
rentrants (zone instructions protge en criture).
Un processus possde un certain nombre de caractristiques:
un terminal d'attachement ;
Il est possible d'avoir de plus amples informations sur les processus en utilisant des options. Par
exemple:
STAT: code d'tat du processus. Les diffrents tats sont S - repos, R - excution (sur file
d'attente), Z - zombie, N - tche de faible priorit ;
START: lorsque le processus a t lanc, ceci indique en heures et minutes depuis quand le
programme a t lanc, ou indique depuis combien de jours le processus est lanc si
ilfonctionne depuis plus d'une journe ;
C. Interrompre un processus
Les processus peuvent tre, en gnral, interrompus par l'envoi d'un signal depuis le terminal.
L'mission de ce signal est provoque par la frappe de caractres particuliers que nous dsignerons
par CTRL + C. Ce signal pour effet d'interrompre tous les processus attachs au terminal depuis
lequel il est mis, sauf demande expresse formule par le processus comme nous le verrons.
Un certain nombre de processus n'acceptent pas les interruptions par ces signaux. C'est le cas, par
exemple, des processus associs au Shell, dont on ne peut sortir depuis le terminal que par CTRL
+ D (indiquant par l la fin des donnes interprter). Nous verrons plus loin comment forcer
l'interruption de processus de ce type et, par ailleurs, comment crer soi-mme des tches ayant
ces proprits.
l'autorisation d'criture ou de lecture (suivant le cas) sur ledit fichier. La redirection de la sortie
standard d'une commande dans un fichier rpond la syntaxe commande > rfrence. Si le
fichier existe, il est pralablement supprim.
Il est galement possible d'ajouter des rsultats d'un processus la fin d'un fichier (donc sans
effacement de son contenu antrieur) par des commandes de la forme commande >>
rfrence comme l'illustre l'exemple suivant:
On constate que la redirection de la sortie standard est sans aucun effet sur le droulement du
processus. De fait, lors de l'apparition d'une erreur, le message d'erreur n'est pas envoy sur cette
sortie, mais un autre fichier standard appel sortie d'erreur standard galement associe de
manire standard au terminal. Il est possible de rediriger cette sortie peu prs de la mme
manire que la commande prcdente commande 2 > rfrence ou commande 2 >>
rfrence.
On peut, de mme, rediriger l'entre standard d'un processus o sont lues les donnes. Cette
redirection rpond la syntaxe commande < rfrence.
Les enchanements de commandes que nous venons de voir ont deux caractristiques essentielles:
Ils sont squentiels, c'est--dire qu'une commande n'est lance (et le processus associ
cr) que lorsque la prcdente est termine; il n'y a aucun paralllisme dans l'excution.
Eventuellement, comme c'est le cas des diffrents Shell, un processus en lance un autre et
est suspendu jusqu' la fin du processus qu'il a lanc.
Sur ce dernier exemple vous avez pu voir l'existence effective des deux processus (le
processus ps aux et le processus grep pts/0).
Le systme rpond en indiquant le numro du processus cr. Il faut savoir qu'un tel processus a
les mmes sortie standard et sortie erreur standard que le processus qui le cre: ainsi en mode
standard, les rsultats ventuels sont affichs sur l'cran. Il est possible (et fort agrable) d'utiliser
les redirections pour ces processus. Par ailleurs les processus ainsi dtachs ne sont plus sous le
contrle direct de la console, en ce sens qu'ils ne peuvent plus lire de donnes au clavier du
terminal. Leur entre standard doit tre redirige, faute de quoi elle sera redirige par dfaut sur le
fichier spcial de rfrence absolue /dev/null qui est, en quelque sorte, un puits sans fond o les
utilisateurs peuvent envoyer tout ce dont ils ne veulent pas. Ces processus ne peuvent, par
ailleurs, plus tre interrompus par le signal correspondant CTRL + C dont nous avons parl un
peu avant.