510 likes | 612 Views
Si on doit définir O.S: un ensemble de logiciel complexe et structure Permettant d’exploiter d’une manière logique informatique les ressources matériel d’un ordinateur et de ses périphériques.
E N D
Si on doit définir O.S: un ensemble de logiciel complexe et structure Permettant d’exploiter d’une manière logique informatique les ressources matériel d’un ordinateur et de ses périphériques .
En fait cet ensemble de logiciel est tellement complexe que l’on découpe en plusieurs fonctions distinctes ce qui donne un modèle en couche. Pourquoi toujours des modèles en couches ?
Andrew Tanenbaum a développé plusieurs systèmes d'exploitation : Globe Amoeba MINIX, qui est resté le plus célèbre de tous, en particulier pour être le système qui a participé à la "naissance" de Linux Minix Minix est un clone libre d'UNIX, créé dans l'optique de son enseignement. Celui-ci eut un certain succès dans le milieu des étudiants en informatique, car il était léger (une partition de 20 Mo suffit pour l'installer, ainsi que 512 Ko à 2 Mo de mémoire vive), facile à lire et à comprendre. Le livre Operating Systems: Design and Implementation était accompagné du code source complet de Minix.
Langage Machine On sait que l'ordinateur fonctionne selon un système binaire et qu'en conséquence il ne reconnaît que des 0 et des 1. Le premier niveau de langage, c'est celui qui colle à la machine. Il est fait de 0 et de 1. Par exemple, pour dire à la machine d'additionner 1084, le programmeur doit entrer: 00100000000000000000000000010111000 Les erreurs de transcriptions sont fréquentes et la tâche fastidieuse. Il faut en outre que le programmeur mémorise les nombres de chaque code utilisé et garde trace des instructions et des adresses où elles doivent s'exécuter. Programmer en langage machine est donc une opération coûteuse parce que très longue et la correction des erreurs n'en finit plus; il est aussi très compliqué de modifier les programmes après coup. De plus, chaque ordinateur possède son propre code.
Langages assembleurs (1950) Pour obvier à ces difficultés de programmation en langage-machine, on imagina au début des années 1950 une notation symbolique formée de mnémoniques pour représenter les instructions et d'adresses symboliques pour localiser les casiers de la mémoire de l'ordinateur. Le programme ainsi écrit s'appelle le programme-source. Il est nécessaire qu'il soit transposé en langage-machine pour que l'ordinateur le comprenne. Cette traduction se fait à l'aide d'un assembleur qui produit un programme-objet. Chaque ordinateur ou chaque microprocesseur autour duquel un micro-ordinateur est construit possède son propre assembleur. Ainsi, l'assembleur du IBM PC doit correspondre aux instructions des microprocesseur Intel de la famille 8086 et celui du Apple Macintosh à celles de la famille 68000 de Motorola. On sauve du temps en programmant avec un assembleur. On l'appelle langage de bas niveau car il est très proche de la machine, ce qui a pour conséquence d'être très dépendant du type de machine. Le premier assembleur connu a été mis au point pour l'ordinateur EDSAC développé en Angleterre. Le premier assembleur commercial s'appelle SAP (Symbolic Assembly Program); il tourne sur un IBM 704 et a été mis au point par la United Aircraft Corporation.
Microsoft, en août 1979, met en marché un assembleur pour micro-ordinateur à base de microprocesseur 8080/Z80. Exemple écrit en assembleur pour le microprocesseur Intel 8088
Compilateurs Compiler un programme source en un programme objet, c'est en transposer les instructions en langage-machine et cela avant son exécution. Seul le programme objet est exécutable. Lorsqu'on effectue la compilation, le compilateur indique, généralement à la fin du processus, les erreurs du programme qu'il faut corriger avant de recompiler le programme pour pouvoir l'exécuter. Seul un programme sans erreur détecté par le compilateur est exécutable. Interpréteurs Il s'agit d'un programme d'ordinateur (en l'occurrence un langage) qui traduit et exécute chaque instruction avant de traduire et d'exécuter la suivante. Le programme source est donc aussi le programme objet. Les erreurs sont plus faciles à corriger car elles ne nécessitent pas qu'on recompile le programme avant de l'exécuter de nouveau et souvent, elles sont indiquées par l'ordinateur au fur et à mesure qu'on programme. Les résultats de l'exécution sont fournis au fur et à mesure du déroulement du programme. Les programmes interprétés sont généralement plus lents au niveau de l'exécution que les programmes compilés car l'ordinateur doit exécuter les instructions les unes à la suite des autres.
Système d'exploitation Qu'est ce qu'un OS ? Les utilisateurs de l'informatique attendent des ordinateurs qu'ils soient de plus en plus performants, simples d'utilisation, mais capables d'accueillir des applications de plus en plus sophistiquées et des données toujours plus volumineuses. Le hardware de plus en plus complexe est incapable de répondre à ces exigences. Il faut donc un système capable (1) d'orchestrer les fonctions du hardware et des applications et (2) de donner aux utilisateurs l'impression que l'ensemble est convivial et simple. Le système d'exploitation Il s'agit du système d'exploitation automatique des ressources de l'ordinateur communément appelé "système d'exploitation" ou Operating System O.S. et parfois "système opératoire"). On le représente généralement comme une couche logicielle placée au dessus du hardware. L'interface utilisateur Au système d'exploitation est associée une interface utilisateur (texte ou graphique) capable d'interpréter une série de commandes de base. Cette interface ne fait (théoriquement) pas partie du système d'exploitation mais l'étude des commandes donne un bon aperçu des fonctions qu'il procure.
L'apport du système d'exploitation aux applications • Le système d'exploitation constitue une machine virtuelle qui, pour les applications, substitue des composants logiciels aux composants matériels. Il est la plateforme pour laquelle sont construites les applications. • La tâche du système d'exploitation vis à vis des ressources système • Le S.E. reçoit des demandes des programmes d'application et des utilisateurs. Il y donne suite en leur allouant les ressources du système : • 1° le CPU2° la mémoire3° les périphériques4° le système de fichier (y compris parfois, le réseau)
L'allocation des ressources système est une tâche complexe : • Répartir les temps d'utilisation du CPU entre chaque application, tenir compte des priorités, des applications en attente etc. • Partager la mémoire entre les différentes applications (mémoire physique ou virtuelle) • Donner accès aux périphériques : disques, carte graphique, ports (série, parallèle, USB ...), clavier, souris etc. • Donner le moyen d'enregistrer des données sur les disques : le file system • Rediriger certaines commandes du système de fichier vers le réseau • Identifier les utilisateurs et gérer les droits d'accès aux fichiers et aux périphériques • Gérer les erreurs
Terminologie: • Un programme est une suite statique d'instructionsUn processeur est l'agent qui exécute les instructions d'un programmeUn processus est un programme en cours d'exécution. Un programme peut avoir plusieurs exécutions simultanées. Pour faire tourner un processus il faut donc, non seulement chercher le code et les données mais il faut aussi lui réserver un espace mémoire, le gérer les accès aux ressources, la sécurité etc. C'est un des rôles de l'OS. • - Au temps du DOS déjà, le rôle du système d'exploitation était de charger les programmes d'application en mémoire avant de leur passer la main.- Actuellement les systèmes d'exploitation sont multitâches. Le temps processeur est partagé par plusieurs processus qui semblent tourner simultanément. • Multitâche • Le S.E. est multitâche s'il permet à l'ordinateur de faire tourner simultanément plusieurs processus. Il s'arrange pour que chaque processus ait à tour de rôle un court laps de temps pour s'exécuter partiellement. Cette méthode, aussi appelée multiprogrammation, donne l'impression que tous ces programmes s'exécutent simultanément et surtout, maximise l'occupation du processeur. Dès qu'un programme s'interrompt pour attendre la réalisation d'une fonction plus lente, telle qu'une opération d'entrées/sortie, le processeur passe sans plus attendre à l'exécution d'un autre processus.
Multitâche coopératifWindows 95 - 98 - miléniumChaque processus dispose des ressources du système puis les libère pour permettre au processus qui suit dans une file d'attente d'en disposer à son tour.=> Chaque tâche dépend des autres. Une tâche programmée de manière peu rigoureuse va compromettre la bonne marche de l'ensemble. • Multitâche préemptifUnix - Windows NT - 2000 - XPChaque processus dispose du processeur pendant un laps de temps déterminé à l'avance ou jusqu'à ce qu'un autre ait une priorité supérieure à celle du processus en cours.L'ordonnancement, (l'attribution du temps processeur aux processus) est fait par l'OS sans que les applications soient consultées. => Si une application "se plante", elle est mise de côté sans bloquer le système. • Multi-utilisateur • - Plusieurs terminaux pour un ordinateur.Le temps processeur réparti entre plusieurs tâches est aussi partagé entre plusieurs utilisateurs qui depuis divers terminaux interagissent avec l'ordinateur. C'est ce qu'on appelle aussi les systèmes à temps partagé. • Ce mode de fonctionnement est utilisé par les systèmes Unix et du côté de Microsoft par la version spéciale " Windows Terminal Server". Les PC pour ce connecter au " Terminal Server" ont recourt à un programme émulateur de terminal appelé " Client Terminal Server "
Multiprocesseur • L'acronyme SMP est utilisé pour désigner les systèmes multiprocesseurs. SMP signifie "Symmetric MultiProcessor" • Chaque processeur a accès à l'intégralité de la mémoire, aucun n'a de rôle particulier contrairement à la technologie ASMP (Multiprocesseur Asymétrique) utilisée dans les années 70. Il y avait plusieurs processeurs auxquels étaient assignés des rôles différents. Un processeur maître réservé à l'OS répartissait les applications au niveau des autres processeurs.
MAIS DE QUOI IL PARLE JE SUIS PERDU JE SAIS JE SAIS Un système multi-processus permet d'exécuter plusieurs processus "simultanément" avec un seul processeur. La simultanéité apparente est réalisée par l'exécution enchevêtrée de plusieurs processus sur un ou plusieurs processeurs. Temps Temps 1 à 10 msec (1000 à 10.000 instructions en C)
On définit un quota de temps pour le processus 1, un quota de temps pour le processus 2, un quota de temps pour le processus 3 et on recommence au 1er processus. Le µP va basculer d'un processus à l'autre. L'utilisateur a l'impression que les 3 processus se déroulent en même temps... mais c'est faux! PROCESSUS HOMMES MAIS OUI JE NE SUIS PAS FOU QUOI QUE UN PEU OUI CAUSE TJS HAHAH JE SUIS LE BEST
Coopérations élémentaires: L'ensemble des processus de l'O.S. ou d'une application, sont à la fois en coopération (fonctionnement harmonieux de l'O.S. ou de l'application) et aussi en compétition (partage des ressources). Il existe deux types de coopérations élémentaires entre processus: La synchronisation : la vitesse d'un processus par rapport à un autre est imprévisible. Les processus sont asynchrones les uns par rapport aux autres. La synchronisation permet de se fixer des points de rendez-vous entre processus. Ex: - attendre la fin d'un traitement, attendre la fin d'un I/O. L'exclusion mutuelle : Dans un système, on a des ressources partageables, utilisables par plusieurs processus simultanément (mémoire, réseaux, ...), et des ressources non-partageables, utilisables par un seul processus à la fois (imprimante, ...). L'exclusion mutuelle consiste à s'assurer qu'un seul processus à la fois accèdera à une ressource non-partageable.
Multithreading • Une application multithread est un logiciel dont le processus est, dès sa conception, partagé en différentes activités appelées fils d'exécutions ou threads et dont la gestion est confiée au système d'exploitation. Exemple : la correction orthographique dans WORD.
Nous avions vu dans le cadre du multitâche que chaque processus dispose d'une partie distincte de la mémoire pour s'exécuter indépendamment des autres. Dans le cas du multithreading au contraire, le même espace d'adressage est mis en commun par tous les threads d'une application. • On parle aussi de puces multithread ou puces SMT"Simultaneus MultiThreading". Il s'agit de processeurs qui peuvent exécutent plusieurs threads simultanément de manière à occuper le plus efficacement possible les pipelines d'exécution de ces processeurs. On obtient ainsi plusieurs processeurs "logiques" en ne dédoublant que quelques éléments du CPU tels que les registres, soit une augmentation de la densité de la puce qui n'est que d'environ 5%. Le gain en performances pourrait atteindre 50% d'après Intel mais oscille entre 5 et 30% et ne concerne que les applications multithread. L'hyperthreading est la forme la plus aboutie du multithreading.
C’EST BON JE SAIS QUE J’AI PAS COMPRIS LA DIFFÉRENCE ENTRE UN THREAD ET UN PROCESSUS MAIS LE PROF IL S’EN FOU >>>> QUE NON REGARDER LE BEAU SCHÉMA Schéma d’un processus Classique
On mesure donc la différence entre un thread et un sous processus classique:le segment d’un processus fils est une copie de celui de son père alors que le thread partage ce segment avec son générateur. Ce processus de duplication est d’ailleurs coûteux pour le OS beaucoup plus que la mise en place d’un thread. De ce fait un processus et un sous processus sont totalement indépendants, alors qu’un thread dépend de son père. Ainsi la terminaison du thread initial du processus entraîne celle de tous les autres thread fils.
Multicœur - MC • L'association de deux ou plusieurs cœurs sur la même puce est la technique la plus récente pour accroître les performances des CPU. La montée en fréquence arrive à ses limites. Les cœurs sont entièrement démultipliés, un peu comme si nous disposions de plusieurs processeurs physiques qui peuvent traiter simultanément plusieurs processus. • L'amélioration attendue ne se limite donc pas aux seules applications multithreads. Les performances sont toutefois moindres qu'avec la technologie SMP (multiprocesseur) puisque les cœurs d'un même processeur doivent se partager les accès au bus système. • Multi-ordinateur • Plusieurs ordinateurs autonomes interconnectés en réseaux coopèrent pour réaliser des activités concertées. On parle de systèmes distribués ou encore de clustering. Ici, contrairement au système multiprocesseur, chaque ordinateur possède sa propre mémoire.
La gestion des processus Processus Un processus est un programme en cours d'exécution. Un programme est une suite d'instructions ; c'est du texte, un code statique. Le processus est un concept dynamique, il représente le déroulement d'une tâche faisant partie d'une application ou un programme système quelconque. La notion de processus est essentielle pour décrire le fonctionnement des systèmes multiprogrammés aussi appelés multitâches ou plus simplement multiprocessus. Parmi les avantages de la multiprogrammation, citons : Le fractionnement des applications qui peut en simplifier le développement, l'avantage pour l'utilisateur de savoir faire tourner plusieurs applications simultanément et surtout l'optimalisation de l'utilisation du (ou des) processeurs(s) Un processeur n'est capable de traiter qu'un seul processus à la fois. Un sous-ensemble du système d'exploitation, appelé ordonnanceur, organise les tâches et les fait commuter tout à tour pour donner l'impression qu'elles s'exécutent toutes simultanément. Le système d'exploitation conserve des informations sur chaque processus pour pouvoir les interrompre et les relancer selon ce que décide l'ordonnanceur. Ces informations regroupent entre autres : -
un numéro d'identification du processus ( PID)- l'état du processus, son compteur ordinal et les autres registres- l'emplacement mémoire du code, des données et de la pile- des pointeurs vers les ressources utilisées, fichiers, E/S, ...- et une quantité innombrable d'informations : pointeur vers le processus parent, priorité, compteur de threads, durée d'exécutions, informations d'attentes etc. Toutes ces informations peuvent être regardées comme les composants d'un processeur virtuel agent d'exécution du processus.
Les niveaux d'ordonnancement des processus L'ordonnancement est à envisager à trois niveaux : à court, à moyen et à long terme. 1. L'ordonnancement à long terme "job scheduling" (ordonnancement des travaux) décide des processus que le système peut mener en parallèle. Ils doivent être assez nombreux pour que le processeur soit inactif le plus rarement possible (quand tous les processus attendent des E/S) sans pour autant être trop abondants et saturer la mémoire principale du système. - Dans un traitement par lots, les processus attendent sur le disque dans une file d'attente jusqu'à ce que le scheduler ou ordonnanceur d'admission décide de les prendre en charge. - Dans un système interactif à temps partagé, le système accepte en principe toutes les requêtes de processus que les utilisateurs provoquent en lançant leurs applications. Une fois le processus admis dans le système, il n'en sort que lorsqu'il est terminé ou s'il est détruit par le système d'exploitation suite à une erreur grave ou à la demande de l'utilisateur (commande kill sous Unix ou via le gestionnaire des tâches sous Windows) 2. L'ordonnancement à moyen terme est assuré par l'ordonnanceur de mémoire aussi appelé permutateur ou swapper. Son rôle est de permuter les processus placés en mémoire et ceux qui, faute de place, ont été temporairement entreposés sur le disque. Ces permutations ne peuvent toutefois pas être trop fréquentes pour ne pas gaspiller la bande passante des disques.
3. L'ordonnanceur à court terme aussi appelé dispacher, répartiteur ou ordonnanceur du processeur choisit à quel processus sera alloué le processeur et pour quel laps de temps. Ces commutations des processus sont très fréquentes.
Les états d'un processus Les processus, puisqu'ils sont concurrents et doivent se partager le processeur, ne peuvent être continuellement actifs. Ils ont donc, si on ne considère pour commencer que l'ordonnancement à court terme, trois niveaux fondamentaux et quatre transitions possibles. Elu signifie en cours d'exécution. L'exécution n'est interrompue que par les conditions suivantes : Transition 1 : Le processus se bloque, faute de données pour l'alimenter ou en attendant une opération d'entrée/sortie.Transition 2 : Le processus est interrompu soit parce que la tranche de temps qui lui est impartie est achevée soit parce qu'un processus de plus haute priorité réquisitionne le processeur. L'état Prêt est un état provisoire pour permettre aux autres processus de s'exécuter quasi simultanément. L'état Bloqué est un état d'attente d'un événement extérieur, tel tel que l'acquisition de données nécessaires à la poursuite de l'exécution du processus.
Ajoutons deux états qui correspondent à l'ordonnancement à long terme : les états " Nouveau " et " Terminé ". Nouveau : le processus vient d'être créé mais n'existe pas encore qu'à l'état de requête de processus en attendant d'être admis par le scheduler en tant que processus activable. Terminé : le processus est désormais inactif car il a achevé sa tâche. Il sera détruit prochainement par le système d'exploitation pour libérer de la place en mémoire. Il est parfois conservé pendant un temps à l'état terminé en attendant qu'une entrée/sortie s'achève ou que les données de ce processus soient exploitées par un autre. On parle alors de processus " zombie". Pour être complet il faut aussi envisager les états permutés qui résultent de l'ordonnancement à moyen terme. Le swapper range les processus prêts ou bloqués sur le disque ou en mémoire.
Permuté-Prêt : le processus est pour l'instant transcrit en mémoire auxiliaire (sur disque). Il serait prêt à être activé par l'ordonnanceur à court terme s'il était en mémoire principale. La permutation de mémoire dépend de l'ordonnanceur à moyen terme. Permuté-Bloqué : c'est l'état d'un processus qui étant bloqué en attendant un événement externe à été transféré sur disque pour faire de la place en mémoire principale.
L'ordonnancement des processus Les processus concurrents se partagent le processeur, la mémoire, les fichiers et les entrées/sorties. - Dans les systèmes anciens et les systèmes d'exploitation pas vraiment multitâches tels que Windows 9x, l'ordonnancement était de type non préemptif. L'ordonnanceur n'intervenait que lorsque le processus en cours se terminait, se bloquait ou se montrait assez coopératif pour volontairement rendre la main à l'ordonnanceur.. Ce système assez sommaire convient aux traitements par lots quand le temps de réponse n'a que peu d'importance. - Actuellement, sur les systèmes interactifs multitâches et parfois même multi utilisateurs, l'ordonnancement doit être préemptif. L'ordonnanceur ne peut laisser un processus monopoliser les ressources du système et réquisitionne régulièrement le processeur pour en répartir la disponibilité entre les processus qui simultanément sont prêts à être exécutés.La politique suivie pour déterminer la manière d'ordonnancer les processus est fonction de nombreux critères parfois contradictoires. Le fait de favoriser certaines catégories de tâches peut en léser d'autres.
Critères d'ordonnancement des processus - L'utilisation intensive du processeur Le système perd son efficacité si le processeur est occupé par des processus qui attendent la disponibilité d'une ressource. - L'équité Tous les processus doivent avoir la possibilité d'utiliser le processeur. Nonobstant les priorités parfois indispensables, des processus comparables doivent être traités avec les mêmes égards. - Utilisation équilibrée de l'ensemble des ressources En ne tenant compte que de l'utilisation optimale du CPU, on risque de sous-utiliser momentanément d'autres ressources que les processus devront se disputer ensuite. Une bonne stratégie consiste donc à évaluer et à bien répartir l'emploi de l'ensemble des ressources. Les objectifs cités ci-dessus sont difficilement mesurables. Il faut, pour bien faire, trouver des critères qui permettent de chiffrer l'efficacité d'une politique d'ordonnancement.Les trois suivants s'appliquent plus particulièrement aux systèmes de traitement par lots - Le nombre de processus par unité de temps Ce critère dépend cependant de la longueur des processus. - La durée de rotation C'est le délai moyen entre l'admission du processus et la fin de son exécution.
- Le temps d'attente C'est le temps moyen qu'un processus passe à attendre. Il s'obtient en soustrayant la durée d'exécution du processus de sa durée de rotation. Cette durée est indépendante de la durée d'exécution du processus lui-même. D'autres critères qui ne s'appliquent qu'aux systèmes interactifs : - Le temps de réponse C'est la vitesse de réaction aux interventions extérieures. Les programmes d'avant-plan doivent pour cela avoir priorité sur les tâches de fond. - La prévisibilité Un système qui d'habitude réagit rapidement aux commandes mais qui parois prend un temps beaucoup plus long sera perçu comme moins stable que s'il répondait à chaque fois dans un temps comparable même s'il est globalement plus lent. Le système semblera aussi plus convivial s'il respecte l'idée parfois fausse que les utilisateurs se font de la complexité des tâches.
Algorithmes d'ordonnancement " scheduling algorithms" FCFS - Fist-come First-served = Premier arrivé / Premier servi Les jobs attendent dans une file. Le premier arrivé est admis immédiatement et s'exécute tant qu'il n'est pas bloqué ou terminé. Lorsqu'il se bloque, le processus suivant commence à s'exécuter et le processus bloqué va se mettre au bout de la file d'attente.C'est typiquement un algorithme non préemptif.Avantages : l'algorithme est simple (c'est une simple liste chaînée), l'ordonnancement est équitable.Inconvénient : Le processus qui utilise davantage de temps est favorisé par rapport à ceux qui font beaucoup d'appels aux entrées/sorties. SJF - Shorted Job First = le job le plus court d'abord Sera élu, le processus dont on suppose que le traitement sera le plus court. Si quatre jobs ont des durées d'exécution a, b, c et d ; le premier se termine à l'instant a, le second à l'instant a+b et ainsi de suite. La durée de rotation moyenne est de(4a + 3b + 2c + d)/4Le premier job exécuté contribue donc beaucoup plus que les autres à la durée moyenne. Il est donc normal d'exécuter le plus court en premier lieu. (C'est ce qui se passe quand à la caisse d'une grande surface les clients laissent passer devant quelqu'un qui n'a qu'un article )Inconvénient : les jobs les plus courts sont favorisés. Si des processus courts arrivent sans cesse, les processus plus longs n'auront jamais le temps de s'exécuter
SRT - Shorted Remaining Time = l'algorithme du temps restant le plus court C'est la version préemptive de l'algorithme précédent.( Cette fois le client qui n'a qu'un article vient carrément interrompre la caissière. Non mais ! ) RR - Round Robin = L'algorithme du tourniquet Chaque processus reçoit tour à tour un intervalle de temps appelé quantum. Au terme de ce quantum ou, si le processus s'achève ou se bloque avant cet instant, l'ordonnanceur attribue directement le processeur au processus suivant. L'algorithme est simple et équitable. C'est généralement cet ordonnancement circulaire qui est utilisé dans les systèmes à temps partagé. La valeur du quantum est couramment fixée aux alentours de 20 à 50 ms. Des quanta plus courts provoqueraient trop de commutations de processus et la proportion du temps consacré à ces changements de contexte deviendrait trop importante.Si par contre, on optait pour des quanta plus longs, ce seraient les temps de réponse aux processus interactifs qui en pâtiraient.
L'ordonnancement avec priorité Une valeur de priorité est assignée à chaque processus.La priorité peut être fonction d'un ordre de préséance entre utilisateurs ou fonction des caractéristiques des processus. Un processus temps réel sera par exemple prioritaire par rapport à une tâche de fond.La priorité peut varier dynamiquement. Exemple : pour ne pas encombrer la mémoire avec des processus qui passent le plus clair de leur temps à attendre des entrées/sorties, on leur accorde une priorité d'autant plus grande qu'ils ne consomment qu'une petite fraction de leur quantum. Supposons que la valeur du quantum est fixée à 50 ms. Un processus qui n'utilise que 1 ms avant d'être bloqué aurait droit à une priorité de 50 ms/ 1 ms = 50 tandis qu'un processus qui se bloque au bout de 25 ms a droit à une priorité de 50/25=2 et les processus qui consomment tout le quantum ont une priorité de 1.