Chapitre 6: Processus Flashcards
Processus (rappel)
- Processus = un programme en cours d’exécution
- ps, top, etc. pour les voir
Threads ⋆
Synonymes
- Thread
- Fil d’exécution
- Processus léger
Thread et processus
- Un même processus peut avoir plusieurs threads
- Les threads d’un processus ne sont pas isolés
- Mais chaque thread utilise du CPU selon ses besoins
Utilisation: tâches asynchrones, parallélisme
Langages de haut niveau
- Java, C#, Python, etc. ont des threads
- Ne correspondent pas nécessairement aux threads système
Voir les threads
pstree
* Affiche les threads par défaut.
* -T cacher les threads
ps
* -L afficher les threads (extra)
* J afficher les threads (BSD)
top
* H bascule thread/processus
Arrière-plan
- « & » passe les commandes en arrière-plan
- & termine et/ou sépare les commandes
- Le shell affiche le numéro de job (entre crochets)
- Et le PID du processus en arrière-plan
- L’invite de commande est à nouveau disponible
$ gnome -calculator & xlogo &
[1] 15661
[2] 15666
$ ps
PID TTY TIME CMD
6356 pts/0 00:00:00 bash
15661 pts/0 00:00:00 gnome -calculato
15666 pts/0 00:00:00 xlogo
15669 pts/0 00:00:00 ps
Commandes en arrière-plan
Conduites
Des commandes complexes peuvent passer en arrière-plan
$ cat /dev/urandom | tr -cd ‘ATGC ‘ |
> head -c 10M > adn.txt &
Attention
Aux commandes en arrière-plan qui font des affichages
* L’écran contiendra les sorties mélangés
* L’invite du shell peut être noyée
$ cat /dev/urandom | tr -cd ‘atgc\n’ &
Ctrl-C ne fonctionne que sur les tâches en avant-plan
* (et pas toujours en fait)
Contrôle des tâches
Le shell offre une gestion des tâches
- Les tâches (jobs) sont un concept du shell
- Une tâche est un groupe de processus
- Chaque commande simple ou conduite est une tâche
Commandes internes du shell
- jobs liste les tâches
- fg passe une tâche en premier-plan
- bg passe une tâche en arrière-plan
Suspension
- ^Z ( ctrl + Z ) suspend la tâche en premier plan
- Une tâche suspendue ne travaille plus
- On la relance avec fg ou bg
Contrôle des tâches: exemple
$ xeyes -fg blue & xeyes -fg red
[1] 9399
^Z
[2]+ Stoppé xeyes -fg red
$ jobs
[1]- En cours d’exécution xeyes -fg blue &
[2]+ Stoppé xeyes -fg red
$ bg 2
[2]+ xeyes -fg red &
$ # Je ferme le bleu
[1]- Fini xeyes -fg blue
$ jobs
[2]+ En cours d’exécution xeyes -fg red &
$ fg 2
xeyes -fg red
^C
Ressources
* Plusieurs utilisateurs
* Plusieurs processus
* Un seul ordinateur
→ Partage des ressources
→ Contrôle de l’utilisation
Ressources ?
- Mémoire
- CPU (unité centrale)
- Entrées-sorties disque
- Entrées-sorties réseau
- Etc.
Partage et contrôle de ressources
Le système
Par défaut, le système essaye d’allouer les ressources
- De façon efficace
- De façon équitable
L’utilisateur et l’administrateur
* Voient l’état des ressources et leur consommation
* Configurent certaines utilisations de ressources (priorités, limites)
État du système
free —
mémoire libre et utilisée du système (extra)
$ free -h
total used free shared buff/cache available
Mem: 15Gi 4,1Gi 7,8Gi 542Mi 3,1Gi 10Gi
Swap: 4Gi 0B 4,0Gi