COURS
II : Ingénierie logicielle
Processus et tâche
- Définition générique du processus (process)
- L'instance d'un programme en exécution
- Une entité pour allouer des ressources (processeur, mémoire)
- Ayant une existence bien définie
- Prénatal : Compilation, édition de liens, chargement, démarrage
- Création : Allocation de ressources, inscription dans table de 'scheduling'
- Exécution : Actif ('running' ou 'preempted'), inactif (waiting,
sleeping)
- En attente d'un événement extérieur (waiting)
- Suspendu pour cause de non utilisation (sleeping. p. ex. daemon)
- Modifie ressources, communique avec-, crée ou tue autres processus
- Terminaison et postmortem
- S'éteint soi-même (exit) ou tué (kill) en cas de problèmes
- Libération des ressources, analyse de son contexte, facturation
- Exception : 'Running for ever' comme p. ex. sur un serveur
- Distinction entre processus, tâche (task)
et tâche atomique ( thread)
- Dépend du système (voir MACH)
- Le processus a souvent une allocation d'un contexte privé
pour chaque instance (heavyweight process)
- Un processus ou une partie réentrante peut s'exécuter par
plusieurs tâches
- La tâche est souvent réentrante (code identique exécutable
par plusieurs instances)
- N'a pas toujours une allocation d'un contexte privé pour chaque
instance (lightweight process)
- Exemples typiques : Accès disque, architecture client/serveur
- La tâche atomique (thread) est le plus petit composant d'une
tâche ou processus
- Le CPU exécute une tâche
atomique (non interrompue) en un "fil d'instructions" (thread of
control)
- Chaque programme a au moins un 'thread'