Brevet FR2990782A1 — publié le 20131122

La présente invention concerne un procédé de gestion d'une exécution de tâches par un système informatique. Par tâche, on entend un programme ou une partie de programme enregistré dans une mémoire du système informa- tique pour être exécuté par un processeur dudit système. La gestion de l'exécution des tâches est généralement confiée à un ordonnanceur qui est un programme informatique du système d'exploitation chargé d'assurer la bonne exécution des tâches. L'ordonnanceur est par exem- ple un ordonnanceur temps réel. Dans certaines applications, les systèmes informatiques doivent assurer l'exécution d'un certain nombre de tâches ayant des durées, des priorités et des critici- tés différentes. Ceci est particulièrement compliqué lorsque doivent cohabiter des tâches critiques devant être exécutées à des moments précis et des tâches non critiques ayant des durées relativement longues. En outre, certaines tâches ont des durées d'exécution varia- bles. Une solution serait de prévoir au sein du système informatique plusieurs processeurs dédiés à l'exécution de certaines tâches. Cette solution est cependant très coûteuse et nécessite, pour être fiable, de sous-employer les différents processeurs. Une autre solution serait de diviser les tâches de durée importante en sous-tâches de telle manière qu'une tâche critique puisse être exécutée entre deux sous-tâches. Ceci impose toutefois d'importantes contraintes de conception logicielle et complique consi- dérablement les opérations de modification des tâches. De plus, ceci ne résout pas le problème des tâches dont la durée est variable. La solution la plus couramment employée est d'assurer un partitionnement temporel de manière à défi- nir une succession de périodes d'exécution dont certaines peuvent être réservées à l'exécution des tâches les plus critiques. Les tâches sont alors exécutées quand elles sont le plus prioritaire. Toutefois, là encore, la ges- tion de l'exécution des tâches dont la durée d'exécution est variable s'avère délicate. Dans les systèmes classiques, il est défini des pas (ou fenêtres temporelles) de calcul pendant lesquels les tâches sont exécutées. Lorsque l'exécution d'une tâ- che est achevée avant la fin du pas de calcul, la tâche conserve la main et rentre dans une boucle non fonctionnelle. La boucle non fonctionnelle sera interrompue à la fin du pas de calcul lorsque l'ordonnanceur reprendra la main pour lancer l'exécution d'une autre tâche. Lorsque l'exécution d'une tâche n'est pas achevée à la fin du pas de calcul, l'ordonnanceur reprend la main pour lancer un algorithme de traitement d'erreur. Le recours au traitement d'erreurs est un processus coûteux en temps et en ressources. Un but de l'invention est de fournir un moyen permettant de mieux gérer l'exécution des tâches tout en assurant un contrôle temporel sur celles-ci. A cet effet, on prévoit, selon l'invention, un procédé de gestion d'une exécution de tâches par au moins une unité de traitement d'un système informatique, l'unité de traitement fonctionnant selon des pas de calcul, le procédé comprenant les étapes de : - associer à chaque tâche des caractéristiques d'exécution temporelle, les caractéristiques d'exécution temporelle comportant un indicateur de possibilité de dé- terminer a priori une date théorique de fin d'exécution dans un mode nominal d'exécution et un indicateur de possibilité d'un mode étendu d'exécution au-delà de la date théorique de fin d'exécution ; - lorsqu'une tâche est en cours d'exécution à la date théorique de fin d'exécution, lancer un algorithme de poursuite d'exécution en cas de présence de l'indicateur de possibilité de mode étendu ou lancer un algorithme de traitement d'erreur en cas d'absence de cet indicateur. Par ce procédé, il est apporté une amélioration au partitionnement temporel en mettant en place un déterminisme temporel des tâches. Ceci permet de gérer au mieux les débordements, sans risquer d'interrompre une tâche qui aurait dépassé sa date théorique de fin d'exécution alors même qu'aucune tâche plus prioritaire ne doit être exécutée à la suite de la tâche en cours d'exécution. Le mode étendu d'exécution permet ainsi l'achèvement de la tâche alors qu'une interruption et un traitement d'erreur auraient nécessité de réaliser à nou- veau la tâche ultérieurement. En outre, l'interruption de la tâche peut avoir des conséquences dommageables par exemple dans le cas où le système informatique gère le fonctionnement d'une machine telle qu'un véhicule. Ceci permet également de limiter le recours au traitement d'erreurs. Selon différents algorithmes d'exécution en mode étendu : - l'exécution est poursuivie au-delà de la date théorique de fin jusqu'à ce que la tâche se termine ef- fectivement. - l'exécution est poursuivie jusqu'à une date prédéterminée et qu'un algorithme de traitement d'erreur est lancé si l'exécution n'est pas achevée à cette date prédéterminée. - un nombre d'exécutions déjà réalisées en mode étendu est mémorisé pour chaque tâche et l'exécution est poursuivie en mode étendu si le nombre d'exécutions est inférieur à un seuil, un algorithme de traitement d'erreur est lancé dans le cas contraire. Avantageusement, plusieurs algorithmes de poursuite d'exécution en mode étendu sont mémorisés et les caractéristiques d'exécution temporelle comportent un identifiant d'un des algorithmes de poursuite d'exécution. D'autres caractéristiques et avantages de l'invention ressortiront à la lecture de la description qui suit de modes de mise en oeuvre particuliers non limitatifs de l'invention. Il sera fait référence à la figure unique annexée représentant schématiquement un système informatique pour la mise en oeuvre du procédé de l'invention. En référence à la figure, le procédé de l'invention est mis en oeuvre sur un système informatique, généralement désigné en 10, comprenant, de manière connue en elle-même, une unité de traitement 1 pourvue d'au moins un processeur, une mémoire morte 2, une mémoire vive 3 et des périphériques d'entrée et sortie 4. La mémoire morte 2 contient un programme d'exploitation OS (ou en anglais « operating system ») agencé pour assurer le fonctionnement du système informatique, et des programmes d'application AP, AP' agencés pour réaliser des tâches comme des calculs ou autres traitements pour fournir des données qui seront exploi- tées hors du système informatique. Les différents pro- grammes sont chargés en mémoire vive 3 pour permettre leur exécution par l'unité de traitement. Le système d'exploitation OS assure le partage des ressources du système informatique entre les diffé- rents programmes en cours d'exécution et gère l'échange des données entre les différents composants tant matériels que logiciels du système informatique 10. Le système d'exploitation OS assure ainsi le partage de l'unité de traitement 1 entre les différentes tâches à exécuter. Ce partage est ici assuré par un ordonnanceur qui affecte aux différentes tâches à exécuter des fenêtres temporelles d'accès à l'unité de traitement. On parle usuellement de « time slots » ou de pas de calcul. L'ordonnanceur est programmé pour mettre en oeuvre 5 le procédé, conforme à l'invention, de gestion de l'exécution des tâches par l'unité de traitement 1 du système informatique 10. Selon le procédé de l'invention, des caractéris- tiques d'exécution temporelle sont associées à chaque tâ- 10 che. Les caractéristiques d'exécution temporelle comportent : - un indicateur d'une possibilité de gestion de la tâche par l'ordonnanceur du système informatique 10 15 (le procédé de l'invention est ici sans effet sur les tâ- ches qui ne sont pas gérées par l'ordonnanceur) ; - un indicateur d'une possibilité de déterminer a priori une date théorique de début d'exécution ; - un indicateur de possibilité de déterminer a 20 priori une date théorique de fin d'exécution de la tâche dans un mode nominal d'exécution ; - un indicateur d'une possibilité d'un mode étendu d'exécution de la tâche au-delà de la date théorique de fin d'exécution ; 25 - un indicateur d'absence de limite temporelle d'exécution ; - un indicateur d'une possibilité d'interruption de l'exécution de la tâche, la tâche interruptible ne continuant d'être exécutée que si elle a la priorité la 30 plus forte des tâches demandant une exécution ; - un indicateur d'une possibilité de modifier les caractéristiques d'exécution temporelle, cet indicateur de possibilité de modifier les caractéristiques d'exécution temporelle précisant si la modification est 35 réalisable par un élément du système informatique ou une autre tâche en cours d'exécution (une telle modification permet par exemple d'adapter les caractéristiques d'exécution temporelle à de nouvelles conditions de fonctionnement). Les caractéristiques d'exécution temporelle sont par exemple codées sur des nombres hexadécimaux par exemple de quatre bits chacun. A titre d'exemple, on prévoit que les caractéris- tiques d'exécution temporelle comprennent le nombre com- posé des chiffres a, b, c, d dont les valeurs sont égales soit à 0 soit à 1 selon le tableau suivant : a b c D 0 Gérée par l'ordonnanceur Date de dé- but déter- ministe Date de fin détermi- niste Non interruptible 1 Non gérée par l'ordonnanceur Date de dé- Date de fin non déterministe Interruptible but non dé- terministe Par déterministe, on entend que la date théorique de début ou de fin peut être calculée avant le lancement de l'exécution de la tâche. Ainsi, toutes les tâches cy- cliques ou semi-cycliques ont des dates de début déterministes même si elles sont tout de suite préemptées par une tâche plus prioritaire. En revanche, les tâches acycliques (dont l'exécution est lancée par d'autres tâches ou en fonction d'évènements externes) ont des dates de début non déterministes. En mode de fonctionnement nominal, l'exécution de la tâche la plus prioritaire est lancée par l'ordonnanceur à un pas de calcul donné et la tâche est terminée au pas de calcul correspondant à la date théori- que de fin de la tâche. L'ordonnanceur peut alors reprendre la main et lancer l'exécution de la tâche la plus prioritaire suivante. Au besoin, si l'exécution de la tâ- che est achevée avant le pas de calcul correspondant à la date théorique de fin de la tâche, la tâche rentre dans une boucle sans fin non fonctionnelle jusqu'à ce que l'ordonnanceur reprenne la main. Lorsqu'une tâche est en cours d'exécution à la date théorique de fin d'exécution, plusieurs cas se présentent. Les caractéristiques d'exécution temporelle ne comportent pas d'indicateur de possibilité d'interruption : l'exécution de la tâche se poursuit jus- qu'à ce qu'elle soit terminée. Les caractéristiques d'exécution temporelle com- portent un indicateur de possibilité d'interruption mais pas d'indicateur d'une possibilité de déterminer a priori une date théorique de fin d'exécution : la tâche est in- terrompue pour lancer l'exécution d'une tâche plus prioritaire s'il en existe une en attente d'exécution. Les caractéristiques d'exécution temporelle com- portent un indicateur de possibilité de déterminer a priori une date théorique de fin d'exécution de la tâche dans un mode nominal d'exécution mais pas d'indicateur d'une possibilité d'un mode étendu d'exécution de la tâche au-delà de la date théorique de fin d'exécution : un algorithme de traitement d'erreur est lancé par l'ordonnanceur. Les caractéristiques d'exécution temporelle comportent un indicateur de possibilité de déterminer a priori une date théorique de fin d'exécution de la tâche dans un mode nominal d'exécution et un indicateur d'une possibilité d'un mode étendu d'exécution de la tâche au- delà de la date théorique de fin d'exécution : le procédé comprend l'étape de lancer un algorithme de poursuite d'exécution. Selon un premier mode de mise en oeuvre, 35 l'algorithme d'exécution prévoit que l'exécution est poursuivie au-delà de la date théorique de fin jusqu'à ce que la tâche se termine effectivement. Selon un deuxième mode de mise en oeuvre, l'algorithme d'exécution prévoit que l'exécution est poursuivie jusqu'à une date prédéterminée et qu'un algo- rithme de traitement d'erreur est lancé si l'exécution n'est pas achevée à cette date prédéterminée. Ladite date prédéterminée est propre à chaque tâche et dans ce cas de préférence enregistrée dans les caractéristiques d'exécution temporelle. Selon un troisième mode de mise en oeuvre, le procédé comprend l'étape de mémoriser pour chaque tâche un nombre d'exécutions déjà réalisées en mode étendu et l'algorithme d'exécution prévoit que l'exécution est poursuivie en mode étendu si le nombre d'exécutions est inférieur à un seuil. Un algorithme de traitement d'erreur est lancé si le nombre d'exécutions a atteint ledit seuil. De préférence dans ce mode de mise en oeuvre, le seuil figure parmi les caractéristiques d'exécution tem- porelles de la tâche en question. Ceci permet d'adapter le seuil à la tâche à réaliser, sa robustesse, sa criticité_ De préférence encore dans ce mode de mise en oeu- vre, le nombre d'exécutions déjà réalisées en mode étendu pour la tâche concernée est réinitialisé en cas de surve- nance d'un évènement prédéterminé. L'évènement prédéterminé est par exemple une exécution complète de ladite tâche avant la date théorique de fin d'exécution, un redé- marrage du système informatique, un signal sur une entrée du système informatique_ Dans un quatrième mode de mise en oeuvre, il est prévu plusieurs algorithmes d'exécution en mode étendu mémorisés et les caractéristiques d'exécution temporelle 35 comportent un identifiant d'un des algorithmes d'exécution qui sera lancé en cas de poursuite de l'exécution à la date théorique de fin d'exécution. Dans ce quatrième mode de mise en oeuvre, on prévoit par exemple que les algorithmes d'exécution des pre- mier, deuxième et troisième modes de mise en oeuvre sont mémorisés dans la mémoire morte 2 et les données personnelles des tâches susceptibles d'une exécution en mode étendu comportent un identifiant de l'algorithme à exécuter en mode étendu. Bien entendu, l'invention n'est pas limitée aux modes de mise en oeuvre décrits mais englobe toute variante entrant dans le champ de l'invention telle que définie par les revendications. En particulier, le procédé de l'invention peut être mis en oeuvre à partir d'autres caractéristiques d'exécution temporelle que celles mentionnées dans la description ci-dessus. D'autres algorithmes d'exécution en mode étendu sont envisageables, de même que d'autres seuils ou para- mètres de ceux-ci. REVENDICATIONS1. Procédé de gestion d'une exécution de tâches par au moins une unité de traitement d'un système infor- matique, l'unité de traitement fonctionnant selon des pas de calcul, le procédé comprenant les étapes de : - associer à chaque tâche des caractéristiques d'exécution temporelle, les caractéristiques d'exécution temporelle comportant un indicateur de possibilité de dé- terminer a priori une date théorique de fin d'exécution dans un mode nominal d'exécution et un indicateur de possibilité d'un mode étendu d'exécution au-delà de la date théorique de fin d'exécution ; - lorsqu'une tâche est en cours d'exécution à la date théorique de fin d'exécution, lancer un algorithme de poursuite d'exécution en cas de présence de l'indicateur de possibilité de mode étendu ou lancer un algorithme de traitement d'erreur en cas d'absence de cet indicateur. 2. Procédé selon la revendication 1, dans lequel l'algorithme d'exécution prévoit que l'exécution est poursuivie au-delà de la date théorique de fin jusqu'à ce que la tâche se termine effectivement. 3. Procédé selon la revendication 1, dans lequel l'algorithme d'exécution prévoit que l'exécution est poursuivie jusqu'à une date prédéterminée et qu'un algorithme de traitement d'erreur est lancé si l'exécution n'est pas achevée à cette date prédéterminée. 4. Procédé selon la revendication 1, comprenant l'étape de mémoriser pour chaque tâche un nombre d'exécutions déjà réalisées en mode étendu et dans lequel l'algorithme d'exécution prévoit que l'exécution est poursuivie en mode étendu si le nombre d'exécutions est inférieur à un seuil et qu'un algorithme de traitement d'erreur est lancé dans le cas contraire. 5. Procédé selon la revendication 4, dans lequel le seuil figure parmi les caractéristiques d'exécution temporelle. 6. Procédé selon la revendication 4, dans lequel le nombre d'exécutions déjà réalisées en mode étendu pour au moins une des tâches est réinitialisé en cas de survenance d'un évènement prédéterminé. 7. Procédé selon la revendication 6, dans lequel l'évènement est une exécution complète de ladite tâche avant la date théorique de fin d'exécution. 8. Procédé selon la revendication 1, dans lequel plusieurs algorithmes d'exécution en mode étendu sont mémorisés et en ce que les caractéristiques d'exécution temporelle comportent un identifiant d'un des algorithmes d'exécution qui sera lancé en cas de poursuite de l'exécution à la date théorique de fin d'exécution. 9. Procédé selon la revendication 1, dans lequel les caractéristiques d'exécution temporelle d'au moins une des tâches comprennent un indicateur d'absence de li- mite temporelle d'exécution, l'exécution de ladite tâche étant interruptible. 10. Procédé selon la revendication 1, dans lequel les caractéristiques d'exécution temporelle d'au moins une des tâches comprennent un indicateur d'absence de li- mite temporelle d'exécution, l'exécution de ladite tâche n'étant pas interruptible. 11. Procédé selon la revendication 1, dans lequel les caractéristiques d'exécution temporelle d'au moins une des tâches comprennent un indicateur de possibilité d'interruption de l'exécution de ladite tâche et, une priorité étant affectée à chaque tâche, le procédé comprend l'étape d'interrompre une tâche dont les caractéristiques d'exécution temporelle comprennent un indicateur de possibilité d'interruption pour exécuter une tâ- che plus prioritaire. 12. Procédé selon la revendication 1, dans lequel les caractéristiques d'exécution temporelle d'au moins une des tâches comprennent un indicateur de possibilité de déterminer a priori une date théorique de début d'exécution. 13. Procédé selon la revendication 1, dans lequel les caractéristiques d'exécution temporelle d'au moins une des tâches comprennent un indicateur de possibilité de modifier les caractéristiques d'exécution temporelle. 14. Procédé selon la revendication 1, dans lequel l'indication de possibilité de modifier les caractéristiques d'exécution temporelle précise si cette modification est réalisable par un élément du système informatique ou une autre tâche en cours d'exécution. 15. Procédé selon la revendication 1, dans lequel les caractéristiques d'exécution temporelle d'au moins une des tâches comprennent un indicateur d'une possibilité de gestion de la tâche par un ordonnanceur du système informatique.