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
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/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.
3/9
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:
A l'instant t=5, les tches T1 T4 sont en attente. L'assignation produite par l'algorithme PCTE est
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.
5/9
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.
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.
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.
7/9
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".
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
9/9