Gestion des processus par un système d’exploitation

Gestion des processus par un système d’exploitation

Le système d’exploitation (Linux, Windows, MacOS…) est un programme spécial qui se situe entre le matériel et les applications. Son rôle est de coordonner toutes les tâches exécutées par l’ordinateur. Cette année, nous allons découvrir comment le système d’exploitation charge les programmes dans la mémoire et les exécute en créant des processus pour les gérer pendant leur exécution.

Différence entre programme et processus

Un même programme peut être exécuté plusieurs fois sur une même machine, mais il est nécessaire d’allouer des ressources distinctes à chaque exécution. C’est le système d’exploitation qui gère cette allocation. Les systèmes d’exploitation permettent à l’utilisateur de visualiser et de gérer les processus grâce à un gestionnaire de processus. Sous Linux, les programmes sont généralement situés dans les dossiers bin pour les commandes de base, sbin pour les exécutables d’administration et usr/bin pour les binaires non indispensables à un système minimaliste. Vous pouvez les lister avec la commande “ls” et les exécuter en tapant leur nom dans une console. Pour afficher un programme en particulier, utilisez la commande “cat”. Si vous souhaitez lister les processus en cours d’exécution, utilisez la commande “ps”. Vous pouvez également tuer un processus avec la commande “kill”.

Les états d’un processus

Un processus a souvent besoin d’accéder à des ressources autres que le processeur, telles que la mémoire vive, la mémoire de masse, la lecture ou l’écriture d’un fichier, les périphériques d’entrée et de sortie, etc. Ces ressources externes étant beaucoup moins rapides que le processeur, elles peuvent bloquer les processus lors de leur exécution. Ainsi, un processus peut passer par trois états : prêt (en attente de l’accès au processeur), élu (lorsqu’il obtient l’accès au processeur et peut s’exécuter) ou bloqué (lorsqu’il est en cours d’exécution, mais attend une ressource).

À lire aussi  Une association peut-elle faire des bénéfices ?

Ordonnancement

Il y a souvent plus de processus à exécuter que de processeurs disponibles. Les processus sont donc placés dans une file d’attente par l’ordonnanceur, qui choisit l’ordre d’exécution des processus sur les processeurs de l’ordinateur. Il existe différents algorithmes d’ordonnancement, tels que la méthode du tourniquet (Round Robin), FIFO (First In First Out), SJF (Shortest Job First), etc.

Interblocage

Il existe plusieurs façons de gérer les interblocages. On peut choisir de les ignorer, de les détecter ou de les éviter. Pour détecter les interblocages, un algorithme est utilisé pour suivre l’allocation des ressources et les états des processus. Il annule et redémarre un ou plusieurs processus afin de supprimer le blocage détecté. Pour éviter les interblocages, des algorithmes sont utilisés pour supprimer l’une des quatre conditions nécessaires à leur apparition.

C’est ainsi que le système d’exploitation gère les processus et les ressources, en veillant à éviter les interblocages et à optimiser l’ordonnancement. Comprendre ces mécanismes est essentiel pour comprendre le fonctionnement de nos ordinateurs au quotidien.

Image

Image credit: Original article