WO2011029816A1 - Procede d'ordonnancement temps reel d'un ensemble de taches multi-trames non cycliques - Google Patents

Procede d'ordonnancement temps reel d'un ensemble de taches multi-trames non cycliques Download PDF

Info

Publication number
WO2011029816A1
WO2011029816A1 PCT/EP2010/063109 EP2010063109W WO2011029816A1 WO 2011029816 A1 WO2011029816 A1 WO 2011029816A1 EP 2010063109 W EP2010063109 W EP 2010063109W WO 2011029816 A1 WO2011029816 A1 WO 2011029816A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
execution
task
tasks
real
Prior art date
Application number
PCT/EP2010/063109
Other languages
English (en)
Inventor
Noel Tchidjo Moyo
Vincent Seignole
Frédéric LAFAYE
Original Assignee
Thales
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales filed Critical Thales
Priority to EP10749869.3A priority Critical patent/EP2476056B1/fr
Priority to US13/395,102 priority patent/US8769540B2/en
Priority to SG2012017653A priority patent/SG179113A1/en
Publication of WO2011029816A1 publication Critical patent/WO2011029816A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

Definitions

  • the present invention relates to a method for real-time scheduling of multi-frame software tasks. It relates to the field of real-time processors, for example signal processing processors, on which a plurality of functions, also called software tasks, which can be concurrent, that is to say be called simultaneously, are executed.
  • the invention relates more particularly to the problem of the real-time scheduling of software tasks executed by one or more software applications on one or more parallel processors.
  • a multi-frame task designates a task or software function that executes a processing on a plurality of data frames that are associated with a run time, a deadline, and a guard time with respect to the next frame.
  • the execution time C is the time required to execute, on said data frame, the functional processing defined by the corresponding task on a given processor. It depends on both the complexity of the processing to be performed and the resources of the processor, including its operating frequency.
  • the deadline D corresponds to the relative time that elapses between the activation of a task and the time after which the execution of this task must be finalized. The deadline depends in particular on temporal constraints related to the software application or to the system implemented using this application.
  • the guard time P corresponds to the minimum time that elapses between two successive calls to the same task.
  • One of the problems that the invention seeks to solve is to guarantee the real-time feasibility of the implementation of a set of multi-frame tasks, which together define an application or a system, having execution time parameters, such as: time and time given on a given processor.
  • the technical problem to be solved concerns the real-time scheduling of these tasks on this processor.
  • To ensure that the design of the software tasks is valid in a real-time implementation it is necessary to test whether the time limits are never exceeded by checking in particular that each task runs well before it expires.
  • the resolution of this technical problem makes it possible to validate the smooth operation of the scheduler which is implemented by the operating system associated with the processor.
  • a scheduler is an operating system component whose function is to determine the order in which the tasks or processes will be executed on a processor so as to respect the real-time.
  • the use of a scheduler makes it possible to run several tasks or processes in parallel on a single processor by sharing its resources temporally. In this way, real-time execution of tasks is possible.
  • the specification of the software tasks to be executed is such that it does not allow their simultaneous execution in real time, in which case the scheduler will not be able to function correctly because it will have to solve a problem. who does not have a solution.
  • These scenarios are not necessarily easily detectable and avoidable especially in the case of complex applications that use several concurrent tasks themselves performing a processing on several data frames with time-bound execution constraints. It is therefore important to be able to detect these situations during the design phase of the overall system architecture in order to redefine the parameters of the software tasks that one wishes to deploy on a given processor if they are not compatible with the system. 'real time execution.
  • a scheduling policy known to those skilled in the art is the dynamic priority scheduling method known by the abbreviation Anglo-Saxon EDF ("Earliest Deadline First"). This method consists of assign a dynamic priority to each task or process based on the deadline. The closer the deadline for a task, the higher the priority. The invention is particularly positioned within the framework of this scheduling method.
  • a multi-frame task is a task or software function that executes a processing on a plurality of data frames characterized by the three execution time parameters E, deadline D, and guard time P previously introduced in this document, and for which, moreover, the execution time E is variable from one frame to another.
  • the document [2] takes this concept by generalizing it to a set of multi-frame tasks for which the deadline D and the guard time P are also variable.
  • a feasibility test associated with a dynamic priority scheduling method (such as the EDF method) is proposed in document [2]. This method is based on the construction of a bounded requirement function dependent on the parameters E, D and P and making it possible to validate the feasibility of real-time execution of a plurality of software tasks on a given processor.
  • T P t l + P; 2 + P, the temporal pattern of execution of the task i is repeated periodically as illustrated in FIG. 1.
  • Task i is then called a cyclic multi-frame task.
  • Such a case corresponds, for example, to the case of a video compression device MPEG type (Motion Picture Expert Group) which can handle three types of different data frames known to those skilled in the art under the identifier frames I, P or B, which are most often transmitted in a cyclic time pattern.
  • MPEG type Motion Picture Expert Group
  • the invention proposes a solution for solving the feasibility problem of a set of multi-frame software tasks when they have no temporal repetition pattern.
  • this case corresponds to a random processing of data frames when we do not know in advance their arrival time.
  • An example of such a scenario is shown diagrammatically in FIG. 2.
  • the same software task i as that illustrated in FIG. 1 is represented, but this time in an application case for which the three types of data frames are not processed. in a cyclical time pattern because they arrive in a random order.
  • This case corresponds, for example, to an Orthogonal Frequency Division Multiple Access (OFDMA) modulation device that generates frames of data allocated to different users and therefore having different characteristics and which are transmitted in an unpredictable order.
  • OFDMA Orthogonal Frequency Division Multiple Access
  • the subject of the invention is a real-time dynamic priority scheduling method of an application executed on at least one processor, said application being composed of a plurality m of software tasks executing at least one processing on a plurality N of successive data frames, each of said tasks i being defined at least, for each of said frames j, by an execution time; , a) j P j
  • guard time r i being greater than or equal to said n j
  • said data frames are sequenced in a random order and without respecting a cyclic time pattern.
  • said tasks execute signal processing functions on said data frames and that said processors are digital signal processors (DSPs).
  • DSPs digital signal processors
  • a single variable frequency processor is used and said method further comprises the following steps: m - 1 Q j
  • the invention also relates to a scheduling device for a real-time application executed on at least one fixed or variable operating frequency processor, said application being composed of a plurality m of software tasks executing at least one function on a plurality N of successive data frames, said device being characterized in that it comprises means for implementing the scheduling method described above.
  • FIG. 1 a diagram of an example of cyclic multi-frame tasks and their execution over time
  • FIG. 2 a diagram of an example of non-cyclic multi-frame tasks and their execution over time
  • FIG. 3 a block diagram of the method according to the invention
  • FIG. 4 an exemplary architecture of a real-time system for which the invention applies.
  • FIG. 5 an example of a scheduling device according to the invention used to guarantee the real-time operating safety of an application running on a platform comprising several identical processors.
  • FIG. 3 schematizes a diagram representing the steps of the method of scheduling software tasks according to the invention.
  • the method integrates within the framework of a real-time system executing in particular the software tasks that one wishes to schedule on a given processor.
  • the specified real-time system 301 makes it possible to define a set of software tasks that correspond to functions each executing a subset of the processing operations necessary for the operation of said system.
  • the decomposition of the system into tasks is generally done during a design phase and depends in particular on the specifications of the system, in particular the type of processing to be performed and their temporal constraints.
  • the tasks comprising the system must be executed on a processor, for example a signal processing processor of the DSP ("Digital Signal Processing") type, which also has intrinsic characteristics, for example its operating frequency or execution speed. which also impact the design of tasks.
  • a step 303 of defining tasks therefore allows generating a set of tasks i for which three parameters are defined for each data frame j manipulated by the multi-frame task i.
  • a feasibility test 304 according to the invention is then applied to determine if all the tasks designed in step 303 are schedulable on the processor chosen according to the EDF scheduling policy.
  • the feasibility test consists of checking the following relation:
  • the method according to the invention also applies when a new task is created and that one wishes to validate its feasibility together with the set of tasks already designed.
  • the application of the test according to relation (1) by integrating this new task makes it possible to validate its integration or, on the contrary, to reject it and to redefine its characteristics so that the parameters (C /, D, P) respect the relation (1) .
  • the execution time C / can be determined either by estimating a priori the complexity of the processing performed by the task i on the frame j or by measuring, individually, the time required for the execution of this task alone on the chosen processor.
  • a way to adapt the execution time to allow the task i to respect the relation (1) and thus to be schedulable, is to optimize the implementation of algorithmic processes to accelerate their execution speed.
  • Relationship (1) is a sufficient condition for the set of tasks that satisfy this relationship to be schedulable according to an EDF scheduling policy, ie the highest priority is given to the task that presents the nearest deadline.
  • the following section aims to demonstrate that the verification of relation (1) is sufficient to ensure the feasibility of a real-time implementation of non-cyclic multi-frame tasks and is therefore sufficient to solve the technical problem mentioned at the beginning of this document.
  • each task i respects the following relation:
  • previous tasks we mean the tasks whose expiry date is earlier than
  • the feasibility test defined by the relation (1) can be extended to the execution of m software tasks on a number p, at least equal to 2, of identical processors operating in parallel within a multi-device. -processeurs.
  • the feasibility test guaranteeing the real-time scheduling of m multi-frame tasks on p processors operating in parallel is determined by checking the following relation: max
  • the relation (9) is a generalization of the relation (1) for a number p greater than 1 of processors.
  • the relation (9) implies the relation (10) and that therefore the respect of the relation (9) is enough to validate that all the tasks will be well executed respecting the real time.
  • the method according to the invention can be implemented by a scheduling device or scheduler integrated in an operating system. The scheduler performs an EDF type scheduling method and when adding a dynamic task, the creation of this task is rejected if it does not check the feasibility test of the relation (1) for the case of a task. single processor or the relation (9) for the case of a plurality of processors.
  • FIG. 5 illustrates an exemplary scheduling device according to the invention used to guarantee the real-time operational safety of an application running on a platform comprising several identical processors.
  • a scheduling device 501 serves to guarantee the real-time execution of one or more software applications 503,504.
  • an application 504 creates a software task whose execution time, execution deadline and guard time characteristics are transmitted to the scheduling device 501. This last executes the method according to the invention as described above, taking into account the creation 51 1 of this new task as well as all the tasks 51, 52, 53 already executed on a set of processors Prod, Proc2, ProcP available. If the scheduling device 501 concludes that a real-time execution of the new created task 51 1 is not feasible, it rejects this task 512 in order to guarantee the operational safety of the application 504 and sends back a message to said application 504 to enable it to redefine the characteristics of said task 51 1.
  • the scheduling device 501 concludes the feasibility of the real-time execution of the task 51 1, it authorizes the addition of this new task 513 and communicates this information to an allocation device 502 which positions the task 51 1 for execution on one of the available processors according to an EDF type scheduling policy, that is to say, that at a given moment, a processor whose resources are available selects from among all the tasks to be performed, the one whose execution deadline is the closest.
  • an EDF type scheduling policy that is to say, that at a given moment, a processor whose resources are available selects from among all the tasks to be performed, the one whose execution deadline is the closest.
  • the method according to the invention contains moreover the following steps.
  • the scheduling device 501 triggers 514 the multiplication by a factor ⁇ of the current running frequency of the processor. If the new frequency obtained does not exceed the maximum operating frequency of the processor, it allows 513 the addition of the new task. Indeed, the multiplication by a factor ⁇ of the execution frequency of the processor is equivalent to the division of all the execution times C
  • a transmission system is, for the most part, used by several users and also allows to convey a plurality of different services having characteristics whose impact, in particular, on the data frames and the execution time of the tasks is different.
  • a video content transmission application may use longer data frames than a text messaging application.
  • the size of the frames has an impact on the execution time of the associated task.
  • the arrival time, and therefore the processing, of the data frames in a two-way communication system is most often random because determined by events triggered by the users.
  • FIG. 4 An example of a real-time system architecture for which the invention applies is illustrated in FIG. 4.
  • a real-time communication system between several users A, B, C, D is represented comprising 3 processors P 0. , Pi, P2- One is interested in the scheduling of the tasks executed on the processor P 0 .
  • the latter executes a set of tasks 41, 42, 43, 44 associated with elementary functions of a reception chain of data sent by the users C and D via an application 402 to the users A and B.
  • the reception chain composed of the tasks 41, 42, 43,44 receives data packets in a random order, the reception of these packets triggers successive calls to the reception tasks 41, 42, 43, 44 which execute, for example, demodulation and / or decoding processing of the data before transmitting them to the receiving application 401.
  • a transmission channel is also implemented on the processor P 0 to allow the users A and B to communicate in turn with the users C and D.
  • a set of tasks 45,46,47 , 48 execute processes for formatting the data to be transmitted, for example a data modulation or channel coding function.
  • the tasks 45,46,47,48 composing the transmission chain are executed independently and asynchronously to the tasks 41, 42,43,44 of the reception chain.
  • a signaling link makes it possible to transmit information relating to the control and implementation of the transmission / reception means. This link is implemented between two applications 405,406 and involves the execution of two tasks 49,50 on the processor P 0 .
  • the method according to the invention applies to this type of real-time system since each task is multi-frame and is executed in an unpredictable order from the point of view of the processor P 0 on which they execute.
  • Another application case for which the invention applies is the case where a task executes a processing on a single type of data frame, but the processor on which this task executes has the ability to modulate its consumption, for example by varying its frequency of execution.
  • the execution time of the same data frame will be different for each of these modes.
  • the transition from one mode of consumption to another can be carried out in the course of time predictable, especially according to system constraints.
  • the method according to the invention described previously applies well in this case since one is in the presence of one or more software tasks which executes a processing on a data frame whose execution time, in particular, will vary. over time depending on the mode of consumption of the processor.
  • the design of such a system can be validated and its real time execution guaranteed using the invention.
  • the invention applies to any set of concurrent software tasks from different sources and executing in unpredictable order processing on a set of data frames whose execution times, expiry times and times are variable.
  • the invention particularly has the advantage of allowing the validation of the design choices of an application or a real-time system and to guarantee the feasibility of the execution of this system in the time constraints to which it is subject.
  • the invention makes it possible to guarantee the proper functioning of a dynamic priority scheduler such as a scheduler executing the EDF method and in particular to guarantee that the system will never be overloaded, that is to say that its rate usage will never be greater than 100%.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

