Vous êtes sur la page 1sur 9

ORDONNANCEMENT DE L'UNITE DE TRAITEMENT

1. OBJECTIFS ................................................................................................................................................................. 2 2. ASSIGNATIONS ET DIAGRAMMES DE GANTT ................................................................................................. 2 3. ALGORITHMES SANS RQUISITION ................................................................................................................... 4 3.1. ORDONNANCEMENT DANS L'ORDRE D'ARRIVE (FIFO) ........................................................................................ 4 3.2. PLUS COURT TEMPS D'EXCUTION (PCTE)......................................................................................................... 4 4. ALGORITHMES AVEC RQUISITION ................................................................................................................... 6 4.1. TOURNIQUET (ROUND ROBIN)............................................................................................................................... 6 4.2. PLUS COURT TEMPS D'EXCUTION RESTANT (PCTER) ..................................................................................... 6 4.3. ALGORITHMES AVEC PRIORIT............................................................................................................................... 7 5. CARACTRISTIQUES ET CLASSIFICATION D'UN TRAVAIL ......................................................................... 7 APPLICATION - PROGRAMME SE_BATCH .......................................................................................................... 8

Thao LE

Ordonnancement de lUnit de Traitement

Novembre 2003

1. Objectifs
L'intrt de la multiprogrammation est non seulement d'obtenir le meilleur taux d'utilisation du processeur mais aussi le meilleur temps de rponse du systme. Le rle de l'ordonnancement est d'optimiser un certain nombre de critres: taux d'utilisation de l'unit centrale nombre de programmes utilisateurs traits en moyenne par unit de temps temps de traitement moyen pour chaque tche temps de traitement total temps de rponse maximum (temps entre la soumission d'une tche et son accomplissement)

Il s'agit ici d'utiliser l'unit centrale de manire optimale en garantissant le meilleur temps de rponse pour l'ensemble des tches ainsi qu'un partage quitable. L'unit centrale peut excuter les tches dans un certain ordre connu priori dans le cas de tches synchronises ou dans un ordre tablir dans le cas de tches indpendantes. Toutes les tches effectuer ne sont pas forcment connues en mme temps. Chaque tche Ti est connue du systme un temps ti. Remarquons que la dure Di d'une tche Ti n'est pas connue exactement priori. Lorsqu'on parle de dure d'une tche, il s'agit d'une dure prvisionnelle, suppose ou estime.

2. Assignations et diagrammes de Gantt


A un systme de tches correspond une description de l'excution des tches par le (ou les) processeurs(s) appele assignation. Une assignation respecte le graphe de prcdence si il en existe un. Le diagramme de Gantt est utilis pour reprsenter une assignation. A partir du tableau des tches et du graphe de prcdence ci-dessous

Nous avons le diagramme de Gantt suivant pour 2 processeurs:

Ordonnancement de lUnit de Traitement

2/9

Diffrents algorithmes d'ordonnancement existent. Les algorithmes avec rquisition permettent l'interruption d'une tche pendant son excution, ceci implique le dcoupage des tches en tranche. Nous nous intressons au temps moyen d'une tche. Soient deux tches T1 et T2 excutes par un seul processeur, les diagrammes de Gantt sans rquisition et avec rquisition sont les suivants:

Dans le diagramme sans rquisition, le temps de rponse moyen est [5+(6-2)] / 2 soit 4,5. Dans le diagramme avec rquisition, il devient [6 + (3-2)] /2 soit 3,5. La rquisition permet d'excuter voire de terminer les petites tches qui surviennent pendant l'excution de la tche courante, ceci est particulirement intressant lorsque la tche en cours d'excution est longue.

Ordonnancement de lUnit de Traitement

3/9

3. Algorithmes sans rquisition


3.1. ORDONNANCEMENT DANS L'ORDRE D'ARRIVEE (FIFO)
A un instant donn, la tche activer est la tche la plus vieille dans la file d'attente. Cet algorithme permet de prendre en compte naturellement toutes les tches activer les unes aprs les autres.

Temps moyen = [30 + 35 + 37 ] /3 = 34 Ici les 3 tches arrivent presque en mme temps et dans un ordre dfavorable. La tche la plus longue est excute en premier et les 2 autres tches attendent longtemps. Il est vident que l'ordre suivant aurait permis de ramener le temps moyen [2 + 7 + 37] / 3 soit 15,3:

3.2. PLUS COURT TEMPS D'EXECUTION (PCTE)


Cet algorithme permet d'viter de dmarrer la tche la plus longue en premier. Les tches sont ordonnes par temps d'excution croissant: la tche ayant le plus court d'excution d'abord.

A l'instant t=5, les tches T1 T4 sont en attente. L'assignation produite par l'algorithme PCTE est

Ordonnancement de lUnit de Traitement

4/9

