Processus, ordonnanceur & interblocageProcessus
Après avoir cliqué sur l'icone, le système d'exploitation va créer un processus.
On le retrouvera donc quelque part dans la liste de processus en cours.
Définition : processus
Un processus est une instance d’une application. Il est défini par :
- un ensemble d’instructions à exécuter (un programme) ;
- un espace mémoire pour les données de travail ;
- éventuellement, d’autres ressources, comme des descripteurs de fichiers, des ports réseau, etc.
Sous windows, on peut obtenir la liste des processus en cours à l'aide du Gestionnaire des tâches
(pour y accéder, on peut utiliser le raccourci clavier Ctrl + Alt + Suppr)
Sous linux, les commandes ps
, top
ou encore htop
permettent de visualiser les processus actif.
Comment fait le processeur pour traiter plusieurs processus simultanément ?
Dans la plupart des ordinateurs, les processeurs sont capables d’exécuter qu’un ou qu’un nombres très limités de processus en parallèle. Il ne traite pas réellement les processus de manière simultanée.
En réalité, il effectue un calcul puis passe rapidement au suivant et ainsi de suite. C'est l'ordonnanceur qui decide quel processus va être traité et pour quelle durée
Définition : Ordonnanceur
Le rôle de l’ordonnanceur du noyau, est de permettre à tous les processus de s’exécuter à un moment ou un autre et d’utiliser au mieux le processeur pour l’utilisateur.
Il va donc choisir quand et quel procesus s’éxecute et lesquels au contraire seront en pause. Pour cela, il existe plusieurs méthodes pour définir l'ordre et temps imparti à chaque processus:
- Méthode Round Robin (RR)
- Méthode Premier arrivé, premier servi (FIFO)
- Méthode Short Job First ( SJF )
On peut donc déjà définir deux états.
Le processus peuvent donc être dans les états suivants :
- prêt : premier de la file d'attente
- elu : en cours d'exécution
- Election : l'ordonnanceur choisit ce processus.
- Mise en attente : l'ordonnanceur passe à l'exécution d'un autre processus, si le processus n'est pas terminé.
Les différents algorithmes de l'ordonnanceur
Méthode FIFO
Ordonnancement Premier arrivé, premier servi (FIFO) : cet algorithme, le plus simple, est utilisé dans les systèmes non préemptif. Le premier processus arrivé est le premier a être elu pour toute la durée de son exécution.
Exercice 1
On considère P1, P2 et P3 sont soumis suivant l'odre de soumission du tableau :
Nom du processus | Durée d’éxécution en UT | Ordre de soumission |
---|---|---|
P1 | 3 | 3 |
P2 | 2 | 1 |
P3 | 3 | 2 |
On considère que l'ordonnanceur utilise l'algorithme du premier arrivé, premier servi (RR).
1 Compléter le tableau de déroulé des processus élus pour chaque temps d'exécution.
Méthode Short Job First
Ordonnancement du plus court d'abord ou short job first (SJF) : dans cet algorithme, les processus sont éxécutés entierement dans l’ordre croissant de leurs temps d’exécution, le plus court étant exécuté en premier. En cas d'égalité la sélection se fait arbitrairement.
Exercice 2
On considère P1, P2, P3 et P4.
Nom du processus | Durée d’éxécution en UT |
---|---|
P1 | 3 |
P2 | 2 |
P3 | 1 |
Dans cette question, on considère que les processus sont exécutés de manière concurrente selon la politique du ”plus court d’abord” :
1 Compléter le tableau de déroulé des processus élus pour chaque temps d'exécution.
Round Robin
Ordonnancement du tourniquet ou Round Robin ( RR ) : dans cet algorithme l'ordonanceur mémorise dans une file du type FIFO (First In First Out) la liste des processus prêts, c’est-à-dire en attente d’exécution en fonction de l'ordre de soumission. Puis lorsqu’un processus est élu, il s’exécute au plus durant un quantum de temps. Si le processus n’a pas terminé son exécution à l’issue du quatnum de temps, il réintégre la file des processus prêts (côté entrée). Un autre processus, desormais en tête de file (côté sortie) est alors élu pour une durée égale à un quantum.
Exercice 3
On considère P1, P2 et P3 sont soumis suivant l'odre de soumission du tableau :
Nom du processus | Durée d’éxécution en UT | Ordre de soumission |
---|---|---|
P1 | 2 | 3 |
P2 | 2 | 1 |
P3 | 4 | 2 |
On considère que l'ordonnanceur utilise l'algorithme du tourniquet (RR).
1 ) Déterminer la file de processus initiale
Sens de la file ➔
2 ) Compléter le tableau de déroulé des processus élus pour chaque temps d'exécution.
| | | | | | | |
Shortest Remaining Time
Ordonnancement du plus petit temps de séjour restant ou Shortest Remaining Time ( SRT): Cet algorithme est une variante de l’algorithme SJF. Quand un processus arrive dans la file de processus, l’ordonnanceur compare la valeur de la durée d'éxécution pour ce processus contre la valeur du processus actuellement en exécution. Si le temps du nouveau processus est plus petit, il rentre en exécution immédiatement.
Exercice 4
Dans cette question, l'ordonnanceur utilise le plus petit temps de séjour restant. On donne le temps d'éxécution ainsi que le moment ou le processus est arrivé dans la file de processus.
Nom du processus | Durée d’éxécution en UT | Tick de soumission |
---|---|---|
P1 | 5 | 0 |
P2 | 2 | 2 |
P3 | 4 | 2 |
T0 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | T10 |
| | | | | | | | | | |