Procédé d'ordonnancement temps-réel d'une application composée d'une pluralité m de tâches logicielles exécutant au moins un traitement sur une pluralité N de trames de données successives, chacune desdites tâches i étant définies au moins, pour chacune desdites trames j, par un temps d'exécution (I); une échéance d'exécution (II) et un temps de garde (III) vis-à-vis de la trame j+1 suivante, ledit temps de garde (III) étant supérieur ou égal à ladite échéance (II), les étapes suivantes étant exécutées: -Pour chaque tâche i, calculer les rapports (IV) puis rechercher le maximum sur l'ensemble desdites trames j desdits rapports max ( IV),-Comparer la somme (V) au nombre p de processeurs fonctionnant en parallèle sur lesquels la charge de calcul totale de l'application temps-réelle est répartie,-Si ladite somme (V) est inférieure ou égale au nombre p de processeurs alors conclure à la faisabilité de l'exécution temps-réelle de l'ensemble desdites tâches logicielles réparties sur lesdits processeurs.

Description

PROCEDE D'ORDONNANCEMENT TEMPS REEL D'UN ENSEMBLE DE TACHES MULTI-TRAMES NON CYCLIQUES
La présente invention a pour objet un procédé d'ordonnancement temps réel de tâches logicielles multi-trames. Elle concerne le domaine des processeurs temps-réels, par exemple des processeurs de traitement de signal, sur lesquels sont exécutées une pluralité de fonctions, encore appelées tâches logicielles, qui peuvent être concurrentes, c'est-à-dire être appelées simultanément. L'invention concerne plus particulièrement la problématique de l'ordonnancement temps réel des tâches logicielles exécutées par une ou plusieurs applications logicielles sur un ou plusieurs processeurs en parallèle.
Une tâche multi-trames désigne une tâche ou fonction logicielle qui exécute un traitement sur une pluralité de trames de données auxquelles sont associées un temps d'exécution, une échéance ainsi qu'un temps de garde vis-à-vis de la trame suivante. Le temps d'exécution C est le temps nécessaire pour exécuter, sur ladite trame de données, le traitement fonctionnel défini par la tâche correspondante sur un processeur donné. Il dépend à la fois de la complexité du traitement à exécuter et des ressources du processeur, notamment de sa fréquence de fonctionnement. L'échéance D correspond au temps relatif qui s'écoule entre l'activation d'une tâche et le temps au bout duquel l'exécution de cette tâche doit être finalisée. L'échéance dépend notamment de contraintes temporelles liées à l'application logicielle ou au système mis en œuvre qui utilise cette application. Le temps de garde P correspond au temps minimum qui s'écoule entre deux appels successifs à une même tâche.
Un des problèmes que cherche à résoudre l'invention est de garantir la faisabilité temps réelle de l'implémentation d'un ensemble de tâches multi- trames, qui définissent ensemble une application ou un système, ayant des paramètres de temps d'exécution, d'échéance et de temps de garde donnés sur un processeur donné. A cet effet, le problème technique à résoudre concerne l'ordonnancement temps réel de ces tâches sur ce processeur. Afin de garantir que la conception des tâches logicielles est valide d'une implémentation temps-réelle, il est nécessaire de tester si les limites temporelles ne sont jamais dépassées en vérifiant notamment que chaque tâche s'exécute bien avant son échéance. La résolution de ce problème technique permet de valider le bon fonctionnement de l'ordonnanceur qui est mis en œuvre par le système d'exploitation associé au processeur.
Un ordonnanceur est un composant du système d'exploitation qui a pour fonction de déterminer l'ordre dans lequel les tâches ou processus vont être exécutés sur un processeur de façon à respecter le temps-réel. L'utilisation d'un ordonnanceur permet d'exécuter en parallèle plusieurs tâches ou processus sur un seul processeur en partageant ses ressources temporellement. De cette façon, l'exécution en temps réel des tâches est possible. Cependant, il existe des cas de figure où la spécification des tâches logicielles à exécuter est telle qu'elle ne permet pas leur exécution simultanée en temps réel, dans ce cas l'ordonnanceur ne pourra pas fonctionner correctement car il sera amené à résoudre un problème qui ne possède pas de solution. Ces scénarios ne sont pas forcément aisément détectables et évitables notamment dans le cas d'applications complexes qui utilisent plusieurs tâches concurrentes elles mêmes exécutant un traitement sur plusieurs trames de données ayant des contraintes d'exécution bornées dans le temps. Il est donc important de pouvoir détecter ces cas de figure pendant la phase de conception de l'architecture globale du système afin de redéfinir les paramètres des tâches logicielles que l'on souhaite déployer sur un processeur donné si ceux-ci ne sont pas compatibles d'une exécution temps réelle.
Une politique d'ordonnancement connue de l'Homme du métier est la méthode d'ordonnancement à priorité dynamique connue sous l'abréviation anglo-saxonne EDF (« Earliest Deadline First »). Cette méthode consiste à attribuer une priorité dynamique à chaque tâche ou processus en fonction de l'échéance de ce dernier. Plus l'échéance d'une tâche est proche, plus sa priorité est grande. L'invention se positionne notamment dans le cadre de cette méthode d'ordonnancement.
Le document [1 ] décrit le concept de tâches multi-trames et propose de modéliser un ensemble de tâches logicielles temps-réelles à l'aide de ce concept. Une tâche multi-trame est une tâche ou fonction logicielle qui exécute un traitement sur une pluralité de trames de données caractérisées par les trois paramètres de temps d'exécution E, échéance D, et temps de garde P introduits précédemment dans ce document, et pour lesquelles, de plus, le temps d'exécution E est variable d'une trame à une autre.
Le document [2] reprend ce concept en le généralisant à un ensemble de tâches multi-trames pour lesquelles l'échéance D et le temps de garde P sont également variables. Un test de faisabilité associé à une méthode d'ordonnancement à priorité dynamique (telle que la méthode EDF) est proposée dans le document [2]. Cette méthode est basée sur la construction d'une fonction d'exigence bornée dépendant des paramètres E,D et P et permettant de valider la faisabilité de l'exécution temps-réelle d'une pluralité de tâches logicielles sur un processeur donné.
La solution proposée par le document [2] se limite au cas particulier où il existe une périodicité, encore appelée cycle, dans l'appel successif des tâches et l'enchaînement temporel du traitement des trames. Dans ce cas, il est possible de trouver un motif de répétition qui définit entièrement le séquencement temporel de l'exécution d'une tâche sur une période de temps donnée. Un exemple d'un tel cas de figure est décrit sur la figure 1 . Une tâche logicielle i qui exécute un traitement sur trois types de trames de données différentes caractérisées chacune par les trois paramètres de temps d'exécution C , Cf , Cf , d'échéance D] , Df , Df entre l'instant où la tâche est activée et l'instant où elle doit avoir terminé le traitement de la trame pour respecter les contraintes de temps-réel et de temps de garde Ρ^ , Ρ^ , Ρ3 entre deux appels successifs à cette tâche. Au bout d'un temps de cycle
T = Pt l + P;2 + P , le motif temporel d'exécution de la tâche i se répète périodiquement comme illustré sur la figure 1 . La tâche i est alors qualifiée de tâche multi-trames cyclique.
Un tel cas de figure correspond, par exemple, au cas d'un dispositif de compression vidéo de type MPEG (Motion Picture Expert Group) qui peut manipuler trois types de trames de données différentes connues de l'Homme du métier sous l'identifiant trames I, P ou B, et qui sont transmises le plus souvent selon un motif temporel cyclique.
La fonction d'exigence introduite dans [2] et permettant de tester la faisabilité d'un ensemble de tâches multi-trames utilise la période ou cycle T pour résoudre le problème d'ordonnancement des tâches et se limite donc au cas de tâches cycliques.
L'invention propose une solution permettant de résoudre le problème de faisabilité d'un ensemble de tâches logicielles multi-trames lorsque celles- ci ne présentent aucun motif de répétition temporel. En particulier ce cas de figure correspond à un traitement aléatoire des trames de données lorsqu'on ne connaît pas à l'avance leur instant d'arrivée. Un exemple d'un tel scénario est schématisé sur la figure 2. La même tâche logicielle i que celle illustrée à la figure 1 est représentée mais cette fois dans un cas d'application pour lequel les trois types de trames de données ne sont pas traitées selon un schéma temporel cyclique car elles arrivent dans un ordre aléatoire. Ce cas de figure correspond, par exemple, à un dispositif de modulation OFDMA (Orthogonal Frequency Division Multiple Access) qui génère des trames de données allouées à différents utilisateurs et possédant donc des caractéristiques différentes et qui sont transmises dans un ordre non prédictible. A cet effet l'invention a pour objet un procédé d'ordonnancement à priorité dynamique temps-réel d'une application exécutée sur au moins un processeur, la dite application étant composée d'une pluralité m de tâches logicielles exécutant au moins un traitement sur une pluralité N de trames de données successives, chacune desdites tâches i étant définies au moins, pour chacune desdites trames j, par un temps d'exécution ^ ; , une ) j P j
échéance d'exécution Λ et un temps de garde ri vis-a-vis de la trame
P>
j+1 suivante, ledit temps de garde ri étant supérieur ou égal à ladite n j
échéance , ledit procède étant caractérise en ce qu'il comprend au moins les étapes suivantes:
o Pour chaque tâ entre le temps d'exécuti 'échéance correspondante
Figure imgf000007_0001
o Pour chaque tâche i, rechercher le maximum sur l'ensemble desdites trames j desdits rapports max(
Figure imgf000007_0002
o iparer la somme Y\ max (— l—) sur toutes lesdites
. „ 0< j≤N - l J) J
tâches i desdits maximums au nombre p de processeurs fonctionnant en parallèle sur lesquels la charge de calcul totale de ladite application temps-réelle est répartie, o Si ladite somme Y\ max (— l—) est inférieure ou égale nombre p de processeurs alors conclure à la faisabilité de l'exécution temps-réelle de l'ensemble desdites tâches logicielles réparties sur lesdits processeurs et associer une priorité dynamique d'exécution à la tâche i en fonction de son
Π i
échéance d'exécution de façon à ce qu'à un instant donné, la tâche qui possède la priorité la plus élevée est celle π j
dont l'échéance est la plus proche temporellement,
m - 1 ζ~< j
o Si ladite somme Y\ max (— l—) est strictement supérieure au nombre p de processeurs, rejeter la tâche i et/ou redéfinir
Γ >
ses paramètres de temps d'exécution ^ ; et d'échéance d'exécution Λ de façon à satisfaire l'inégalité
Figure imgf000008_0001
Dans un mode de réalisation de l'invention, lesdites trames de données sont séquencées dans un ordre aléatoire et sans respecter un motif temporel cyclique.
Dans un mode de réalisation de l'invention, lesdites tâches exécutent sur lesdites trames de données des fonctions de traitement de signal et que lesdits processeurs sont des processeurs numériques de signal (DSP). Dans un mode de réalisation de l'invention, un seul processeur à fréquence variable est utilisé et ledit procédé comporte en plus les étapes suivantes : m - 1 Q j
o Si l'inégalité suivante ∑ max (~∑ΓΤ) - 1 n'est pas respectée alors multiplier par un facteur δ au moins égal à m - 1 ζ~< j
Y max (— ) la fréquence dudit processeur, o Si ladite fréquence multipliée par ledit facteur δ est inférieure ou égale à la fréquence maximale de fonctionnement dudit processeur alors associer une priorité dynamique d'exécution à
Π j la tache i en fonction de son échéance d'exécution Λ de façon à ce qu'à un instant donné, la tâche qui possède la
Π >
priorité la plus élevée est celle dont l'échéance est la plus proche temporellement,
o Si ladite fréquence multipliée par ledit facteur δ est supérieure à la fréquence maximale de fonctionnement dudit processeur alors rejeter la tâche i et/ou redéfinir ses paramètres de temps d'exécution ^ ; et d'échéance d'exécution ^ - de façon à
m - 1 ζ~< j
satisfaire l'inégalité∑ max (— < 1 .
L'invention a également pour objet un dispositif d'ordonnancement pour une application temps-réelle exécutée sur au moins un processeur à fréquence de fonctionnement fixe ou variable, la dite application étant composée d'une pluralité m de tâches logicielles exécutant au moins une fonction sur une pluralité N de trames de données successives, ledit dispositif étant caractérisé en ce qu'il comporte des moyens pour mettre en œuvre le procédé d'ordonnancement décrit précédemment. D'autres caractéristiques apparaîtront à la lecture de la description détaillée donnée à titre d'exemple et non limitative qui suit faite en regard de dessins annexés qui représentent :
La figure 1 , un schéma d'un exemple de tâches multi-trames cycliques et de leur exécution au cours du temps,
La figure 2, un schéma d'un exemple de tâches multi-trames non cycliques et de leur exécution au cours du temps,
La figure 3, un synoptique du procédé selon l'invention,
La figure 4, un exemple d'architecture d'un système temps-réel pour lequel l'invention s'applique.
La figure 5, un exemple de dispositif d'ordonnancement selon l'invention utilisé pour garantir la sûreté de fonctionnement temps réel d'une application s'exécutant sur une plateforme comprenant plusieurs processeurs identiques.
La figure 3 schématise un diagramme représentant les étapes du procédé d'ordonnancement de tâches logicielles selon l'invention. Le procédé s'intègre dans le cadre d'un système temps-réel exécutant notamment les tâches logicielles que l'on souhaite ordonnancer sur un processeur donné. Le système temps-réel spécifié 301 permet de définir un ensemble de tâches logicielles qui correspondent à des fonctions exécutant chacune un sous ensemble des traitements nécessaires au fonctionnement dudit système. La décomposition du système en tâches est généralement faite lors d'une phase de conception et dépend notamment des spécifications du système, en particulier le type de traitements à effectuer et leurs contraintes temporelles. Les tâches composant le système doivent être exécutées sur un processeur, par exemple un processeur de traitement de signal de type DSP (« Digital Signal Processing »), qui comporte également des caractéristiques 302 intrinsèques, par exemple sa fréquence de fonctionnement ou vitesse d'exécution, lesquelles impactent également la conception des tâches. Une étape 303 de définition des tâches permet donc de générer un ensemble de tâches i pour lesquelles trois paramètres sont définis pour chaque trame de données j manipulée par la tâche multi-trame i.
Ces paramètres sont le temps d'exécution C( de la tâche i pour la trame de donnée j, son échéance D et son temps de garde P .
Un test de faisabilité 304 selon l'invention, est ensuite appliqué afin de déterminer si l'ensemble des tâches conçues lors de l'étape 303 est ordonnançable sur le processeur choisi selon la politique d'ordonnancement EDF.
Pour un nombre m de tâches, chacune générant un nombre N de trames de données, le test de faisabilité consiste à vérifier la relation suivante :
Si la relation (1 ) est vérifiée, l'ensemble des tâches considérées est bien ordonnançable ce qui signifie que toutes les tâches pourront être exécutées avant leur échéance en respectant le temps-réel.
Dans le cas contraire, une redéfinition 306 des tâches est nécessaire.
De façon dynamique, le procédé selon l'invention s'applique également lorsqu'une nouvelle tâche est créée et que l'on souhaite valider sa faisabilité conjointement à l'ensemble de tâches déjà conçues. L'application du test selon la relation (1 ) en intégrant cette nouvelle tâche permet de valider son intégration ou au contraire de la rejeter et de redéfinir ses caractéristiques afin que les paramètres ( C/ , D , P ) respectent la relation (1 ).
Le temps d'exécution C/ peut être déterminé soit en estimant à priori la complexité des traitements exécutés par la tâche i sur la trame j soit en mesurant, unitairement, le temps nécessaire à l'exécution de cette tâche seule sur le processeur choisi. Un moyen d'adapter le temps d'exécution afin de permettre à la tâche i de respecter la relation (1 ) et donc d'être ordonnançable, est d'optimiser la mise en œuvre des traitements algorithmiques afin d'accélérer leur vitesse d'exécution.
La relation (1 ) est une condition suffisante pour que l'ensemble des tâches qui satisfont cette relation soit ordonnançable selon une politique d'ordonnancement EDF, c'est-à-dire que la priorité la plus élevée est accordée à la tâche qui présente l'échéance la plus proche. Le paragraphe suivant vise à démontrer que la vérification de la relation (1 ) suffit à assurer la faisabilité d'une implémentation temps-réelle des tâches multi-trames non cycliques et suffit donc à résoudre le problème technique mentionné au début de ce document.
Pour s'assurer du respect de l'exécution temps-réelle d'une pluralité de tâches concurrentes qui peuvent s'exécuter à des instants non prédictibles, il suffit de se placer dans le pire cas pour lequel toutes les tâches sont activées en même temps à un instant t0. Ce cas représente la situation la plus contraignante puisque le processeur est sollicité par toutes les tâches en même temps. En considérant uniquement le premier appel de chaque tâche correspondant à la première trame à traiter on vérifie alors que si le temps réel est respecté pour cette première activation alors il le sera aussi pour les appels suivants qui n'auront pas lieu simultanément et donc représenteront une situation moins contraignante.
Pour le premier appel de chaque tâche, on considère tout d'abord la configuration pour laquelle chaque tâche traite une trame x, correspondant à la plus grande criticité ou urgence d'exécution ce qui se traduit par une maximisation du rapport entre le temps nécessaire pour exécuter le traitement associé à cette trame et l'échéance d'exécution: La relation (1 ) devient donc:
m— 1 x i
y L -^ΐ— < i
n x t - (1 ')
i = 0 ^ i
Si l'on suppose que < D pour toute valeur de i, ce qui revient à trier les tâches par ordre d'échéance croissant ce qui est toujours possible, alors pour que l'ensemble des tâches soit ordonnançables selon une politique d'ordonnancement de type EDF, il suffit que chaque tâche i respecte la relation suivante :
∑ Cl'-≤ D "' (3)
k=0
Π Xi
En effet à chaque échéance ^ · , toutes les tâches précédentes doivent avoir été exécutées pour que le temps-réel soit correctement respecté. Par tâches précédentes on entend les tâches dont l'échéance est antérieure à
Π x'
l'échéance ^ ·
On cherche donc à montrer que la relation (1 ') implique la relation (3) pour prouver le test de faisabilité selon l'invention.
La relation (1 ') équivaut, en multipliant chaque membre de l'inéquation par
D x a :
C *' + X C
D ≤ D
k = 0 ; k≠i U k
Or comme tous les termes de la somme sont des nombres positifs, on peut en déduire que :
Figure imgf000014_0001
Et donc
Figure imgf000014_0002
Or, comme £);_Y < D 1 , on a donc pour tout k <i, D^k < D - ' ou encore
D Xi
1 <
Dk x
De la relation (6) on peut donc déduire que la relation (3) est bien respectée, c'est-à-dire que :
∑ c ;< < D ,"
k = 0
La démonstration précédente prouve le test de faisabilité selon l'invention dans le cas ou les tâches considérées ne traitent que des trames de type x, qui présentent un maximum de criticité.
Dans une seconde étape, on considère la configuration pour laquelle lors du premier appel, chaque tâche traite une trame quelconque y, moins critique que la trame x,, et qui vérifie donc la relation:
Figure imgf000014_0003
Des relations (1 ) et (7) on obtient que
Figure imgf000015_0001
et on peut ensuite appliquer le même raisonnement que précédemment pour démontrer que la relation (8) implique la relation suivante :
k = 0
La démonstration précédente prouve donc, par le biais d'étapes successives, que le test mis en œuvre par la relation (1 ) est une condition suffisante pour que les tâches qui respectent cette relation soient ordonnançables selon une politique d'ordonnancement consistant à attribuer une priorité d'exécution à chaque tâche en fonction de son échéance (politique d'ordonnancement EDF).
De façon similaire, le test de faisabilité définit par la relation (1 ) peut être étendu à l'exécution de m tâches logicielles sur un nombre p, au moins égal à 2, de processeurs identiques fonctionnant en parallèle au sein d'un dispositif multi-processeurs. Dans ce cas, le test de faisabilité garantissant l'ordonnancement temps réel de m tâches multi-trames sur p processeurs fonctionnant en parallèle est déterminé en vérifiant la relation suivante : max
0 < /≤ JV
La relation (9) est une généralisation de la relation (1 ) pour un nombre p supérieur à 1 de processeurs.
La relation (9) se démontre de façon analogue à la relation (1 ). Une condition suffisante pour que toutes les tâches soient ordonnançables sur les p processeurs disponibles est obtenue en vérifiant la relation suivante pour tout i < m : ∑ ct"
k = 0
En effet à chaque échéance , toutes les tâches précédentes doivent avoir été exécutées en répartissant leur charge d'exécution sur les p processeurs disponibles pour que le temps-réel soit correctement respecté. On démontre ensuite de façon analogue au cas d'un processeur unique, que la relation (9) implique la relation (10) et que donc le respect de la relation (9) suffit à valider que toute les tâches seront bien exécutées en respectant le temps-réel. Le procédé selon l'invention peut être mis en œuvre par un dispositif d'ordonnancement ou ordonnanceur intégré dans un système d'exploitation. L'ordonnanceur réalise une méthode d'ordonnancement de type EDF et lors du rajout d'une tâche dynamique, la création de cette tâche est rejetée si elle ne vérifie pas le test de faisabilité de la relation (1 ) pour le cas d'un processeur unique ou de la relation (9) pour le cas d'une pluralité de processeurs. Ainsi, un verrou est ajouté à l'ordonnanceur, permettant de garantir le respect du temps-réel et le bon fonctionnement de l'application qui est exécutée. La figure 5 illustre un exemple de dispositif d'ordonnancement selon l'invention utilisé pour garantir la sûreté de fonctionnement temps réel d'une application s'exécutant sur une plateforme comprenant plusieurs processeurs identiques.
Un dispositif d'ordonnancement 501 a pour fonction de garantir l'exécution temps-réelle d'une ou plusieurs applications logicielles 503,504. A un instant donné, une application 504 crée 51 1 une tâche logicielle dont les caractéristiques de temps d'exécution, échéance d'exécution et temps de garde sont transmises au dispositif d'ordonnancement 501 . Ce dernier exécute le procédé selon l'invention tel que décrit précédemment en prenant en compte la création 51 1 de cette nouvelle tâche ainsi que l'ensemble des tâches 51 ,52,53 déjà exécutées sur un ensemble de processeurs Prod ,Proc2,ProcP disponibles. Si le dispositif d'ordonnancement 501 conclue à la non faisabilité d'une exécution temps-réelle de la nouvelle tâche créée 51 1 , il rejette 512 cette tâche dans le but de garantir la sûreté de fonctionnement de l'application 504 et renvoi un message à ladite application 504 afin de lui permettre de redéfinir les caractéristiques de ladite tâche 51 1 . Si au contraire, le dispositif d'ordonnancement 501 conclue à la faisabilité de l'exécution temps-réelle de la tâche 51 1 , il autorise 513 l'ajout de cette nouvelle tâche et communique cette information à un dispositif d'allocation 502 qui positionne la tâche 51 1 pour une exécution sur l'un des processeurs disponibles selon une politique d'ordonnancement de type EDF, c'est-à-dire, qu'à un instant donné, un processeur dont les ressources sont disponibles sélectionne parmi toutes les tâches à exécuter, celle dont l'échéance d'exécution est la plus proche.
Dans une variante de réalisation de l'invention pour laquelle un seul processeur est utilisé, et que ce processeur possède la capacité d'avoir une fréquence variable permettant le changement de cette fréquence pendant l'exécution des tâches, le procédé selon l'invention contient de plus les étapes suivantes.
m - 1 j
Si la relation (1 ) n'est pas respectée, on note δ = max (— ) , δ est
' r r ' 0 < j≤N - l Γ) J donc supérieur à un. Afin de garantir le respect du temps-réel, le dispositif d'ordonnancement 501 déclenche 514 la multiplication par un facteur δ de la fréquence courante de fonctionnement du processeur. Si la nouvelle fréquence obtenue ne dépasse pas la fréquence maximale de fonctionnement du processeur, il autorise 513 l'ajout de la nouvelle tâche. En effet, la multiplication par un facteur δ de la fréquence d'exécution du processeur est équivalente à la division de tous les temps d'exécution C
m - 1 ζ~< j
par cette même quantité δ. De ce fait, la somme Y\ max (— ) devient alors égale à 1 et respecte donc l'inégalité (1 ). D'une façon plus générale, on voit que pour respecter l'inégalité (1 ) il suffit d'augmenter la fréquence du processeur d'un facteur au moins égal à δ.
Le procédé selon l'invention s'applique notamment pour la conception de systèmes de communications multi utilisateurs. Un système de transmission est, la plupart du temps, utilisé par plusieurs utilisateurs et permet de véhiculer également une pluralité de services différents possédant des caractéristiques dont l'impact, notamment, sur les trames de données et le temps d'exécution des tâches est différent. Une application de transmission de contenus vidéo peut par exemple utiliser des trames de données de longueur plus importantes qu'une application de messagerie textuelle. La taille des trames a un impact sur le temps d'exécution de la tâche associée. De plus, l'instant d'arrivée, et donc de traitement, des trames de données dans un système de communication bidirectionnel est le plus souvent aléatoire car déterminé par des événements déclenchés par les utilisateurs. Cette diversité de caractéristiques des trames de données permet d'appliquer pour la conception d'une architecture d'un système de communications, un modèle de tâches multi-trames ainsi que le procédé d'ordonnancement selon l'invention utilisant ce modèle. Un exemple d'une architecture de système temps-réel pour lequel l'invention s'applique est illustré à la figure 4. Un système de communication temps-réel entre plusieurs utilisateurs A,B,C,D est représenté comportant 3 processeurs P0,Pi , P2- On s'intéresse à l'ordonnancement des tâches exécutées sur le processeur P0. Ce dernier exécute un ensemble de tâches 41 ,42,43,44 associées à des fonctions élémentaires d'une chaîne de réception de données émises par les utilisateurs C et D par l'intermédiaire d'une application 402 vers les utilisateurs A et B. La chaîne de réception composée des tâches 41 ,42,43,44 reçoit des paquets de données dans un ordre aléatoire, la réception de ces paquets déclenche des appels successifs aux tâches de réception 41 ,42,43,44 qui exécutent, par exemple, des traitements de démodulation et/ou de décodage canal des données avant de les transmettre à l'application réceptrice 401 .
En parallèle de cette première chaîne de transmission, une chaîne d'émission est également implémentée sur le processeur P0 pour permettre aux utilisateurs A et B de communiquer à leur tour avec les utilisateurs C et D. Un ensemble de tâches 45,46,47,48 exécutent des traitements permettant de mettre en forme les données à émettre, par exemple une fonction de modulation de données ou de codage canal. Les tâches 45,46,47,48 composant la chaîne d'émission sont exécutées de façon indépendantes et asynchrones aux tâches 41 ,42,43,44 de la chaîne de réception. De même un lien de signalisation permet de transmettre des informations relatives au contrôle et à la mise en œuvre des moyens d'émission/réception. Ce lien est implémenté entre deux applications 405,406 et fait intervenir l'exécution de deux tâches 49,50 sur le processeur P0.
Le procédé selon l'invention s'applique à ce type de système temps-réel puisque chaque tâche est multi-trames et est exécutée dans un ordre non prédictible du point de vue du processeur P0 sur lequel elles s'exécutent.
Un autre cas d'application pour lequel l'invention s'applique est le cas où une tâche exécute un traitement sur un seul type de trame de données, mais le processeur sur lequel s'exécute cette tâche possède la capacité de moduler sa consommation, par exemple en faisant varier sa fréquence d'exécution. Dans ce cas, si plusieurs modes de consommation sont disponibles, le temps d'exécution d'une même trame de données sera différent pour chacun de ces modes. Le passage d'un mode de consommation à un autre peut être effectué au cours du temps de façon non prédictible, notamment en fonction de contraintes liées au système. Le procédé selon l'invention décrit précédemment s'applique bien dans ce cas de figure puisqu'on est en présence d'une ou plusieurs tâches logicielles qui exécute un traitement sur une trame de données dont le temps d'exécution, notamment, va varier au cours du temps en fonction du mode de consommation du processeur. La conception d'un tel système peut être validée et son exécution temps réelle garantie à l'aide de l'invention.
De façon générale, l'invention s'applique à tout ensemble de tâches logicielles concurrentes provenant de sources différentes et exécutant dans un ordre non prédictible un traitement sur un ensemble de trames de données dont les temps d'exécution, d'échéance et les temps de garde sont variables.
L'invention présente notamment l'avantage de permettre la validation des choix de conception d'une application ou d'un système temps-réel et de garantir la faisabilité de l'exécution de ce système dans les contraintes de délai auquel il est soumis. En particulier l'invention permet de garantir le bon fonctionnement d'un ordonnanceur à priorité dynamique tel qu'un ordonnanceur exécutant la méthode EDF et en particulier de garantir que le système ne sera jamais surchargé, c'est-à-dire que son taux d'utilisation ne sera jamais supérieur à 100%.
Références
[1] A.K.Mok et D.Chen. A multiframe model for real time tasks. Proceedings of IEEE International Realtime System Symposium, pages 22-29, December 1996.
[2] S. Baruah, D.Chen, S. Gorinsky,A.Mok. Generalized multiframe tasks. 1996.