Le temps moyen est [ (8-4) + (13-2) + (23-0) + (38-3) ] / 4 soit 18,25. Linstant ti au cours duquel le systme prend connaissance dune tche intervient dans le calcul du temps de rponse moyen. Lorsque toutes les tches sont connues, cet algorithme donne le meilleur temps moyen. Cette situation nest toutefois pas raliste car des tches excuter peuvent se prsenter au cours de lassignation. Exemple :

A linstant t=0, seules les tches T1 et T2 sont connues. Lassignation produite par lalgorithme PCTE (t=0 puis t=11) donne :

Temps moyen = [ (5-0) +(11-0) +(12-5) ] / 3 = 7,66. Une rvaluation de l'ordonnancement la fin d'excution de la tche courante (T1 au temps t=5) donnerait :

Temps moyen = [ 5 +1 +12 ] / 3 = 6 Cet algorithme n'est pas utilis dans la pratique. En effet si des tches de dures prvisionnelles infrieures 6 units se prsentent rgulirement, elles empcheront la tche T2 de s'excuter en passant devant elle. La tche T2 risque de ne jamais passer. Dans l'algorithme FIFO les tches les plus longues pnalisent le systme quand elles passent en premier. Dans l'algorithme PCTE, les tches les plus brves sont favorises et les tches les plus longues ont un temps de rponse trs mauvais.

Ordonnancement de lUnit de Traitement

5/9

4. Algorithmes avec rquisition


Afin de rendre plus quitable le partage du temps CPU, on excute les tches tour de rle. Le laps de temps minimal rserv pour l'excution partielle d'une tche s'appelle le quantum. Il s'agit d'une unit de temps assez petite pour permettre le dcoupage des tches. Sa dure est plus grande que le temps de commutation des tches. Une nouvelle tche entre en excution lorsque la tche en cours a consomm son quantum de temps (interruption) ou bien se termine (fin de tche).

4.1. TOURNIQUET (ROUND ROBIN)


La technique du tourniquet tablit une liste des tches excuter puis excute tour de rle partiellement les tches les unes aprs les autres selon cet ordre. Exemple :

Temps moyen est [ 31+12+6 ] /3 = 16,33 Un quantum petit donne un meilleur temps de rponse. Il ne doit pas tre trop petit, car le temps de commutation des tches n'est plus ngligeable et pnalisera fortement le fonctionnement du systme. Avec un quantum lev (par exemple 10 units), le temps de rponse est moins bon: [31+15+17] /3 = 21.

Cet algorithme trs quitable permet toutes les tches de se terminer en un temps fini.

4.2. PLUS COURT TEMPS D'EXECUTION RESTANT (PCTER)


Cet algorithme gnralise l'algorithme PCTE. A la fin de chaque quantum (suppos gale 1), la tche ayant le plus petit temps d'excution restant est candidate au CPU. Exemple:

Ordonnancement de lUnit de Traitement

6/9

La mme remarque que pour l'algorithme PCTE s'applique: les tches les plus longues sont dfavorises et risquent de ne jamais se terminer.

4.3. ALGORITHMES AVEC PRIORITE


Un systme de priorit diffrent que ceux prsents ci-dessus (FIFO, tourniquet, PCTER, etc) peut tre mis en place en fonction de diffrents critres d'ligibilit au CPU: occupation mmoire centrale, temps CPU consomm, temps horloge coul, temps d'excution restant, etc. Les priorits sont dynamiques c'est dire recalcules la fin de chaque quantum. Si les priorits taient statiques (calcules une fois pour toutes), alors pareillement aux algorithmes PCTE ou PCTER, les tches les moins prioritaires vont laisser passer devant elles les tches les plus prioritaires et risquent de ne jamais se terminer.

5. Caractristiques et classification d'un travail


Un dcoupage des tches dans diffrentes classes de travaux permet de garantir l'excution d'ensembles de tches de nature diffrentes: temps demand lev ou non, grande occupation mmoire ou non, etc. Diffrents critres permettent de sparer les travaux en classes d'exploitation: nature de l'application (mise au point, codes numriques, travaux de gestion, temps rel, etc) taux prvisionnel d'utilisation des ressources (temps CPU, mmoire centrale, priphriques non partageables, etc) priorit de planification des travaux.

L'ordre de traitement des travaux n'est pas forcment celui dans lequel les travaux sont dposs au centre de calcul ou dans la file d'attente. Le responsable du centre de calcul peut dfinir des trains particuliers (trains de nuit par exemple) pour les travaux de longues dures de faon rduire le temps de rponse de l'interactif ou des autres trains de travaux. Exemple:

(*) en gnral chaque commande interactive (process) a une limitation en temps CPU et en occupation mmoire.

Ordonnancement de lUnit de Traitement

7/9

APPLICATION - Programme SE_BATCH


Le programme SE_BATCH permet la simulation d'un traitement Batch. Les caractristiques connues d'un job sont le temps prsum d'excution et l'occupation de la mmoire centrale. Chaque job consomme exactement le temps demand et occupe exactement le maximum de mmoire demand. Dans la ralit, il en va tout autrement. Un job peut finir avant pour de multiples raisons et la taille de la mmoire occupe peut varier en cours d'excution. La mmoire centrale simule est compose de 5 cases mmoires. Les jobs soumis occupent 1 ou 2 cases contigus. Un job demandant 3 cases ou plus est rejet. Une limitation du temps d'excution a t fix 500 units CPU. Les tats possibles d'un job sont:

Un job est swapp pour laisser sa place en mmoire centrale un autre job. Ceci permet d'excuter plus de jobs en parallle. Dans le programme SE_BATCH, le "swapping" n'est pas pris en compte. Le schma se simplifie donc. Au dbut un job est donc en MS et attend de rentrer en excution (en MC). Il peut tre suspendu par une intervention de l'oprateur (groupe d'exploitation) et ceci a pour consquence de privilgier les autres jobs en comptition. La possibilit de tuer (kill) un job n'a pas t prise en compte. Lorsque le programme SE_BATCH met un job en MS (mmoire secondaire simule) il n'y a pas forcment une image de ce job simul dans la vraie mmoire secondaire. On a choisi dans le modle prsent d'avoir en MS relle les jobs en attente (fichiers .JOB) ainsi que les jobs finis (fichiers .LST). L'arrt du programme SE_BATCH est quivalent l'arrt de l'exploitation simule. En principe tous les jobs doit tre sauvs en mmoire secondaire simule et donc ici forcment en MS relle. Si la possibilit de "swapping" avait t programm, on aurait choisi de mettre l'image (core) du job swapp en MS vraie de telle manire qu'un arrt suivi d'une nouvelle excution du simulateur SE_BATCH puisse reprendre ces jobs swapps l o ils taient (relecture de fichiers .SWP). Dans la version actuelle, l'arrt puis la reprise du programme SE_BATCH reprend les jobs leur dbut (en principe et dans la ralit tous les jobs ne s'y prtent pas moins d'avoir t prvus pour car il faut prendre en compte les E/S et des mises jour des fichiers). L'algorithme d'ordonnancement est de type "tourniquet". Un quantum de temps d'une unit CPU est donn tour tour chaque job actif en mmoire centrale simule. Afin d'avoir un comportement qui se rapproche de la ralit dans laquelle: un job consomme du CPU, fait des E/S ou bien de manire plus gnrale fait consommer du CPU au systme, on a choisi un modle probabiliste dans lequel le job consomme soit CPU "user" soit du CPU 'systme".

Ordonnancement de lUnit de Traitement

8/9

Le programme SE_BATCH prsente l'cran une image des jobs en excution. Cette image volue pour rendre compte de l'volution des donnes et du compteur ordinal. Bien que le "swapping" n'a pas t pris en compte, l'image des jobs en cours est sauve puis restaure chaque appel de l'interprteur de commande DOS. Le fichier de commande QSUB.BAT permet de mettre un job dans la file d'attente gre par ordre alphabtique. Le script QSUB_ALL.BAT gnre un ensemble de jobs tests. Un compactage de la mmoire centrale a t programm. Lorsque le compactage survient le simulateur passe en mode manuel et permet de voir tape par tape l'volution du compactage. Imaginer un systme de priorit prenant en compte efficacement ce type d'exploitation. Procdures utilises TxCURSOR TxUpCASE GetCMDE GestionBREAK: AFF_TIME EPILOGUE Change_FIC CASE_LIBRE

Cache et fait apparatre le cursor cran Conversion en majuscules d'une chane Lecture d'un caractre Gestion du break Retourne la date et l'heure courante Epilogue systmatique du simulateur Change le suffixe d'un fichier Teste si cases libres, retourne l'adresse MC simule correspondante CASE_LIBRE_COUNT Nombre de cases libres au total CASE_CLEAR Efface une zone MC simule CASE_SAUVE Sauve l'image d'une zone MC simule CASE_RESTO Restauration de l'image sauve CASE_CRUNCH Compactage de la MC simule PROCESS_LIBRE Teste si entre libre dans la table des jobs PROCESS_INIT Dmarrage d'un job, attribution d'une zone MC PROCESS_SAUVE Sauvegarde de toutes les images de jobs PROCESS_RESTO Restauration des images PROCESS_CONFLIT Dtermine si CPU user ou CPU systme PROCESS_WRITE Mise jour de l'image de la MC simule PROCESS_RUN Excution d'un job pour une unit CPU PROCESS_SWITCH Changement en bascule de l'tat actif et suspendu PROCESS_ISOK Retourne vrai si un fichier .JOB n'est pas connu du simulateur ou bien qu'il est connu "en attente" et que de la MC simule est disponible. PROCESS_AJOUT Ajout d'un JOB en attente, lecture des caractristiques avant INIT PROCESS_TRI Tri de la table des processus PROCESS_MAJ Si place disponible en MC : lecture des fichiers en attente NOM.JOB et ajout ventuel en MC simul PROCESS_LISTE Affichage de l'tat des processus l'cran

Ordonnancement de lUnit de Traitement

9/9