Numérique et Sciences Informatiques > Architecture des Ordinateurs > Systèmes d'Exploitation (OS) > Rôle et fonctions d'un OS

Gestion des Processus et Ordonnancement : L'Art de Faire Tourner les Programmes

Comprenez comment les systèmes d'exploitation gèrent les processus et planifient leur exécution. Explorez les concepts d'ordonnancement, de context switching, et les différents algorithmes utilisés. Un guide essentiel pour les étudiants en NSI.

Qu'est-ce qu'un Processus ?

En informatique, un processus est une instance d'un programme en cours d'exécution. Imaginez un programme comme une recette de cuisine. Le processus, c'est le plat en train d'être préparé. Chaque fois que vous lancez un programme (par exemple, un navigateur web), un nouveau processus est créé. Un processus possède :

  • Du code (les instructions du programme).
  • Des données (les variables, les données en mémoire).
  • Un contexte d'exécution (l'état actuel du processus, y compris les valeurs des registres du CPU et la pile d'appel).
Chaque processus est isolé des autres processus. Cela signifie qu'un processus ne peut pas accéder directement à la mémoire ou aux ressources d'un autre processus. Cela permet de protéger le système contre les erreurs et les comportements malveillants.

Gestion des Processus par le Système d'Exploitation

Le système d'exploitation (OS) est responsable de la gestion des processus. Cela comprend :

  • La création de processus : L'OS crée de nouveaux processus lorsqu'un programme est lancé.
  • La suppression de processus : L'OS supprime les processus lorsqu'ils ont terminé leur exécution ou lorsqu'ils sont interrompus par l'utilisateur.
  • La planification des processus : L'OS décide quel processus doit s'exécuter à un moment donné (voir la section suivante sur l'ordonnancement).
  • La communication entre les processus : L'OS fournit des mécanismes pour permettre aux processus de communiquer entre eux (par exemple, via des pipes ou des sockets).
  • La synchronisation des processus : L'OS fournit des mécanismes pour coordonner l'exécution des processus, en particulier lorsqu'ils partagent des ressources communes (par exemple, via des sémaphores ou des mutex).

Ordonnancement des Processus

L'ordonnancement des processus est le processus par lequel l'OS décide quel processus doit s'exécuter à un moment donné. Étant donné qu'un ordinateur possède généralement un nombre limité de processeurs, il est nécessaire de partager le temps du processeur entre les différents processus en cours d'exécution. L'objectif de l'ordonnancement est d'optimiser l'utilisation du CPU, de minimiser le temps de réponse des applications, et d'assurer une répartition équitable du temps du processeur entre les différents processus. Il existe de nombreux algorithmes d'ordonnancement différents, chacun avec ses propres avantages et inconvénients. Voici quelques exemples :

  • Premier arrivé, premier servi (FCFS) : Le processus qui arrive en premier est exécuté en premier. Simple à implémenter, mais peut entraîner des temps d'attente longs pour les processus courts si un processus long arrive en premier.
  • Plus court d'abord (SJF) : Le processus le plus court (celui qui nécessite le moins de temps CPU) est exécuté en premier. Optimal pour minimiser le temps d'attente moyen, mais nécessite de connaître à l'avance la durée d'exécution de chaque processus.
  • Priorité : Chaque processus a une priorité, et les processus avec une priorité plus élevée sont exécutés en premier. Permet de donner la priorité aux processus importants, mais peut entraîner la famine (un processus à faible priorité n'est jamais exécuté).
  • Round robin : Chaque processus reçoit un quantum de temps (une petite tranche de temps CPU). Si le processus n'a pas terminé son exécution à la fin de son quantum, il est placé à la fin de la file d'attente et attend son prochain quantum. Assure une répartition équitable du temps CPU entre les processus, mais peut entraîner une surcharge due aux nombreux changements de contexte.

Le Context Switching

Le context switching (ou commutation de contexte) est le processus par lequel l'OS sauvegarde l'état d'un processus en cours d'exécution et restaure l'état d'un autre processus. Cela permet à l'OS de passer rapidement d'un processus à l'autre. Le context switching est une opération coûteuse en termes de temps CPU, car elle implique la sauvegarde et la restauration des registres du CPU, de la pile d'appel, et d'autres informations importantes. C'est pourquoi les algorithmes d'ordonnancement doivent minimiser le nombre de context switching.

États d'un Processus

Un processus peut se trouver dans différents états au cours de son cycle de vie :

  • Nouveau : Le processus est en cours de création.
  • Prêt : Le processus est prêt à être exécuté, mais il attend que le CPU soit disponible.
  • En cours d'exécution : Le processus est en train d'être exécuté par le CPU.
  • Bloqué : Le processus est en attente d'un événement (par exemple, la fin d'une opération d'E/S).
  • Terminé : Le processus a terminé son exécution.
L'OS maintient une file d'attente de processus pour chaque état. Par exemple, il existe une file d'attente des processus prêts à être exécutés (la file d'attente des processus prêts). Lorsque le CPU devient disponible, l'OS sélectionne un processus dans cette file d'attente et le place en état d'exécution.

Ce qu'il faut retenir

  • Un processus est une instance d'un programme en cours d'exécution.
  • Le système d'exploitation (OS) est responsable de la gestion des processus.
  • L'ordonnancement des processus est le processus par lequel l'OS décide quel processus doit s'exécuter à un moment donné.
  • Il existe de nombreux algorithmes d'ordonnancement différents (FCFS, SJF, Priorité, Round robin).
  • Le context switching est le processus par lequel l'OS sauvegarde l'état d'un processus et restaure l'état d'un autre processus.
  • Un processus peut se trouver dans différents états (Nouveau, Prêt, En cours d'exécution, Bloqué, Terminé).

FAQ

  • Qu'est-ce que la famine dans l'ordonnancement des processus ?

    La famine se produit lorsqu'un processus à faible priorité est continuellement retardé et n'a jamais la possibilité de s'exécuter.
  • Pourquoi le context switching est-il une opération coûteuse ?

    Parce qu'elle implique la sauvegarde et la restauration des registres du CPU, de la pile d'appel, et d'autres informations importantes.
  • Quel est le meilleur algorithme d'ordonnancement ?

    Il n'y a pas de meilleur algorithme d'ordonnancement universel. Le choix de l'algorithme dépend des objectifs du système (optimisation de l'utilisation du CPU, minimisation du temps de réponse, etc.).