Claims

REVENDICATIONS
Procédé d'ordonnancement à priorité dynamique temps-réel d'une application exécutée sur au moins un processeur, la dite application étant composée d'une pluralité m de tâches logicielles exécutant au moins un traitement sur une pluralité N de trames de données successives, chacune desdites tâches i étant définies au moins, pour chacune desdites trames j, par un temps d'exécution ^ ; , une échéance d'exécution et un temps de garde ri vis-à-vis de la
p i
trame j+1 suivante, ledit temps de garde ri étant supérieur ou égal
Π>
a ladite échéance , ledit procède étant caractérise en ce qu'il comprend au moins les étapes suivantes: o Pour chaque tâche i, calculer les rapports entre le
Figure imgf000021_0001
Γ >
temps d'exécution ^ ; de chaque trame j et l'échéance
Π>
correspondante ^ i ,
o Pour chaque tâche i, rechercher le maximum sur l'ensemble
C
desdites trames j desdits rapports max( ! ; ) ,
D i
m - 1 ζ~< j
o Comparer la somme f0 max (~~r) sur toutes lesdites
< j≤N - l D
tâches i desdits maximums au nombre p de processeurs fonctionnant en parallèle sur lesquels la charge de calcul totale de ladite application temps-réelle est répartie, m - 1 Q j
o Si ladite somme ∑ max (~~r) est inférieure ou égale au nombre p de processeurs alors conclure à la faisabilité de l'exécution temps-réelle de l'ensemble desdites tâches logicielles réparties sur lesdits processeurs et associer une priorité dynamique d'exécution à la tâche i en fonction de son
Π >
échéance d'exécution de façon à ce qu'à un instant donné, la tâche qui possède la priorité la plus élevée est celle
π j
dont l'échéance est la plus proche temporellement,
m - 1 ζ~< j
o Si ladite somme max (~~r) est strictement supérieure au nombre p de processeurs, rejeter la tâche i et/ou redéfinir
Γ >
ses paramètres de temps d'exécution ^ ; et d'échéance d'exécution ^ · de façon à satisfaire l'inégalité
Figure imgf000022_0001
Procédé d'ordonnancement selon la revendication 1 caractérisé en ce que lesdites trames de données sont séquencées dans un ordre aléatoire et sans respecter un motif temporel cyclique.
Procédé d'ordonnancement selon l'une des revendications 1 à 2 caractérisé en ce que lesdites tâches exécutent sur lesdites trames de données des fonctions de traitement de signal et que lesdits processeurs sont des processeurs numériques de signal (DSP). Procédé d'ordonnancement selon l'une des revendications 1 à 3 caractérisé en ce qu'un seul processeur à fréquence variable est utilisé et que ledit procédé comporte en plus les étapes suivantes :
m - 1 ζ~< j
o Si l'inégalité suivante max (~∑ΓΤ) - 1 n'est pas respectée alors multiplier par un facteur δ au moins égal à m - 1 ζ~< j
V max (— ) la fréquence dudit processeur,
0≤j≤N - l D
o Si ladite fréquence multipliée par ledit facteur δ est inférieure ou égale à la fréquence maximale de fonctionnement dudit processeur alors associer une priorité dynamique d'exécution à
Π i la tâche i en fonction de son échéance d'exécution de façon à ce qu'à un instant donné, la tâche qui possède la
Π i
priorité la plus élevée est celle dont l'échéance est la plus proche temporellement,
o Si ladite fréquence multipliée par ledit facteur δ est supérieure à la fréquence maximale de fonctionnement dudit processeur alors rejeter la tâche i et/ou redéfinir ses paramètres de temps d'exécution ^ / et d'échéance d'exécution ^ · de façon a
m - 1 ζ~< j
satisfaire l'inégalité∑ max (— < 1 .
Dispositif d'ordonnancement (501 ) pour une application temps-réelle (503,504) exécutée sur au moins un processeur à fréquence de fonctionnement fixe ou variable, la dite application étant composée d'une pluralité m de tâches logicielles exécutant au moins une fonction sur une pluralité N de trames de données successives, ledit dispositif (501 ) étant caractérisé en ce qu'il comporte des moyens pour mettre en œuvre le procédé d'ordonnancement selon l'une des revendications 1 à 4.
PCT/EP2010/063109 2009-09-08 2010-09-07 Procede d'ordonnancement temps reel d'un ensemble de taches multi-trames non cycliques WO2011029816A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP10749869.3A EP2476056B1 (fr) 2009-09-08 2010-09-07 Procede d'ordonnancement temps reel d'un ensemble de taches multi-trames non cycliques
US13/395,102 US8769540B2 (en) 2009-09-08 2010-09-07 Method for the real-time ordering of a set of noncyclical multi-frame tasks
SG2012017653A SG179113A1 (en) 2009-09-08 2010-09-07 Method for the real-time ordering a set of non-cyclical multi-frame tasks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0904269 2009-09-08
FR0904269A FR2949876B1 (fr) 2009-09-08 2009-09-08 Procede d'ordonnancement temps reel d'un ensemble de taches multi-trames non cycliques

