Quand on commence à s'intéresser à l'informatique plus en profondeur, on entend souvent parler de processus et de services dans les systèmes d'exploitation. Cependant, ces deux concepts sont souvent confondus par beaucoup d'entre nous. Dans cet article, découvrez les concepts de processus et de services. Afin de mieux comprendre leurs différences et d'utiliser le bon vocabulaire quand vous parlerez de l'un deux.
C'est quoi un processus en informatique
Dans un système d'exploitation, un processus est un programme en cours d'exécution. Cela signifie qu'un programme ou un script est chargé dans la mémoire de votre ordinateur et que le système lui alloue les ressources nécessaires à son exécution. Cependant, il ne faut pas associer un logiciel ou une application à un seul processus. Un logiciel peut être composé de plusieurs processus, chacun ayant un rôle précis.
Les processus jouent un rôle important dans l'exécution d'un logiciel. Ils permettent notamment au système d'exploitation d'être multi-tâches. De plus, la création de processus au lancement d'un logiciel permet une utilisation sécurisé et concurrente des ressources. Cela signifie que le logiciel va être en capacité d'utiliser plusieurs threads du processeur afin de passer d'une tâche à l'autre plus rapidement. Par exemple dans le cas de votre navigateur avec lequel vous lisez actuellement cet article, vous avez sûrement plusieurs onglets d'ouvert. Et bien, il faut se dire que chaque onglet de votre navigateur est un processus. Le fait de séparer chaque onglet en processus nous permet donc de passer de l'un à l'autre très rapidement, car le processus va juste changer d'état en fonction de si l'on consulte l'onglet ou non. Si un onglet vient d'être fermé, le processus associé sera alors terminé.
Chaque processus sur notre système comprend différents composants, notamment un espace mémoire dédié qui permet de stocker le code et les données. Un processus peut disposer d'un ou plusieurs theards du processeur, ainsi que l'accès à des registres du processeur. Il dispose bien évidemment de ressources matérielles qui lui sont allouées pour fonctionner (disque, réseau, GPU, CPU, mémoire, etc...).
Chaque processus peut être indépendant ou alors être enfant d'un autre processus. On parle alors de processus fils. Pour le processus auquel il appartient, on parle alors du processus père. Les processus sont créés par le système d'exploitation qui à pour rôle de gérer tous les processus. J'ai d'ailleurs fait un articles sur les systèmes d'exploitations si vous voulez en savoir plus. Lors du lancement d'un programme, le système d'exploitation va créer un processus et lui allouer de la mémoire et des ressources. Il va par la suite l'ajouter à la planification CPU afin que le processeur traite le processus. Le processus va s'exécuter jusqu'à sa fin ou son interruption. Au cours de son exécution, ce dernier va sûrement changer d'état. Voici quelques états qu'un processus peut avoir :
- Initialisation : Première état d'un processus (création du processus).
- Prêt / en attente : Le processus est chargé en mémoire, il est en attente d'exécution. Le statut en attente peut-être aussi dans le cas où le processus est en attente de mémoire, de disque, de connexion, ou de processeur. Dans le cas d'un processeur mono coeur les processus passe un à un.
- Exécution : Le processus est en cours d'exécution par le processeur.
- Bloqué : Le processus est stoppé ou attend un événement pour continuer.
- Terminé : Le processus est terminé. Soit le processus a délivré le résultat. Soit il a été forcé à s'arrêter.
C'est quoi un service en informatique
Un service est un processus particulier qui tourne en arrière-plan sur votre système d'exploitation. Eh oui, un service est un processus, c'est pour cela qu'il ne faut pas les confondre. Les services sont souvent sans interaction avec l'utilisateur, leur rôle est de fournir une fonctionnalité en continu, très souvent du démarrage de notre machine jusqu'à son extinction. Par exemple sur Windows, le service Client DHCP a pour rôle de demander et de recevoir les informations du serveur DHCP puis de mettre à jour les informations réseau de la machine. Ce service démarre au lancement de Windows et reste actifs jusqu'à l'extinction de la machine.
Leurs différences
Afin de vous fournir une vu plus claire des différences entre processus et services, je vous propose un petit tableau compartif pour mieux saisir les différences.
Processus | Services | |
---|---|---|
Origine | Programme exécuté par l’utilisateur | Processus lancé par le système |
Visibilité | Visible dans l’interface graphique | Souvent invisible, en arrière-plan |
Interaction | Souvent interactif | Rarement interactif |
Objectif | Réaliser une tâche précise | Fournir une fonctionnalité au système |
Durée de vie | Liée à l’exécution de l’application | Peut être permanent (dès le boot) |
Exemple | Firefox, LibreOffice, Terminal | MySQL, SSH, Update Service |
Conclusion
Pour conclure, les processus et services sont deux choses différentes et il ne faut surtout pas les confondre. Certes un service est composé de processus, mais il n'a pas du tout le même rôle qu'un processus. Le processus est un programme en cours d'exécution et qui va changer d'état tout au long de sa durée de vie. Alors qu'un service est dans la majorité des cas un ou plusieurs processus qui vont être démarrés au démarrage de la machine ou suite à une action manuelle de l'utilisateur. Les services tournent dans la plupart des cas en arrière-plan, leur rôle est d'attendre qu'un événement se produise pour effectuer leurs tâches. Par exemple, un serveur Web va attendre de recevoir une requête HTTP pour la traiter et renvoyer le contenu demandé. J'espère que cet article vous aura permis de mieux comprendre la différence entre service et processus.