Gestion des processus et des ressources par un système d’exploitation

icône de pdf
Signaler
Dans cette leçon, tu découvriras comment un système d’exploitation gère les processus : leur création, leur cycle de vie et leur ordonnancement. Tu comprendras aussi les enjeux de la concurrence entre processus et les risques d’interblocage, avec les mécanismes utilisés pour les éviter. Mots-clés : processus, système d’exploitation, ordonnancement, concurrence, interblocage, NSI.

Introduction

Dans le domaine de l'informatique, le système d'exploitation joue un rôle central en orchestrant les interactions entre le matériel informatique et les logiciels applicatifs. Il assure l'allocation des ressources matérielles (processeur, mémoire, périphériques) et gère la manière dont les différentes tâches accèdent à ces ressources. Parmi ses nombreuses responsabilités, la gestion des processus et des ressources constitue un aspect fondamental pour assurer une utilisation efficace et équitable des capacités de l'ordinateur. Cette leçon se propose d'explorer la création et l'ordonnancement des processus, ainsi que les notions de concurrence et d'interblocage, des concepts essentiels pour comprendre le fonctionnement interne des systèmes d'exploitation modernes.

Création et ordonnancement des processus

Création des processus

Un processus est une instance d'un programme en cours d'exécution. Lorsqu'un utilisateur ou un programme demande l'exécution d'une tâche, le système d'exploitation crée un processus pour gérer cette tâche. Ce processus est initialisé avec un identifiant unique et se voit attribuer des ressources telles que de la mémoire, des descripteurs de fichiers et du temps processeur.

La création d'un processus suit généralement plusieurs étapes :

  • Chargement du programme : Le programme est chargé en mémoire, ses instructions et ses données sont préparées pour l'exécution.

  • Initialisation de l’environnement : Le système d'exploitation configure le contexte d'exécution du processus, c’est-à-dire l’ensemble des informations nécessaires à son exécution (comme les registres du processeur, le compteur ordinal, la pile et les segments mémoire).

  • Ajout à la file d’attente des processus prêts : Une fois prêt, le processus est placé dans la file d'attente des processus en attente d'exécution.

Le cycle de vie d’un processus comporte plusieurs états fondamentaux :

  • Nouveau : Le processus est en cours de création.

  • Prêt : Le processus attend que le processeur soit disponible.

  • En exécution : Le processus utilise le processeur.

  • Bloqué : Le processus attend une ressource (par exemple, une entrée utilisateur).

  • Terminé : Le processus a achevé son exécution.

Ordonnancement des processus

L'ordonnancement est la méthode par laquelle le système d'exploitation décide quel processus doit être exécuté à un moment donné. L’objectif est d’optimiser l’utilisation du processeur tout en assurant une réactivité acceptable pour les utilisateurs. Les algorithmes d’ordonnancement peuvent être classés en plusieurs catégories, parmi lesquelles :

  • Premier arrivé, premier servi (FCFS) : Les processus sont exécutés dans l’ordre de leur arrivée.

  • Tourniquet (Round Robin) : Chaque processus reçoit une part de temps processeur fixe, appelée quantum, avant de passer au suivant.

  • Priorité : Les processus sont exécutés en fonction de leur priorité, les plus prioritaires étant exécutés en premier.

Par exemple, dans un système utilisant l’ordonnancement par tourniquet, chaque processus reçoit une fraction de temps égale, ce qui permet une répartition équitable du temps processeur.

Concurrence et interblocage

Concurrence

La concurrence désigne la capacité à exécuter plusieurs processus simultanément. Dans un système multitâche, plusieurs processus peuvent être en cours d'exécution, partageant les ressources du système telles que le processeur, la mémoire et les périphériques d’entrée/sortie. La concurrence permet d’améliorer l’efficacité du système et de réduire le temps de réponse des applications.

Cependant, la concurrence peut introduire des défis, notamment la gestion des sections critiques. Une section critique est une portion de code où un processus accède à des données partagées. Si plusieurs processus entrent en même temps dans cette section, des erreurs peuvent survenir. Pour éviter cela, on utilise des mécanismes de synchronisation comme :

  • Les verrous : structures logiques permettant de restreindre l’accès à une ressource à un seul processus à la fois.

  • Les sémaphores : variables utilisées pour contrôler l'accès à une ressource partagée, en autorisant ou en bloquant un processus selon certaines conditions.

Interblocage

L'interblocage (ou deadlock) se produit lorsque plusieurs processus attendent indéfiniment des ressources détenues par d’autres processus, créant ainsi un cycle d’attente. Par exemple, si le processus A détient une ressource R1 et attend une ressource R2 détenue par le processus B, tandis que le processus B attend la ressource R1, un interblocage se produit.

picture-in-text

Pour prévenir les interblocages, le système d'exploitation peut :

  • Éviter les interblocages en refusant les demandes de ressources qui pourraient entraîner une situation de blocage.

  • Détecter et résoudre les interblocages en identifiant les cycles d’attente et en forçant la libération des ressources, par exemple en arrêtant un des processus impliqués.

Conclusion

La gestion des processus et des ressources par un système d'exploitation est cruciale pour assurer une utilisation efficace et équitable des capacités d’un ordinateur. La création, le cycle de vie et l’ordonnancement des processus permettent d’optimiser le temps processeur, tandis que la gestion de la concurrence et des interblocages assure la stabilité et la fiabilité du système. Une compréhension approfondie de ces concepts est essentielle pour appréhender le fonctionnement des systèmes informatiques modernes et pour concevoir des logiciels robustes et performants.