Publications (1)

Publication Number Publication Date
WO2011029816A1 true WO2011029816A1 (fr) 2011-03-17

Family

ID=42097310

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2010/063109 WO2011029816A1 (fr) 2009-09-08 2010-09-07 Procede d'ordonnancement temps reel d'un ensemble de taches multi-trames non cycliques

Country Status (6)

Country Link
US (1) US8769540B2 (fr)
EP (1) EP2476056B1 (fr)
FR (1) FR2949876B1 (fr)
MY (1) MY156590A (fr)
SG (1) SG179113A1 (fr)
WO (1) WO2011029816A1 (fr)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012517041A (ja) * 2009-02-05 2012-07-26 日本電気株式会社 遺伝的アプローチによる期限付きタスクの受付制御・スケジューリング方法、システムおよびプログラム
US8856807B1 (en) * 2011-01-04 2014-10-07 The Pnc Financial Services Group, Inc. Alert event platform
KR20130115574A (ko) * 2012-04-12 2013-10-22 삼성전자주식회사 단말기에서 태스크 스케줄링을 수행하는 방법 및 장치
FR3015067B1 (fr) * 2013-12-18 2017-03-17 Krono Safe Procede de composition et d'execution d'un plan de sequencement de taches temps-reel
GB2545508B (en) 2015-12-18 2019-04-10 Imagination Tech Ltd Controlling operation of a GPU
US10289448B2 (en) * 2016-09-06 2019-05-14 At&T Intellectual Property I, L.P. Background traffic management
US11042404B2 (en) 2018-03-16 2021-06-22 Imam Abdulrahman Bin Faisal University Real-time feasibility systems and methods
CN110336859B (zh) * 2019-06-06 2020-04-07 广州市玄武无线科技股份有限公司 一种多租户环境下的任务调度系统
KR20220064665A (ko) * 2020-11-12 2022-05-19 삼성전자주식회사 인공지능 모델을 분산 처리하는 전자 장치 및 그 동작 방법
CN114862019A (zh) * 2022-05-05 2022-08-05 中国人民解放军国防科技大学 基于等比平权准则的导航任务规划方法、系统和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061260A1 (en) * 2001-09-25 2003-03-27 Timesys Corporation Resource reservation and priority management

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
A.K.MOK; D.CHEN: "A multiframe model for real time tasks", PROCEEDINGS OF IEEE INTERNATIONAL REALTIME SYSTEM SYMPOSIUM, December 1996 (1996-12-01), pages 22 - 29, XP010208891, DOI: doi:10.1109/REAL.1996.563696
ABDELZAHER T F ET AL: "A utilization bound for aperiodic tasks and priority driven scheduling", IEEE TRANSACTIONS ON COMPUTERS, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US LNKD- DOI:10.1109/TC.2004.1261839, vol. 53, no. 3, 1 March 2004 (2004-03-01), pages 334 - 350, XP011106105, ISSN: 0018-9340 *
ALBERS K ET AL: "An event stream driven approximation for the analysis of real-time systems", PROCEEDINGS OF THE EUROMICRO CONFERENCE ON REAL-TIME SYSTEMS, XX, XX, 30 June 2004 (2004-06-30), pages 187 - 195, XP002383592 *
BARUAH S ET AL: "The Feasibility Analysis of Multiprocessor Real-Time Systems", REAL-TIME SYSTEMS, 2006. 18TH EUROMICRO CONFERENCE ON DRESDEN, GERMANY 05-07 JULY 2006, PISCATAWAY, NJ, USA,IEEE LNKD- DOI:10.1109/ECRTS.2006.29, 5 July 2006 (2006-07-05), pages 87 - 96, XP010927453, ISBN: 978-0-7695-2619-5 *
JEFFAY K ET AL: "A theory of rate-based execution", REAL-TIME SYSTEMS SYMPOSIUM, 1999. PROCEEDINGS. THE 20TH IEEE PHOENIX, AZ, USA 1-3 DEC. 1999, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US LNKD- DOI:10.1109/REAL.1999.818858, 1 December 1999 (1999-12-01), pages 304 - 314, XP010366890, ISBN: 978-0-7695-0475-9 *
S. BARUAH; D.CHEN; S.GORINSKY; A.MOK, GENERALIZED MULTIFRAME TASKS, 1996
SHELBY FUNK: "Generalized Feasibility Analysis on Uniform Multiprocessors", WORK IN PROGRESS PROCEEDINGS OF THE 14TH EUROMICRO CONFERENCE ON REAL-TIME SYSTEMS, PISA, ITALY, JUNE 2007, June 2007 (2007-06-01), pages 1 - 4, XP002579034, Retrieved from the Internet <URL:http://webster.cs.uga.edu/~shelby/pubs/UnifFeasibility.pdf> [retrieved on 20100421] *
SINGHOFF F ET AL: "Cheddar: a flexible real time scheduling framework", ADA LETTERS ACM USA, vol. 24, no. 4, December 2004 (2004-12-01), pages 1 - 8, XP002579035, ISSN: 0736-721X *
TAKADA H ET AL: "Schedulability of generalized multiframe task sets under static priority assignment", REAL-TIME COMPUTING SYSTEMS AND APPLICATIONS, 1997. PROCEEDINGS., FOUR TH INTERNATIONAL WORKSHOP ON TAIPEI, TAIWAN 27-29 OCT. 1997, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US LNKD- DOI:10.1109/RTCSA.1997.629177, 27 October 1997 (1997-10-27), pages 80 - 86, XP010251850, ISBN: 978-0-8186-8073-1 *

