Gestion de processus (process scheduling)

Types de gestion processus

Dans la notion de scheduling, nous retrouvons tout ce qui se rapporte à la gestion des files (FIFO). Nous avons vu dans la partie qui concerne le mutliprogramming, que l'illusion de l'exécution simultanée de plusieurs processus pouvait résulter de la gestion du partage du temps du processeur gràce aux files.

Le système d'exploitation n'utilise cependant pas une seule méthode de gestion des files, et nous retrouvons donc 4 types de schedulers :

  • Long-term scheduling
  • Medium-term scheduling
  • Short-term scheduling
  • I/O scheduling

Long-term scheduling

Type utilisé quand un nouveau processus est créé.

Medium-term scheduling

Partie de la fonction de swapping, qui consiste à permuter un processus entre les états bloqué, bloqué suspendu, prêt suspendu, et prêt. Ce sont principalement les permutations entre mémoire primaire et mémoire secondaire qui sont gérées.

Short-term scheduling

Le short-term scheduling est la gestion des passages entre les états prêt (ready) et en exécution (running). Nous pouvons considérer que c'est la prise de décision actuelle de quel processus prêt sera exécuté au prochain temps du processeur.

Dans le short-term scheduling, nous retrouvons deux types de processus :

  • CPU bound : C'est un type de processus long. Quand le processus atteint le processeur, il reste jusqu'au moment où le quantum est atteint. Par exemple le calcul d'une racine carrée.
  • I/O bound : Type de processus court. Son exécution peut durer plus longtemps qu'un processus long, mais du point de vue du processeur, il reste peu de temps dans le scheduler car il est souvent en attente d'entrées/sorties. Le quantum n'est pas souvent atteint qu'il est déjà sorti du scheduler.

Short-term scheduling

Critères de gestion

Nous devons nous baser sur deux grands axes pour déterminer la manière d'optimiser le comportement du scheduler du système d'exploitation :

  • Orienté utilisateur ou orienté système.
  • Prise en compte des performances, ou non.
| Orienté utilisateur | orienté système |
Demande de performances | Temps de réponse très court
Temps d'exécution court (turnaround time)
Moment maximum d'exécution (deadline) |
Capacité de travail importante
Rentabilité du processeur |
Autres critères de qualité | Temps d'attentes prévisibles | Partage équitable du temps processeur
Priorités d'utilisation
Occupation des ressources |

Temps de réponse : l'utilisateur désire que l'action débute immédiatement quand il la provoque.

Temps d'exécution (turnaround time) : c'est l'intervale de temps entre la demande d'une tàche et l'achèvement de son exécution.

Moment maximum d'exécution (deadlines) : c'est la limite de temps accordée à l'exécution d'une tàche. Il ne s'agit pas ici de durée de la tàche, mais elle doit être achevée au plus tard pour un moment bien précis.

Prévisibilité (predictability) : c'est la possibilité de déterminer le temps d'exécution d'un processus. Peu importent les conditions, ce temps doit dans ce cas supporter le moins d'écarts possibles.

Capacité de travail (troughput) : la charge de travail (combien de processus peuvent se trouver en même temps dans la zone short-scheduling).

Rentabilité du processeur : le temps d'exécution d'un processus en particulier peut être légèrement plus lent, du moment que le processeur soit occupé un maximum avec les différents processus.

Mode de décision

Nous pouvons classer les processus selon la manière dont ils sont gérés par les systèmes d'exploitation :

  • coopératif : le processus dans la file d'entrée du cpu peut bénéficier du temps processeur tant qu'il l'utilise (il ne l'utilise plus s'il est en attente d'un évènement, ou d'I/O). Le désavantage de ce type de gestion est qu'un processus peut bloquer complètement le système.
  • préemptif : le système d'exploitation gère les temps d'exploitation du cpu par les processus.
    Ce type de gestion introduit la notion de temps que peut passer un processus dans le processeur (quantum), et de priorité.

La priorités en cas de système préemptif peut être statique ou dynamique (la priorité peut varier en fonction de la charge du processeur). Ces deux types de priorités sont subdivisés en interne (dépendante du processus) ou externe (selon les caractéristiques utilisateur).

Document créé le 05/05/2004, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/systeme-exploitation-gestion-processus.php

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.