Nous avons besoin de 3 paramètres pour mesurer les performances au niveau de l'exécution de processus : total service time, turnaround time, total wait time.
Total service time (Ts) : C'est le temps nécessaire au processus pour exécuter la tàche qu'il doit accomplir, donc le temps nécessaire avant de quitter le short term scheduler.
Turnaround time (Tq) : C'est le temps que le processus a réellement passé dans le scheduler. Les moments où le processus est en attente d'I/O ne sont t pas comptabilisés, car pendant ce temps il n'est pas dans le short term scheduler.
Total wait time (Tw) : C'est le temps perdu par le processus en attente de pouvoir utiliser les ressources du processeur. Nous pouvons aussi rencontrer l'abréviation suivante : Tm pour missed time (temps perdu).
Tw = Tq - Ts
Penalty ratio (P) : C'est le pourcentage de pénalité que supporte le processus. Le but est de trouver une rentabilité maximum du processeur et de la mémoire pour le traitement des processus.
P = Tq / Ts
Pour illustrer les différentes méthodes employées, nous allons nous baser sur un exemple de 5 processus qui se présentent au CPU toutes les 2 unités de temps, et dont les Ts varient.
| Process | Temps d'arrivée | Temps nécessaire (Ts) |
|---|---|---|
| A | 0 | 3 |
| B | 2 | 6 |
| C | 4 | 4 |
| D | 6 | 5 |
| E | 8 | 2 |
Nous pouvons définir les politiques de gestion selon les critères suivants :
| Classification des politiques de gestion | ||
|---|---|---|
| coopérative | préemptive | |
| priorité non-intrinsèque | FCFS | RR FB SRR |
| priorité intrinsèque | SPN HPRN | PSPN |
En FCFS, le processus qui se présente dans le short term scheduler entre dans la file. La propriété d'une file étant FIFO (First In, First Out), le premier processus qui entre dans la file est le premier à bénéficier du processeur.
| Process | Temps d'arrivée (Ta) | Ts | Temps de fin Tf | Tq (Tf-Ta) | Tm (Tq-Ts) | P (Tq/Ts) |
| Moyenne : | 8.60 | 4.60 | 2.56 | |||
| A | 0 | 3 | 3 | 3 | 0 | 1.00 |
| B | 2 | 6 | 9 | 7 | 1 | 1.17 |
| C | 4 | 4 | 13 | 9 | 5 | 2.25 |
| D | 6 | 5 | 18 | 12 | 7 | 2.40 |
| E | 8 | 2 | 20 | 12 | 10 | 6.00 |
Nous constatons que ce système est très simple, mais très peu rentable. Les processus longs sont faforisés par rapport aux processus courts qui sont pénalisés (système non équitable, très grosses variations dans les pénalités).
Le type de gestion est non-préemptif, car normalement rien n'est prévu par le système d'exploitation pour déloger le processus du cpu, ou favoriser un processus dans la file.
En Round Robin, le système d'exploitation est préemptif, basé sur un signal horloge. A chaque intervale de temps (quantum), le processus doit libérer le processeur. Si son travail n'est pas terminé, il retourne dans la file des processus en attente de temps CPU. Round Robin est souvent baptisé la méthode du tourniquet.
Le but de cette opération est de limiter les différences entre les pénalités des processus.
| Process | Temps d'arrivée (Ta) | Ts | Temps de fin Tf | Tq (Tf-Ta) | Tm (Tq-Ts) | P (Tq/Ts) |
| Moyenne : | 10.80 | 6.80 | 2.11 | |||
| Round Robin scheduling, Quantum = 1 | ||||||
|---|---|---|---|---|---|---|
| A | 0 | 3 | 4 | 4 | 1 | 1.33 |
| B | 2 | 6 | 18 | 16 | 10 | 2.67 |
| C | 4 | 4 | 17 | 13 | 9 | 3.25 |
| D | 6 | 5 | 20 | 14 | 9 | 2.80 |
| E | 8 | 2 | 15 | 7 | 5 | 3.50 |
Compromis : dans une gestion de type Round Robin, nous sommes soumis à un compromis entre d'un côté le temps que le scheduler utilise pour la gestion des autres processus (à chaque arrêt d'un processus, il faut sauver les vecteurs d'états, etc.) et de l'autre le temps accordé aux processus gérés (quantum). Nous pouvons estimer qu'une bonne gestion est aux alentours de 30% de temps pour le scheduler.
Les deux tableaux (quantum de 1, et quantum de 4) ne prennent en compte que le temps d'occupation du processeur par les processus, mais pas le temps où le cpu est monopolisé par le scheduler.
| Process | Temps d'arrivée (Ta) | Ts | Temps de fin Tf | Tq (Tf-Ta) | Tm (Tq-Ts) | P (Tq/Ts) |
| Moyenne : | 10.00 | 6.00 | 2.71 | |||
| Round Robin scheduling, Quantum = 4 | ||||||
|---|---|---|---|---|---|---|
| A | 0 | 3 | 3 | 3 | 0 | 1 |
| B | 2 | 6 | 17 | 15 | 9 | 2.50 |
| C | 4 | 4 | 11 | 7 | 3 | 1.75 |
| D | 6 | 5 | 20 | 14 | 9 | 2.80 |
| E | 8 | 2 | 19 | 11 | 9 | 5.50 |
Nous pouvons constater que dans les deux cas les pénalités sont réparties de manière plus uniforme, mais que les processus courts (par exemple, le E) restent pénalisés.
Nous avons vu que quand le quantum d'un processus expire, le cpu est libéré et le processus retourne dans la file des processus en attente (ready queue).
De même, quand un processus est en attente d'I/O, il libère le cpu et est placé dans la file des bloqués (il peut exister plusieurs files de bloqués, une par évènement). Quand la ressource est libre, le processus peut sortir de la file des bloqués, et rejoindre la file des processus en attente de passage dans le processeur.
La gestion Virtual Round Robin permet aux processus qui quittent la file des bloqués de ne pas passer par le file ready, mais d'entrer directement dans une autre file (auxiliary queue), prioritaire sur cette dernière.
Le scheduler vérifie d'abord dans la file auxiliaire, et donne l'accès cpu aux processus qu'elle contient. C'est seulement quand la file auxiliaire est vide que le scheduler permet aux processus de la file ready (qui proviennent de l'état new) d'utiliser le processeur.
Round Robin permet de réduire la pénalité des processus courts, mais nécessite une préemption. SPN tend au même effet, mais sans préemption.
Le prochain processus sélectionné sera celui qui nécessite le moins de temps cpu pour son exécution (Ts). L'ordre FIFO de la file n'est donc plus respecté.
Problèmes de SPN :
| Process | Temps d'arrivée (Ta) | Ts | Temps de fin Tf | Tq (Tf-Ta) | Tm (Tq-Ts) | P (Tq/Ts) |
| Moyenne : | 7.60 | 4.50 | 1.84 | |||
| SPN (Shortest Process Next) | ||||||
|---|---|---|---|---|---|---|
| A | 0 | 3 | 3 | 3 | 0 | 1.00 |
| B | 2 | 6 | 9 | 7 | 1 | 1.17 |
| C | 4 | 4 | 15 | 11 | 7 | 2.75 |
| D | 6 | 5 | 20 | 14 | 9 | 2.80 |
| E | 8 | 2 | 11 | 3 | 1 | 1.50 |
Nous pouvons remarquer que le taux moyen des pénalités est assez bas, et que la répartition des pénalités est équitable. Le problème est qu'il n'est pas possible d'établir des prévisions stables (cela dépend fortement des différentes tailles de processus qui se présentent en entrée).
Tout processus qui vient de l'état new vers la file ready est déclaré de longueur moyenne. Suivant le temps passé dans le processeur, une valeur lui est attribuée. Cette valeur est modifiée à chaque passage dans l'état running.
Le cœfficient α (ou smoothing factor) permet à chaque passage dans l'état running de déterminer si le processus est court ou non par rapport à la moyenne des derniers processus qui viennent d'être exécutés.
Cette information de longueur se trouve dans le PCB (Process Control Block), plus précisément dans la partie "état du processus".
La technique est identique à la technique SPN, mais ici le choix du processus le plus court se fait non seulement entre les processus de la file ready, mais aussi entre ces processus et le processus actuellement dans le CPU.
Quand un processus se présente dans la file ready avec un Ts inférieur au Ts restant (à ce moment) du processus dans le processeur, le scheduler libère le cpu pour le nouveau processus le plus court.
C'est pourquoi PSPN se nomme aussi SRT, pour Shortest Remaining Time (Plus court temps restant).
| Process | Temps d'arrivée (Ta) | Ts | Temps de fin Tf | Tq (Tf-Ta) | Tm (Tq-Ts) | P (Tq/Ts) |
| Moyenne : | 7.20 | 3.20 | 1.59 | |||
| PSPN (Preemptive Shortest Process Next) | ||||||
|---|---|---|---|---|---|---|
| A | 0 | 3 | 3 | 3 | 0 | 1.00 |
| B | 2 | 6 | 15 | 13 | 7 | 2.17 |
| C | 4 | 4 | 8 | 4 | 0 | 1.00 |
| D | 6 | 5 | 20 | 14 | 9 | 2.80 |
| E | 8 | 2 | 10 | 2 | 0 | 1.00 |
Les processus longs sont encore pénalisés, mais la pénalité moyenne a encore diminué par rapport à la méthode précédente (SPN).
Problème du PSPN :
C'est pourquoi un Ts minimum est fixé dans le système d'exploitation. Si le Ts du processus qui est dans le processeur est inférieur ou égal à cette valeur minimum, le scheduler laisse le processus terminer sa tàche.
HPRN signifie que le processus qui a la plus grosse pénalité est le suivant à pouvoir bénéficier des ressources du processeur. C'est une tentative d'équilibrer les pénalités sans utiliser de préemption.
| Process | Temps d'arrivée (Ta) | Ts | Temps de fin Tf | Tq (Tf-Ta) | Tm (Tq-Ts) | P (Tq/Ts) |
| Moyenne : | 8.00 | 4.00 | 2.14 | |||
| HPRN (Highest Penalty Ratio Next) | ||||||
|---|---|---|---|---|---|---|
| A | 0 | 3 | 3 | 3 | 0 | 1.00 |
| B | 2 | 6 | 9 | 7 | 1 | 1.17 |
| C | 4 | 4 | 13 | 9 | 5 | 2.25 |
| D | 6 | 5 | 20 | 14 | 9 | 2.80 |
| E | 8 | 2 | 15 | 7 | 5 | 3.50 |
Ce type de gestion est gourmande en ressources, car elle nécessite de nombreux calculs des pénalités.
Ce style de gestion réintroduit la notion de préemption (car on utilise le quantum) sous la technique de priorité dynamique.
Différents types de gestions vu précédemment (SPN, PSPN, HPRN) utilisent la longueur relative des processus, mais l'obtention de cette information nécessite une gestion appropriée et du temps pour l'évaluation. Dans certains cas, il n'est même pas possible de déterminer cette longueur.
Nous ne pouvons pas toujours aisément déterminer le temps restant, mais il est plus facile de déterminer le temps déjà utilisé.
Un autre moyen de favoriser les processus courts est de pénaliser les processus qui ont déjà profité du temps cpu.
Le principe est le suivant :
Un problème subsiste : si de nouveaux processus se présentent sans cesse en entrée, les processus situés dans les files de niveau inférieur n'ont que peu de chance d'accéder au processeur.
Deux techniques sont possibles pour remédier à ce problème :
| Process | Temps d'arrivée (Ta) | Ts | Temps de fin Tf | Tq (Tf-Ta) | Tm (Tq-Ts) | P (Tq/Ts) |
| Moyenne : | 11.00 | 7.00 | 2.63 | |||
| FB (Multiple-level feedback), niveau = Quantum * 1 | ||||||
|---|---|---|---|---|---|---|
| A | 0 | 3 | 11 | 11 | 8 | 3.67 |
| B | 2 | 6 | 18 | 16 | 10 | 2.67 |
| C | 4 | 4 | 16 | 12 | 8 | 3.00 |
| D | 6 | 5 | 20 | 14 | 9 | 2.80 |
| E | 8 | 2 | 10 | 2 | 0 | 1.00 |
| Process | Temps d'arrivée (Ta) | Ts | Temps de fin Tf | Tq (Tf-Ta) | Tm (Tq-Ts) | P (Tq/Ts) |
| Moyenne : | 10.40 | 6.40 | 2.56 | |||
| FB (Multiple-level feedback), niveau = Quantum * 2 | ||||||
|---|---|---|---|---|---|---|
| A | 0 | 3 | 3 | 3 | 0 | 1.00 |
| B | 2 | 6 | 17 | 15 | 9 | 2.50 |
| C | 4 | 4 | 18 | 14 | 10 | 3.50 |
| D | 6 | 5 | 20 | 14 | 9 | 2.80 |
| E | 8 | 2 | 14 | 6 | 4 | 3.00 |
Système préemptif comme le Round Robin, le SRR favorise les processus qui ont déjà bénéficié d'un temps processeur et qui ont du libérer le cpu (soit parce que leur quantum est expiré, soit parce qu'ils étaient en attente d'un I/O qui est maintenant accessible).
La file ready est divisée en 2 files :
Les principes de fonctionnement sont les suivants :
| Process | Temps d'arrivée (Ta) | Ts | Temps de fin Tf | Tq (Tf-Ta) | Tm (Tq-Ts) | P (Tq/Ts) |
| Moyenne : | 9.40 | 5.40 | 2.61 | |||
| SRR (Selfish Round Robin), Quantum = 1, a = 2, b = 1 | ||||||
|---|---|---|---|---|---|---|
| A | 0 | 3 | 3 | 3 | 0 | 1.00 |
| B | 2 | 6 | 11 | 9 | 3 | 1.50 |
| C | 4 | 4 | 15 | 11 | 7 | 2.75 |
| D | 6 | 5 | 20 | 14 | 9 | 2.80 |
| E | 8 | 2 | 18 | 10 | 8 | 5.00 |
Nous nous sommes penchés sur un unique set de processus, et de la sélection du prochain processus à exécuter. Nous n'avons pas pris en compte le fait que les processus de plusieurs utilisateurs cohabitent.
Un système FSS (Fair share scheduling) divise les ressources en parts équitables, soit entre les utilisateurs, soit entre les groupes.
Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.
27 mots clés dont 0 définis manuellement (plus d'information...).
Avertissement
Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.
Recherche (afficher)
Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
Citation (masquer)