Also Published As

Publication number Publication date
US8769540B2 (en) 2014-07-01
FR2949876B1 (fr) 2016-04-29
MY156590A (en) 2016-03-15
FR2949876A1 (fr) 2011-03-11
EP2476056B1 (fr) 2017-12-06
EP2476056A1 (fr) 2012-07-18
US20120284728A1 (en) 2012-11-08
SG179113A1 (en) 2012-04-27

Similar Documents

Publication Publication Date Title
EP2476056B1 (fr) Procede d&#39;ordonnancement temps reel d&#39;un ensemble de taches multi-trames non cycliques
EP1805611B1 (fr) Procede d&#39;ordonnancement de traitement de tâches et dispositif pour mettre en oeuvre le procede
EP2936782B1 (fr) Procédé de traitement de requêtes d&#39;accès et navigateur web
EP0863635B1 (fr) Procédé et dispositif pour la transmission de trames de données
FR2922391A1 (fr) Procede et dispositif de transmission de donnees
FR3047821A1 (fr) Procede et dispositif de gestion d&#39;un appareil de commande
EP2510656A1 (fr) Procede de routage qualitatif dans un reseau de communication multi sauts, equipement de gestion de noeud de reseau
EP1264439A1 (fr) Surveillance et simulation perfectionnees de systemes complexes, notamment de mecanismes et de controles de flux et de congestions dans des reseaux de communications
EP3084602B1 (fr) Procede de composition et d&#39;execution d&#39;un plan de sequencement de taches temps-reel
WO2012038000A1 (fr) Procede de gestion de taches dans un microprocesseur ou un ensemble de microprocesseurs
EP1323277B1 (fr) Unite de multiplexage, systeme et procede de communication dans un reseau informatique
WO2002037277A1 (fr) Procede de propagation de contextes d&#39;invocation a travers un systeme distribue a objets
EP2529330B1 (fr) Procédé de fourniture d&#39;un code dynamique par l&#39;intermédiaire d&#39;un téléphone
WO2020128363A1 (fr) Système de supervision formelle de communications
EP1034476B1 (fr) Procede de verification du fonctionnement d&#39;un systeme
EP2223215A1 (fr) Procédé de contrôle d&#39;au moins un processus applicatif et produit programme d&#39;ordinateur correspondant
WO2016185143A1 (fr) Système de traitement de données numériques multimedia
WO2007057569A2 (fr) Procede et systeme de traitement informatise d&#39;informations relatives a une communication telephonique
EP2656593A1 (fr) Procédé de gestion de services sur un réseau
EP2784680A2 (fr) Procédé d&#39;exécution d&#39;un logiciel sécuritaire et d&#39;un logiciel non sécuritaire entrelacés
FR2985878A1 (fr) Procede de selection d&#39;un protocole de transport de messages
WO2020089542A1 (fr) Procédé et circuit de multiplexage temporel d&#39;accès concurrents à une ressource informatique
WO2009013440A1 (fr) Procede d&#39;echange de messages entre serveur de donnees de session et des services clients
EP1355449A1 (fr) Procédé et système de détermination des paramètres de fonctionnement d&#39;un réseau de transmission d&#39;informations pour créer, dans ce réseau, un réseau virtuel
Sofack Enhancement of worst case traversal time for embedded networks with network calculus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10749869

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010749869

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13395102

Country of ref document: US