Un processus est l'instance d'un programme en cours d'exécution (en mémoire).
Les instances de processus
Une instance de programme est un espace mémoire composée d'une partie ou de la totalité de l'exécutable chargé en mémoire, de l'espace mémoire et des ressources allouées par le système à la demande du processus ainsi que de toutes les librairies (dll) chargées.
Il peut exister plusieurs instances d'un même programme simultanément en cours d'exécution sur un ordinateur. L'espace mémoire d'un processus est protégé; c'est-à-dire que c'est le seul espace auquel il peut accéder, les autres processus ne pouvant y accéder (sauf en cas de débogage dans le cadre du développement).
La gestion du temps d'exécution
Les systèmes d'exploitations permettent une exécution quasi-simultanée en allouant un court temps d'exécution à chaque thread de chaque processus à tour de rôle, selon leur priorité. Cela donne l'impression que chaque programme s'exécute en même temps.
L'arrivée des processeurs multi-coeur pour le grand public permet une réelle exécution simultanée en offrant la possibilité d'assigner à chaque processus voir à chaque thread des processus un contexte d'exécution sur un coeur donné.
Les niveaux de priorité
Le niveau associé au processus correspond à celui que prendront par défaut les threads créés par le processus. Il n'est pas possible d'"obliger" un processus à s'exécuter dans un niveau donné car chaque processus et chaque threads peuvent changer eux-mêmes leur priorité. Sous Windows, il existe six niveaux de priorité associé au thread du processus et au processus lui-même :
Inactif:
L'exécution ne se fait que lorsque le système est en mode inactif, lorsque tous les threads dont le niveau est plus élevé que Inactif ne sont pas en état d'exécution.
En dessous de la normal:
Un niveau intermédiaire entre Inactif et normal qui aura tendance à s'exécuter moins souvent et/ou à avoir un temps d'exécution moindre que les thread avec une priorité normal.
Normal:
Un niveau spécifiant que les threads n'ont pas de besoin particulier. Ce niveau convient pour les applications utilisateurs les plus courantes.
En dessus de la normal:
Un niveau intermédiaire entre normal et haute priorité qui aura tendance à s'exécuter plus souvent et/ou à avoir un temps d'exécution plus important que les thread avec une priorité normal.
Haute priorité:
Ce niveau convient pour les thread exécutant une tâche critique qui nécessite une exécution immédiate. Il est important de ne pas attribuer ce niveau à un processus qui n'effectue pas de tâche critiques afin de ne pas empêcher inutilement une exécution système importante.
Temps réel:
Le niveau le plus élevé dans le système. Les threads du processus seront prioritaires sur tous les threads de priorité moins élevée, y compris les processus système. Ce niveau ne doit être attribué qu'à des tâches extrêmement courtes et espacées dans le temps. Utiliser ce mode peut totalement bloquer le système et même fausser l'exécution du processus en empêchant la mise à jour des caches système tel que le cache d'écriture des disques durs.
Les niveaux de priorité
Sous Windows, il est possible de distinguer deux types différents de processus:
Les processus système
Les processus utilisateurs
Et deux sous type de processus applicables à chaque type de processus:
Les processus normaux
Les services
Plus d'infos:
|