Système d`exploitation : les processus

publicité
Système d’exploitation : les processus
Frédéric Guinand
IUT du Havre
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Plan
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Plan
1
Généralités sur les processus
2
Lancer - Activer - Suspendre
3
Quelques commandes
Commande ps
4
Enchaînement et E/S des processus
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Programmes et processus
programme binaire : objet inerte
nécessite un support pour son exécution
→ processus
programme : le code binaire exécutable
données : espace d’adressage du processus
informations diverses qui définissent le contexte
d’exécution du processus : bloc de contrôle du processus
Toutes les activités sont exécutées dans le contexte d’un
processus
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Ordonnancement
système multi-tâches : comment gérer la ressource de
calcul ?
rôle de l’ordonnanceur.
quelle stratégie ?
tâches insécables : impossible
tâches interruptibles (E/S)
temps partagé (time slicing)
mais : processus système + processus utilisateur
⇒ importance différente ⇒ priorité
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Processus système
propriétaire : superutilisateur (superuser)
processus démons : daemons
rôle : services généraux pour les utilisateurs et les
systèmes distants :
1
2
3
init
cron
inetd
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
processus système
init
assure l’existence d’un processus pour chaque terminal de
commandes
il le fait en invoquant la commande getty
processus père de tous les processus shells créés par
l’utilisateur
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
processus système
cron
assure le lancement de commandes à des dates
spécifiques
service utilisateur : at
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
processus système
inetd
c’est l’oreille du système
écoute les ports d’entrée (/etc/services)
correspondance numéro de port ↔ service
arrivée d’une requête sur un port
→ création d’un processus qui exécute le service associé
inetd supervise tous les services réseau qui utilisent les
protocoles internet
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Quelques exemples de services
service ↔ port
ftp : 21 (transfert de fichiers)
ssh : 22 (shell sécurisé)
http : 80 (web)
https : 443 (web sécurisé)
pop3 : 110 (courriel)
imap : 443 (courriel)
irc : 194 (discussion)
quake : 26000 (jeu en réseau)
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Lancement d’un programme
Lors du lancement d’un programme (ligne de commande,
clic de souris...)
→ prise en charge du programme par un processus
deux possibilités :
prise en charge par un processus existant
création d’un nouveau processus
Toutes les activités sont exécutées dans le contexte d’un
processus
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Prise en charge par un processus existant
substitution d’activité pour le processus concerné
⇒ la précédente activité est suspendue
ouvrez un terminal de commande puis...
lancer la commande xcalc
que se passe-t-il dans votre fenêtre ?
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Suspendre une activité
suspendez la nouvelle activité : tapez Ctrl-Z dans le
terminal
que se passe-t-il dans votre fenêtre ?
que se passe-t-il dans la fenêtre de xcalc ?
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Réactiver une activité
réactivez l’activité de xcalc : tapez fg dans le terminal
que se passe-t-il dans votre fenêtre ?
que se passe-t-il dans la fenêtre de xcalc ?
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Créer une activité parallèle
suspendez de nouveau l’activité de xcalc
puis tapez bg dans le terminal
que se passe-t-il dans votre fenêtre ?
que se passe-t-il dans la fenêtre de xcalc ?
⇒ vous avez créé un nouveau processus qui sert de support
d’exécution pour la nouvelle activité
afin d’être sûr que les deux processus fonctionnent de
manière concurrente, tapez dans la fenêtre du terminal ls
-laR / puis effectuez des calculs dans xcalc.
le système UNIX est un système multi-tâches
il existe une autre manière de le faire, il suffit de lancer la
commande suivie du caractère &
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Récupérer la main sur l’activité
lancez xcalc &
puis tapez fg dans le terminal
que se passe-t-il dans votre fenêtre ?
que se passe-t-il dans la fenêtre de xcalc ?
tapez Ctrl-C dans le terminal
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Cycle de vie d’un processus
Actif (Running)
En attente (Sleeping)
Suspendu ou arrêté (Traced)
En sommeil ininterruptible (Dead)
Mort et inatteignable (Zombie)
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Commande ps
Commande ps
liste des processus enregistrés par le système
caractéristiques des processus
cette commande utilisée sans option et lancée depuis un
terminal de commande liste l’ensemble des processus
attachés à ce terminal
ouvrez deux terminaux et tapez ps dans chacun d’eux
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Commande ps
Caractéristiques simples
[guinand@taillefer guinand]$ ps
PID TTY
TIME CMD
6055 pts/11 00 :00 :00 bash
6091 pts/11 00 :00 :00 ps
PID : identifiant (un entier) du processus
TTY : identifiant du terminal auquel chaque processus est
rattaché
TIME : durée d’exécution
CMD : programme exécuté par le processus
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Commande ps
Plus d’infos
lancez la commande xcalc & depuis un terminal
tapez ps -l dans ce même terminal
de nombreuses caractéristiques apparaissent
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Commande ps
Plus d’infos
F
0
0
0
S
S
S
R
UID
500
500
500
PID
6055
6174
6183
PPID
6052
6055
6055
C
0
0
0
PRI
75
76
76
Frédéric Guinand
NI
0
0
0
ADDR
-
SZ
793
996
553
WCHAN
wait4
select
-
TTY
pts/11
pts/11
pts/11
Système d’exploitation : les processus
TIME
00 :00 :00
00 :00 :00
00 :00 :00
CMD
bash
xcalc
ps
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Commande ps
Quel champ pour quelle information ?
Quelle information correspond au champ PPID ?
Quelle information correspond au champ SZ (size) ?
Pour avoir une idée de l’information correspondant au
champ S (STAT), lancez deux fois xcalc &, puis tapez fg
suivi de Ctrl-Z. Examinez ensuite le champ.
completez vos informations à l’aide de la commande man
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Enchaînement
On peut exécuter plusieurs processus les uns à la suite
des autres, il suffit de les séparer par le symbole ;
cd scripts/ ; ls *.sh ; cd ..
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Redirection des sorties
Il est possible de rediriger les sorties d’un processus
→ la sortie standard à destination d’un nouveau fichier en
utilisant le symbole >
→ pour concaténer la sortie standard à un fichier existant :
utilisation du symbole >>
→ la sortie erreur à destination d’un nouveau fichier en
utilisant le symbole 2 >
→ pour concaténer la sortie erreur à un fichier fichier
existant : 2 >>
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Exemples
ls -laR > /̃tmp/liste-des-fichiers
ls -laR toto 2> /̃tmp/liste-erreurs
Frédéric Guinand
Système d’exploitation : les processus
Généralités
Lancement - Activation - Suspension
Commandes
Enchaînement et entrées/sorties
Pipe
permet de rediriger les sorties d’un processus vers les
entrées d’un autre processus : symbole |
exemple : ls | grep java
Frédéric Guinand
Système d’exploitation : les processus
Téléchargement