FR 3075412 A1 20190621 FR 1701331 A 20171220 Procede et systeme de controle d'ordonnancement de taches logicielles La presente invention concerne un procede de controle d'ordonnancement de taches logicielles a executer dans un contexte applicatif predetermine, et un systeme associe. L'invention se situe dans le domaine de Ia securite des logiciels, et en particulier des services de securite realises par Iogiciel. L'invention s'applique notamment pour Ia securisation des applications logicielles executees sur des dispositifs embarques sensibles, qu'iI s'agisse de dispositifs de communication, par exemple une radio logicielle, ou des dispositifs de commande ou de pilotage. L'invention s'applique egalement dans le domaine du controle commande industriel, et plus generalement dans tout systeme ferme mettant en oeuvre des logiciels predetermines, dans un contexte applicatif predetermine, pour lesquels un niveau sieve de securite d'execution est necessaire. De maniere connue, un dispositif de calcul, en particulier un dispositif embarque, comprend des ressources materielles (ou « hardware » en anglais) qui sont gerees par un systeme d'exploitation qui comprend un noyau executable en mode privilegie. On entend par « mode privilegie » I'anneau de protection de ('architecture d'un processeur, tel que Mini dans l'encyclopedie en ligne Wikipedia, a partir duquel est autorisee Ia configuration des acces aux ressources materielles. Toute application logicielle (« software » en anglais), egalement appelee service, est implementee par des instructions logicielles, c'est-a-dire des instructions de code de programme executable, ('execution par les ressources materielles etant supportee par le systeme d'exploitation. Les applications logicielles sont executees en « mode non privilegie », c'est-à-dire dans un anneau de protection ou elles ne sont pas autorisees a modifier Ia configuration des acces aux ressources materielles du dispositif de calcul. Chaque application logicielle est en general constituee de plusieurs taches effectuer, et un contexte applicatif comporte plusieurs applications logicielles, pouvant s'executer de facon concurrente. Dans un environnement d'execution ferme, pour un contexte applicatif donne, un nombre denombrable de services est propose, et par consequent un nombre denombrable de taches logicielles. Dans une telle situation, notamment lorsque certaines taches logicielles, par exemple des taches logicielles relatives a l'authentification ou au traitement de donnees confidentielles, sont effectuees de maniere concurrente ou successive, ii est necessaire de controler et de securiser l'ordonnancement des Caches. 2 II est par exemple envisageable de rajouter une application logicielle specifique Hee a un tel controle, mais un controle au niveau des applications logicielles est complexe et peu securise, car les applications logicielles qui s'executent en mode non privilegie, representent un volume d'instructions logicielles a valider trop important pour etre 5 apprehende en vue d'atteindre un haut niveau de confiance. II existe donc un besoin d'ameliorer la securite d'ordonnancement et d'execution de taches logicielles dans un contexte applicatif donne. A cet effet, l'invention propose, selon un premier aspect, un procede de contrOle d'ordonnancement de taches logicielles a executer dans un contexte applicatif 10 predetermine, les taches logicielles etant adaptees a etre mises en oeuvre par un dispositif de calcul en mode d'execution non privilegie, le dispositif de calcul comportant des ressources materielles gerees par un systeme d'exploitation a noyau executable en mode d'execution privilegie. Ce procede est mis en oeuvre par ledit noyau du systeme d'exploitation et it effectue un ordonnancement de taches logicielles a executer en 15 fonction d'une structure de configuration prealablement memorisee definissant, pour ledit contexte applicatif donne, au moins un niveau de priorite associe a chaque Cache logicielle dudit contexte applicatif, ainsi que, pour chaque Cache logicielle dudit contexte applicatif, une information relative aux communications autorisees de ladite tache vers une ou plusieurs taches logicielles destinatrices, et, pour ledit contexte applicatif donne, un 20 ensemble d'etats globaux, avec pour chaque etat global, une indication de taches autorisees dans ledit etat, et une indication de transitions autorisees entre etats globaux. Avantageusement, le controle d'ordonnancement est mis en oeuvre par le noyau du systeme d'exploitation, donc s'execute sur un perimetre d'instructions logicielles reduit et en mode privilegie, en fonction d'une structure de configuration prealablement 25 memorisee. Ainsi, la securite d'ordonnancement et d'execution des taches logicielles est augmentee. Le procede de contrOle selon l'invention peut presenter une ou plusieurs des caracteristiques ci-dessous, prises independamment ou en combinaison, selon toutes les combinaisons techniquement acceptables. 30 La structure de configuration est enregistree prealablement A ('execution d'une quelconque desdites Caches logicielles, ledit enregistrement &twit non modifiable. Le procede comporte des etapes de : -reception d'au moins un evenement a traiter, -identification d'au moins une tache logicielle eligible, a executer suite audit au 35 moins un evenement a traiter, 3 -ordonnancement des taches eligibles en fonction du niveau de priorite associe a chaque tache eligible, -selection de Ia tache eligible listee dans une liste de taches eligibles, de priorite la plus elevee et autorisee dans l'etat courant, et execution ou blocage de ('execution de Ia 5 tache eligible selectionnee en fonction de ladite structure de configuration prealablement memorisee. La structure de configuration comprend egalement, pour au moins une pantie des taches, une liste d'au moins un evenement declenchant ladite tache, et ('identification d'au moins une tache logicielle eligible utilise ladite structure de configuration. 10 Dans l'etape d'ordonnancement des taches eligibles, lorsque plusieurs taches ont un merne niveau de priorite, elles sont ordonnancees selon un ordre chronologique d'execution. Pour une tache eligible selectionnee, le procede comporte une verification d'autorisation de communication prealablement memorisee pour ladite Cache eligible 15 selectionnee, et en ('absence d'autorisation, le procede comprend une execution d'une fonction de traitement d'anomalies prealablement enregistree dans ladite structure de configuration et/ou un blocage de ('execution de ladite tache eligible selectionnee. Le procede comporte, en cas de verification d'autorisation positive, une validation par verification de Ia structure de configuration memorisee, d'une Cache destinatrice 20 selectionnee, et une communication de donnees vers Ia tache destinatrice. Le procede comprend, suite a ('execution d'une tache eligible selectionnee, une mise a jour de Ia liste des taches eligibles. L'invention concerne egalement, selon un autre aspect, un systeme de contrOle d'ordonnancement de taches logicielles a executer dans un contexte applicatif 25 predetermine, comportant un dispositif de calcul, les taches logicielles etant adaptees a etre mises en oeuvre par ledit dispositif de calcul en mode d'execution non privilegie, le dispositif de calcul comportant des ressources materielles gerees par un systerne d'exploitation a noyau executable en mode d'execution privilegie. Le noyau du systerne d'exploitation est configure pour effectuer un ordonnancement de taches logicielles a 30 executer en fonction d'une structure de configuration prealablement memorisee par ledit dispositif de calcul et definissant, pour ledit contexte applicatif donne, au moins un niveau de priorite associe a chaque tache logicielle dudit contexte applicatif, ainsi que, pour chaque tache logicielle dudit contexte applicatif, une information relative aux communications autorisees de ladite tache vers une ou plusieurs taches logicielles 35 destinatrices, et pour ledit contexte applicatif donne, un ensemble d'etats globaux, avec 4 pour chaque etat global, une indication de taches autorisees dans ledit etat, et une indication de transitions autorisees entre etats globaux. Selon un mode de realisation, la structure de configuration est enregistree prealablement a l'execution d'une quelconque desdites taches logicielles, dans une 5 portion de memoire protegee et non accessible. Selon un mode de realisation, le systerne comporte une pluralite de structures de configuration memorisees, chaque structure de configuration correspondant a un contexte applicatif. 10 D'autres caracteristiques et avantages de ('invention ressortiront de la description qui en est donnee ci-dessous, a titre indicatif et nullement limitatif, en reference aux figures annexees, parmi lesquelles : -la figure 1 est un bloc-diagramme des principaux blocs materiels et logiciels d'un dispositif de calcul mettant en oeuvre ('invention selon un mode de realisation ; 15 -la figure 2 illustre schematiquement des applications logicielles comprenant plusieurs Caches logicielles ; -Ia figure 3 illustre schematiquement un enchainement chronologique des taches et un niveau de priorite associe ; -la figure 4 est un ordinogramme des principales etapes d'un procede 20 d'ordonnancement de Caches selon un mode de realisation ; -la figure 5 represente schematiquement un exemple de structure de configuration memorisee dans un mode de realisation de ('invention ; -la figure 6 represente un exemple de matrice de contrOle des taches logicielles en fonction des etats selon un mode de realisation ; 25 -Ia figure 7 est un exemple de graphe de transition d'etats selon un mode de realisation ; -la figure 8 est un exemple de matrice representant un graphe de transition d'etats ; -Ia figure 9 est un ordinogramme des principales sous-etapes de ('execution d'une 30 tache courante dans un mode de realisation de communication entre taches. La figure 1 illustre schematiquement un systerne 2 materiel et logiciel mis en oeuvre dans un dispositif de calcul selon un mode de realisation de ('invention. Le systeme 2 comporte un ensemble 4 de ressources materielles ou « hardware » 35 en anglais, constitue dans cet exemple de plusieurs blocs materiels, et plusieurs ensembles de blocs logiciels 8, 9. 5 Les ressources materielles comprennent un processeur de calcul CPU (pour « Central Processing Unit » en anglais) 14a, un gestionnaire de memoire virtuelle 16a appele MMU pour « Memory Management Unit » en anglais, un module de gestion des interruptions 16a et, un generateur d'horloge 18a utilise notamment pour la detection de 5 blocage du systeme. Les ressources materielles 4 sont controlees par un systeme d'exploitation 8, qui comporte divers blocs fonctionnels d'instructions de code de contrOle « hardware », egalement connus sous le noms de pilotes (« drivers » en anglais), executes dans le mode d'execution dit privilegie. 10 Le systeme d'exploitation est par exemple un systeme de type Linux, ou VxWorks® ou QNX ®, enrichi par des fonctionnalites de controle d'ordonnancement des taches logicielles selon les divers modes de realisation de ('invention. Ce systeme 8 comporte un noyau ou tronc commun 10, qui comporte une interface 12 bas niveau, egalement appelee interface HAL pour « Hardware Abstract 15 Layer » qui permet d'interfacer les commandes du noyau 10 avec des modules pilotes 14 a 20 adaptes a controler directement les ressources materielles 14a a 20a. Ces modules pilotes adaptes a controler directement les ressources materielles comprennent un controleur 14 du processeur de calcul, un contrOleur 16 de gestionnaire de memoire virtuelle, un module 18 de gestion des interruptions et, optionnellement, un 20 module de verification 20 egalement connu sous le nom de « Watchdog » en anglais. Le noyau 10 comporte egalement une interface 22 haut niveau, adapt& a supporter ('execution d'applications logicielles 24. La ou les applications logicielles comportent une pluralite de taches logicielles 26a a 26z. Chaque tache est implementee sous forme d'instructions de code de programme, dans un langage donne, compile pour 25 etre executable par les ressources materielles du dispositif de calcul grace a ('interface 22. L'interface haut niveau 22 et les taches logicielles 24 font partie des applications logicielles 9 qui sont executees en mode non privilegie. L'execution d'une tache logicielle met en ceuvre, de maniere connue, des calculs 30 effectues par le processeur 14a, des donnees et parametres memorises en utilisant par exemple le module gestionnaire de memoire virtuelle 16a. Le noyau 10 est configure pour gerer l'ordonnancement d'execution des taches logicielles, notamment lorsque plusieurs taches logicielles sont concurrentes, c'est-a-dire doivent etre executees simultanement. 35 II est entendu qu'en general, le systeme logiciel et materiel supporte un certain niveau de parallelisme d'execution de taches, mais pour simplifier ('explication, nous 6 considererons dans ce qui suit l'exemple de taches logicielles concurrentes faisant appel aux mernes ressources, pour lesquelles ('execution en parallele n'est pas envisagee. Pour la gestion de I'ordonnancement et de ('execution des taches logicielles, le noyau 10 comporte un module ordonnanceur 28, un module de gestion des 5 communications entre taches 30 et un module 32 de contrOle de l'etat global. Le module 32 utilise une structure de configuration 36 qui comprend, pour un contexte applicatif donne, un ensemble de donnees memorisees comme explique ciapres. Un contexte applicatif est un ensemble denombrable d'applications logicielles a 10 executer, chaque application logicielle mettant en oeuvre une ou plusieurs taches logicielles. Dans un systeme d'execution ferme, par exemple dans un dispositif de calcul embarque, un ou plusieurs contextes applicatifs sont predefinis. Ainsi, pour chaque contexte applicatif, les taches logicielles associees a ce 15 contexte applicatif sont connues et denombrables. Pour un contexte applicatif donne, on distingue plusieurs etats globaux, un graphe d'etats permettant de montrer les transitions autorisees entre etats. Les taches autorisees varient d'un etat du graphe a un autre. Le passage d'un etat a un autre est realise sur demande d'une tache autorisee a modifier l'etat courant. 20 Par exemple, dans un mode de realisation, un premier etat global correspond a l'ensemble des services autorises en mode authentifie, donc suite a une authentification reussie de l'utilisateur du systeme, et un deuxieme etat global correspond a l'ensemble des services autorises en mode non authentifie, qui est un mode par defaut. Le nombre total d'etats globaux possibles du systeme logiciel est predetermine. 25 Une structure de configuration des taches et des etats globaux est memorisee, comme explique en detail ci-apres. La structure de configuration memorise les taches logicielles des applications logicielles et les etats globaux d'un contexte applicatif donne. Pour chaque tache, la structure de configuration memorise notamment un niveau 30 de priorite associe a la tache. Pour chaque etat, la structure de configuration memorise notamment la liste des taches autorisees dans cet etat. Le systeme comprend egalement une interface d'adaptation 34 permettant d'adapter le systeme a un contexte applicatif donne. Ainsi, plusieurs contextes applicatifs peuvent etre mis en ceuvre par un meme dispositif. 35 L'interface d'adaptation 34 permet d'acceder a 'ensemble 36 des structures de configuration associees a un contexte applicatif choisi. 7 A titre d'exemple illustratif, la figure 2 illustre schematiquement deux applications logicielles, notes respectivement Al et A2 et appartenant a un merne contexte applicatif. Chacune des applications logicielles Al et A2 comprend l'enchainement temporel de deux taches logicielles, respectivement les taches T1 et T2 pour Al et les taches T3 et 5 14 pour Az Comme explique ci-dessus, chaque tache logicielle Tk a un niveau de priorite Priok, qui est un entier compris entre 1 et N. Plus le niveau de priorite est eleve, plus une tache logicielle est prioritaire. Dans cet exemple, les taches T1 et T2 ont un meme niveau de priorite p inferieur 10 au niveau de priorite q des taches T3 et T4, comme illustre schematiquement a la figure 3. Par exemple, l'application A2 est un service de securite, par exemple une authentification d'utilisateur, alors que l'application Al est une application de fonctionnement de routine. Dans un exemple de scenario, illustre schematiquement a la figure 3, deux evenements, notes « Evt A » et « Evt B », surviennent successivement dans le temps. Un 15 evenement peut etre materiel ou logiciel, et la survenue d'un evenement induit la mise en oeuvre d'une ou plusieurs taches. Par exemple, dans le domaine d'application de la radio logicielle, un evenement est par exemple une connexion d'utilisateur ou une demande de transmission. Dans ('exemple illustre a la figure 3, le systerne 2 fonctionne dans un mode 20 collaboratif dans lequel la survenue d'un evenement induisant ('execution d'une tache plus prioritaire qu'une tache en cours d'execution n'arrete pas immediatement ('execution de Ia tache en cours. L'evenement « Evt A » est associe au point d'entree de Ia Cache T1, cette tache logicielle etant executee a partir de ('instant temporel t1 correspondant a la survenue de 25 l'evenement « Evt A ». L'evenement « Evt B » se produit entre les instants t1 et t2, ('instant temporel t2 correspondant a un point de collaboration entre taches, c'est-e-dire un point ou la tache T1 est terminee ou peut etre suspendue, en mode collaboratif, et les ressources sont allouees a une tache plus prioritaire. L'evenement « Evt B » induit un appel a l'application A2, qui est prioritaire par rapport a Al, les deux taches logicielles T3, T4 ayant 30 un niveau de priorite superieur au niveau de priorite des taches T1 et 12 de l'application Al. La tache T3 s'execute a partir de ('instant temporel t2, et Ia tache T4 a partir de ('instant temporel t3, ce qui clOture ('execution de l'application A2, puis Ia deuxierne Cache T2 est executee entre les instants temporels t4 et t5, ce qui clOture ('execution de 35 ['application Al. 8 La figure 4 est un ordinogramme des principales etapes d'un procede de contrOle d'ordonnancement selon un mode de realisation de ('invention. Les stapes du procede sont effectuees au niveau du systeme d'exploitation d'un dispositif de calcul electronique, en mode d'execution privilegie. 5 Le procede comprend une premiere etape 50, qui est une etape prealable a la mise en oeuvre d'applications logicielles dans un contexte applicatif donne. L'etape prealable 50 est une etape d'obtention et de memorisation d'une ou plusieurs structure(s) de configuration pour chaque contexte applicatif envisage. De plus, pour un contexte applicatif donne, plusieurs etats globaux sont 10 consideres, appeles simplement etats par Ia suite. La figure 5 illustre schematiquement un exemple de structure de configuration 100 pour un contexte applicatif donne. La structure 100 comprend plusieurs ensembles de donnees. Un ensemble de donnees 110 memorise les taches logicielles identifiees par 15 exemple par un identifiant unique de tache note T1...TL dans l'ensemble 110. Par exemple, l'ensemble de donnees est memorisee sous forme de tableau. Les identifiants de tache sont memorises dans une premiere colonne 112 du tableau 110. Par exemple, chaque tache est identifiee par un numero de tache. Chaque tache T, a un niveau de priorite Prio, associe, parmi un nombre N maximal 20 de niveaux de priorite, memorise dans une colonne 114 du tableau 110. Le niveau de priorite d'un tache reste le meme pour tout etat global distingue dans le contexte applicatif. De plus, chaque tache T, a un point d'entree PT, associe, memorise dans une colonne 116 du tableau 110, et optionnellement une liste EV, d'au moins un evenement 25 declenchant ('execution de Ia tache dans une colonne 118 du tableau 110. De plus, pour chaque tache T; on memorise, dans une colonne 120 correspondante du tableau 110 une structure de communication utilisee pour communiquer vers la tache T,. Enfin, pour chaque tache on memorise les droits de communication de la tache T, 30 vers une ou plusieurs taches destinatrices T-Dest, dans une colonne 122 du tableau 110. Par exemple, les taches destinatrices sont identifies par les identifiants uniques de tache prealablement mentionnes. Si une Cache T; donnee n'a pas de liste d'evenements EV; associee, elle deviendra eligible et donc executable, comme explique ci-apres, si elle est appelee en tant que 35 tache destinatrice par une autre tache. 9 Bien entendu, Ia memorisation sous forme de tableau est donnee uniquement titre d'exemple et toute variante a la portee de l'homme du métier, de memorisation selon une ou plusieurs structures distinctes, est envisageable. La structure de configuration comprend une matrice de contrOle des Caches en 5 fonction des d'etats 140, indiquant les taches autorisees dans chaque etat parmi toutes les taches du contexte applicatif, et un graphe 142, chaque nceud du graphe correspondant a un etat global, et dont les liaisons indiquent les transitions autorisees entre etats. La figure 6 illustre un exemple de matrice 140, dans un contexte d'application a 14 10 etats et n taches, sous forme de tableau, les lignes indiquant les indices de tache et les colonnes les indices d'etat. Les croix indiquent qu'une Cache donnee est autorisee dans l'etat donne, par exemple Ia tache Ti est autorisee dans les etats 1, 4, 7, 9 et 13, et la tache T4 est autorisee dans tous les etats. La figure 7 illustre schematiquement un graphe 142 de transition entre etats, et la 15 figure 8 illustre schematiquement une matrice 143 correspondant au graphe 142. Les croix illustrees a Ia figure 8 indiquent pour chaque etat quels peuvent etre ses successeurs. Par exemple, Ia premiere ligne de la matrice 143 indique que les successeurs de l'etat 1 peuvent etre respectivement l'etat 2 et l'etat 13. Dans un mode de realisation, le graphe de transition entre etats est memorise 20 sous la forme d'une matrice 143. Dans un mode de realisation, la structure de configuration identifie et memorise (bloc 144) une unique tache assurant le contrOle des conditions de changement de transition et autorisee a demander au systeme de passer d'un etat courant a un etat suivant. 25 Selon une alternative, plusieurs taches sont autorisees a effectuer un changement entre un etat courant et un etat suivant, et ces taches sont memorisees. Ce mode alternatif est bien plus complexe car ('absence de concurrence entre les taches autorisees a modifier l'etat global doit etre verifiee. Dans un mode de realisation, la structure de configuration identifie et memorise 30 une fonction 146 de traitement d'anomalies definissant le point d'entree des alarmes et des erreurs. De preference, Ia ou les structures de configuration enregistrees sont statiques, donc non modifiables, et memorisees dans un espace memoire protégé et accessible uniquement en mode d'execution privilegie par l'intermediaire du module de contrOle 35 d'acces memoire (MMU). Avantageusement, la securite d'execution des taches est alors assuree. 10 De retour a Ia figure 4, lors d'une etape 52 de reception d'au moins un evenement a traiter, un evenement materiel ou logiciel est identifie. Le ou chaque evenement a traiter induit un appel a ('execution d'une ou plusieurs taches selon les donnees 118 memorisees. Ces taches deviennent des taches eligibles si 5 elles sont autorisees dans l'etat courant du systeme selon les donnees 140, lors de l'etape 54. Une tache devient eligible suite a un evenement a traiter ou si elle est appelee a s'executer par une tache elle-m8me rendue eligible. Une liste des taches eligibles est maintenue a jour et memorisee par le procede 10 l'etape 54. A ('initialisation, Ia liste des taches eligibles est vide, et elle est mise a jour suite a chaque reception d'evenement a traiter. Lors de l'etape 54, la liste des taches eligibles est mise a jour en fonction du ou des evenements a traiter, les taches eligibles etant selectionnees parmi ('ensemble des taches predefinies associees au contexte applicatif. Par exemple, les identifiants des 15 taches eligibles sont inscrits dans Ia liste des taches eligibles, s'ils ne figurent pas déjà dans cette liste. Chaque tache eligible a un niveau de priorite associe, qui est extrait de Ia structure de configuration 100 associee au contexte logiciel courant. L'etape 54 de mise a jour de Ia liste des taches eligibles est suivie d'une etape 56 20 de selection de Ia tache eligible Ia plus prioritaire et autorisee dans l'etat courant selon la structure de configuration prealablement enregistree. A titre d'exemple, certaines taches eligibles sont autorisees dans un etat operationnel, mais non autorisees en etat de maintenance du systeme. En etat de maintenance, seule l'authentification de l'operateur de maintenance permet de debloquer 25 le systeme. Si plusieurs taches eligibles ont Ia meme priorite, elles sont de preference traitees dans I'ordre chronologique dans lequel elles ont ete inscrites dans Ia liste de taches eligibles, selon le principe FIFO (pour « First-In-First-Out » en anglais). Bien entendu, tout autre type d'ordonnancement est applicable. 30 Les &apes de Ia figure 4 sont mises en ceuvre par le module ordonnanceur 28 en mode d'execution privilegie. II est ensuite verifie a l'etape de verification 58 si une tache eligible a ete selectionnee. En cas de reponse negative, le systeme 2 passe en mode veille a l'etape 60. 35 En cas de reponse positive a l'etape 58, le point d'entree de Ia tache eligible selectionnee est appele a l'etape 62, et la tache eligible selectionnee, appelee alors tache 11 courante Tc, s'execute jusqu'a un point de collaboration (etape 64). La communication de la tache courante Tc avec une tache T-Dest, sera detainee ci-apres en reference a la figure 6. Lorsque la tache courante Tc atteint un point de collaboration, l'etape 64 est suivie 5 de l'etape 66 a laquelle il est verifie si la tache courante Tc doit rester parmi les taches eligibles, et la liste des taches eligibles est mise a jour. II est egalement verifie, durant ('execution de la tache courante Tc, si cette tache est autorisee a demander un changement d'etat global, si des conditions de transition de l'etat courant vers un nouvel etat sont remplies, et une demande au module 32 de 10 changer la valeur d'identifiant de l'etat courant est effectuee. L'etape 66 est suivie de l'etape 52 et suivantes prealablement decrites. La figure 9 est un ordinogramme des sous-etapes de l'etape 64 d'execution d'une tache eligible selectionnee dans un mode de realisation de communication entre taches. Les &apes du procede sont effectuees au niveau du systerne d'exploitation d'un 15 dispositif de calcul electronique, en mode d'execution privilegie. La tache eligible en cours d'execution est appelee ici tache courante (Tc). Lors d'une premiere etape 70, lorsque la tache courante Tc demande une communication avec une tache destinatrice T-Dest,, via un message ou un signal par exemple, il est verifie a l'etape 72 si la communication demandee est autorisee avec cette 20 tache destinatrice T-Dest,. La verification se fait par rapport aux informations memorisees dans les donnees 122 de la structure de configuration memorisee. En cas de verification negative, une anomalie est constatee, et l'etape 72 est suivie de l'etape 74 a laquelle la fonction de traitement d'anomalies 146 prealablement enregistree dans la structure de configuration est appelee. 25 De preference, la fonction de traitement d'anomalie genere une alarme en fonction d'un type d'anomalie constatee. Optionnellement, un compte-rendu relatif au type d'anomalie constate est genere. Dans le cas o0 l'erreur rencontree n'a pas ete prevue ou lorsqu'aucune fonction de traitement d'anomalies 146 n'a ete prealablement enregistree, un blocage d'execution du 30 systeme est effectue, de maniere a assurer la securite. En cas de verification positive a l'etape 72, cette etape est suivie d'une etape 76 de contrOle de la validite des structures de communication 120 de la structure de configuration prealablement enregistrees. En particulier, la coherence et la validite des structures de communication de la 35 tache destinatrice T-Dest, sont validees par rapport a leur capacite en termes de taille 12 pour recevoir le message emis ou par rapport a leur activation prealable pour permettre la notification d'un signal. En cas de validation negative a l'etape 76, cette etape est suivie de l'etape de traitement d'anomalie prealablement decrite. 5 En cas de validation positive, l'etape 76 est suivie d'une etape 78 de transfert des donnees a communiquer de la tache courante vers la tache destinatrice. Ensuite, Ia liste des taches eligibles est mise a jour a l'etape 80 avec la Cache destinatrice T-Dest,, qui est rajoutee a cette liste des Caches eligibles si elle ne s'y trouve pas deja. 10 Le procede de ('invention a ete decrit ici dans un mode de realisation particulier simplifie. En pratique, le nombre d'applications logicielles, de taches et d'etats pour un contexte applicatif donne est variable, donc le systeme est adaptatif. En pratique, des variantes sont envisageables comme : ('integration du controle de l'autorisation de la tache destinatrice par rapport a 15 l'etat courant lors de la communication entre Caches. !Integration du controle de l'ordonnancement dans un dispositif de calcul comprenant plusieurs unites de traitements (un systeme multiprocesseur ou multi-cceur) avec plusieurs taches courantes simultanement. Avantageusement, l'ordonnancement et ('execution des Caches logicielles sont 20 contrOles, de maniere securisee dans la mesure ()CI : Ia structure de configuration est enregistree dans une portion de memoire protegee et non accessible en mode non privilegie, donc protegee du piratage a partir des taches applicatives. L'ordonnancement des taches est assujetti a un controle d'etat global dont la 25 modification est elle-merne controlee par le noyau du systeme d'exploitation. La communication entre les taches est egalement contrOlee par le noyau du systeme d'exploitation. REVENDICATIONS1.- Procede de contrOle d'ordonnancement de Caches logicielles a executer dans un contexte applicatif predetermine, les taches logicielles (26a,..., 26z) etant adaptees etre mises en oeuvre par un dispositif de calcul en mode d'execution non privilegie, le dispositif de calcul comportant des ressources materielles (14a-20a) gerees par un systeme d'exploitation (8) a noyau (10) executable en mode d'execution privilegie, caracterise en ce qu'il est mis en oeuvre par ledit noyau (10) du systeme d'exploitation et en ce qu'il effectue un ordonnancement de taches logicielles a executer en fonction d'une structure de configuration (36, 100) prealablement memorisee (50) definissant, pour ledit contexte applicatif donne, au moins un niveau de priorite (114) associe a chaque tache logicielle dudit contexte applicatif, ainsi que, pour chaque tache logicielle dudit contexte applicatif, une information (120) relative aux communications autorisees de ladite tache vers une ou plusieurs taches logicielles destinatrices, et pour ledit contexte applicatif donne, un ensemble d'etats globaux, avec pour chaque etat global, une indication (140) de taches autorisees dans ledit etat, et une indication (142, 143) de transitions autorisees entre etats globaux. 2.- Procede de controle selon la revendication 1 dans lequel ladite structure de configuration est enregistree prealablement a ('execution d'une quelconque desdites taches logicielles, ledit enregistrement etant non modifiable. 3.- Procede de contrOle selon l'une quelconque des revendications 1 ou 2, comportant des etapes de : -reception (52) d'au moins un evenement a traiter, -identification (54) d'au moins une tache logicielle eligible, a executer suite audit au moins un evenement a traiter, -ordonnancement (54) des taches eligibles en fonction du niveau de priorite associe a chaque tache eligible, -selection (56) de Ia tache eligible listee dans une liste de taches eligibles, de priorite Ia plus elevee et autorisee dans l'etat courant, et execution ou blocage de ('execution (62, 64) de la tache eligible selectionnee en fonction de ladite structure de configuration (36, 100) prealablement memorisee. 4.- Procede selon Ia revendication 3, dans lequel ladite structure de configuration comprend egalement, pour au moins une partie des taches, une liste (EVi) d'au moins un 14 evenement declenchant ladite tache, et dans lequel ('identification (54) d'au moins une tache logicielle eligible utilise ladite structure de configuration. 5.- Procede selon l'une des revendications 3 ou 4, dans lequel, dans l'etape 5 d'ordonnancement des taches eligibles, lorsque plusieurs taches ont un m8me niveau de priorite, elles sont ordonnancees selon un ordre chronologique d'execution. 6.- Procede de controle selon l'une des revendications 3 a 5, dans lequel pour une tache eligible selectionnee, le procede comporte une verification (72) d'autorisation de 10 communication prealablement memorisee pour ladite tache eligible selectionnee, et en ('absence d'autorisation, le procede comprend une execution (74) d'une fonction de traitement d'anomalies prealablement enregistree dans ladite structure de configuration et/ou un blocage de ('execution de ladite tache eligible selectionnee. 15 7.- Procede de controle selon la revendication 6, dans lequel le procede comporte, en cas de verification (72) d'autorisation positive, une validation (76) par verification de la structure de configuration memorisee, d'une tache destinatrice selectionnee, et une communication (78) de donnees vers la tache destinatrice. 20 8.- Procede de controle selon l'une quelconque des revendications 3 a 7, comprenant, suite a ('execution d'une tache eligible selectionnee, une mise a jour (80) de la liste des taches eligibles. 9.- Systeme de controle d'ordonnancement de taches logicielles a executer dans 25 un contexte applicatif predetermine, comportant un dispositif de calcul, les taches logicielles etant adaptees a etre mises en oeuvre par ledit dispositif de calcul en mode d'execution non privilegie, le dispositif de calcul comportant des ressources materielles (14a-20a) gerees par un systerne d'exploitation (8) a noyau (10) executable en mode d'execution privilegie, 30 caracterise en ce que le noyau (10) du systeme d'exploitation (8) est configure pour effectuer un ordonnancement de taches logicielles a executer en fonction d'une structure de configuration (36, 100) prealablement memorisee par ledit dispositif de calcul et definissant, pour ledit contexte applicatif donne, au moins un niveau de priorite (114) associe a chaque tache logicielle dudit contexte applicatif, ainsi que, pour chaque tache 35 logicielle dudit contexte applicatif, une information (120) relative aux communications autorisees de ladite tache vers une ou plusieurs taches logicielles destinatrices, et 15 pour ledit contexte applicatif donne, un ensemble d'etats globaux, avec pour chaque etat global, une indication (140) de taches autorisees dans ledit etat, et une indication (142, 143) de transitions autorisees entre etats globaux. 5 10.- Systeme de contrOle selon la revendication 9, dans lequel ladite structure de configuration est enregistree prealablement a ('execution d'une quelconque desdites taches logicielles, dans une portion de memoire protegee et non accessible. 11.- Systeme de contrOle selon l'une des revendications 9 ou 10, comportant une 10 pluralite de structures de configuration memorisees, chaque structure de configuration correspondant a un contexte applicatif. 15