The invention relates to multi-tasking real-time critical systems, such as control and monitoring systems used in the fields of transport (automotive, railway, naval, aerospace), industrial automation, energy, as well as other systems for which controlled allocation of resources is important, as in communications networks. The invention relates both to real-time systems for which a high level of implementation performance is required and to critical systems for which a high level of warranty is required as regards the use of hardware resources allocated to each task in the system.
In critical real-time systems, i.e. systems that do not tolerate any deadline violation through a belated execution of an operation, tasks are often executed through static scheduling methods. A static temporal allocation of the need for execution resources is then constructed offline, which demonstrates the temporal independence of tasks between them as regards the use of resources, and in particular the processor. This approach is described, for example, in the article [“A method and a technique to model and ensure timeliness in safety critical real-time systems”, C. Aussaguès, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998], and in patent applications WO2006-050967 and US2010-0199280.
However, this approach requires considering only a single sequencing plan for all activities, thus considering only a single time base for determining deadlines. This makes implementations without interference on a single processor difficult, for tasks with uncorrelated time bases, such as a task using a clock to determine its deadlines and a task using a position of a variable speed object to determine its deadlines. This would imply building two sequencing plans clocked by a common time base so that they can be composed in a single sequencing plan without interference between tasks. This is achievable in practice only where the resources are largely oversized to account for the worst-case scenario of each situation.
In some real-time systems having a high level of performance, that are not defined as “critical” because they can tolerate deadline violations within a certain margin, the composition of two sequencing plans clocked by different time bases is performed by dynamic scheduling algorithms. Such algorithms are described, for example, in [“Scheduling algorithms for multiprogramming in a hard real-time environment”, C. Liu, J. Layland, Journal of the ACM, vol. 20, no. 1, pp. 46-61] and [“Foundations of Real-Time Computing: Scheduling and Resource Management”, edited by André M. Van Tilborg, Gary M. Koob, 1991, Kluwer Academic Publishers] and also in [“A method and a technique to model and ensure timeliness in safety critical real-time systems”, C. Aussaguès, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998].
With these algorithms, preemptions are inevitable, i.e. the operating system can interrupt an ongoing operation to execute a more urgent operation. Scheduling being dynamic, the number and duration of the preemptions is not determinable, and each preemption introduces an overhead to perform context switching. This causes interference between tasks, so that the systems are more difficult to size, less predictable and not reproducible on complex processor architectures. Designers of such systems also encounter difficulties to properly set task priorities or deadlines in a system with two different time bases. The chosen options, such as the variation in execution needs depending on the values of application parameters, make systems constructed in this way very complex and uncontrollable.
There is thus a need for a technique capable of executing in time sharing two sequencing plans without interference, even if the time bases of the two plans are different.
This need is addressed by providing a method for executing two tasks in timesharing, comprising the steps of decomposing offline each task in a repetitive sequence of consecutive frames in a time base associated with the task, wherein each frame is associated with an atomic operation having an execution need, and defines a start date from which the operation may start and a deadline by which the operation must end, whereby each frame defines a time margin in which the operation may start; verifying for each frame of a first of the repetitive sequences that the corresponding operation can be performed between any two successive operations of a group of frames of the second repetitive sequence, overlapping the frame of the first repetitive sequence, while respecting the start dates and deadlines of the operations; and if the verification is satisfied, allowing the execution of the two tasks.
The operations of the two tasks are then scheduled according to the following cases, evaluated at each key date, wherein a key date occurs at each deadline, each start date, and each end of operation: if two operations can start, executing the operation having the shorter deadline; and if a single operation can start, executing it only if its execution need is less than the time remaining until the start date of the next frame of the other sequence, plus the margin of time associated with said next frame of the other sequence.
Each frame may further comprise a reserve time interval that may be zero, located after the deadline of the frame or before the start date of the frame, wherein the reserve time intervals of any one of the repetitive sequences may be used to execute an operation of the other repetitive sequence.
The verification step may comprise the following steps:
Da
i
≦Tb
j+1 [A.1]
Da
i
≦Rb
j
+Tb
j+1 [B.1]
and Dbj≦Tai, and
Db
j
≦Ta
i, [C.1]
The verification step may comprise the following additional steps:
Da
i
≦Tb
j+1
+Rb
j+1
+Tb
j−2 [A.2]
and Dai+Dbj+1≦Tai+Tbj−1
Da
i
≦Tb
j+1
+Rb
j+1
+Tb
j+2 [B.2]
and Dbj+Dai+Dbj+1≦Tai+Tbj+1
Db
j
≦Ta
i+min[Tbj−Dai,Rai,Rai−1] [C.2]
The time bases determining the durations of the frames may be variable so that the time margins T and the reserve times R vary by a factor 1 to za for the frames Fa and a factor 1 to zb for the frames Fb. The verification step may then further comprise the steps of:
Da
i
≦Tb
j+1
+Rb
j+1
+Tb
j+2 [A.2]
and min[ql(zb·(Tbj+Rbj)+(zb−1)Dbj),Dai]+Dbj+1≦Tai
Da
i
≦Tb
j+1
+Rb
j+1
+Tb
j+2 [B.2]
and Dbj+min[ql(zb·Tbj+(zb−1)Dbj)+zb·Rbj,Dai]+Dbj+1≦Tai
Db
j
≦Ta
i+min[Tbj−Dai,Rai,Rai−1] [C.2]
The verification step may comprise the following steps:
Da
i
≦Tb
j
+Rb
j
+Tb
j+1 [B.1.1]
and Dbj−1≦Tl+min[Tbj−1+Dbj−1+Rbj−1−Tl−Dai−1,Rai−2]
Other advantages and features will become more clearly apparent from the following description of particular embodiments of the invention provided for exemplary purposes only and represented in the appended drawings, in which:
A real-time task may be considered as a sequence of basic processes or operations to be performed one after the other, where each operation has a deadline in a time base associated with the task. In a critical real-time system, deadlines are mandatory, i.e. an operation that exceeds its deadline would cause an error condition and a system shut-down, for example. The techniques described below are applicable to such a system to improve the level of performance in that multiple tasks, even with uncorrelated time bases, may be executed in time-sharing on the system.
Thus, as shown in
The sum of the reserve intervals R is, for example, a time that the programmer allocates the system to conduct non real-time operations, such as input/output.
Two tasks that should be performed in time-sharing on critical real-time system are thus broken down into repetitive sequences of frames. For the tasks to be executable without interference, i.e. respecting the atomicity of operations, it is sought to compose the sequences so that each operation of one sequence can be executed at any time between two successive operations of the other sequence, while respecting the constraints of the frames of the two sequences, namely the deadlines and frame starts.
In
The operation Da1 begins one unit after the start of the corresponding frame. At the end of operation Da1, the operation Da2 cannot be started yet, but operation Db1 may be started. At the end of operation Db1, no operation is ready for execution. The start of frame Fa2, here deadline Ea1, is awaited for starting the operation Da2. At the end of the operation Da2, the operation Db2 is executable, but it should not be started. Indeed, if operation Db2 were launched immediately, it would end just at the deadline Ea3, whereby the operation Da3 could not run before that deadline. In this situation, the beginning of the frame Fa3 is awaited to launch the operation Da3. Finally, the operation Db2 can start at the end of operation Da3.
In
In
A first step common to the techniques referred to herein includes the composition, for two tasks to execute in time-sharing, of two repetitive sequences RSFa and RSFb that can be unwound in the conditions of
A second step includes verifying that any two sequences are compatible, i.e. that they can be unwound so that each operation can be executed within its constraints, such as in
This compatibility verification may be implemented in a development tool designed for the programmer to compose sequences by trial and error. It is preferably also carried out in the real-time system itself, upon loading for execution sequencing plans defined by the two repetitive sequences. The system may then be configured to refuse operation if the sequences are detected as incompatible.
A third step includes scheduling the operations of the two sequences in the real-time system. As the figures show, it is not sufficient for achieving correct operation to alternate the operations of the first sequence with the operations of the second sequence or to start an operation when it is ready for execution. Scheduling may be achieved according to the following cases, assessed at each key date. Key dates may be defined as the beginnings of the frames in the two sequences, the deadlines, and the operation ends. When the reserve time slots R (
Otherwise, the next key date is awaited to reassess the situation. For example, in
Compatibility criteria will now be defined between any two repetitive sequences RSFa and RSFb used in sequencing plans for a real-time system.
An exhaustive compatibility check would involve examining all possible combinations of positions of the operations in their frames and all possible positions of the sequences relative to each other, with a granularity of one clock cycle, to assess whether concurrent operations can be executed according to the imposed constraints.
Such an exhaustive verification would be difficult to achieve in a reasonable time. Simplified criteria are sought that can be evaluated online on the real-time system upon loading sequencing plans accompanying executable code for the tasks. For this purpose, three general assumptions are considered regarding the positioning of each frame of one of the sequences with respect to each frame of the other sequence. For each assumption, it is verified that the operation of a given frame Fai can be executed within an available slot left by the concurrent frames Fbj, Fbj+, . . . overlapping the frame Fai. Two frames Fai and Fbj are considered compatible when the verification is satisfied for each of the three assumptions.
For each assumption, criteria are sought that are independent of the relative positions of the frames. For this purpose, in general, unknown time intervals used to find slots to perform operations are underestimated, and unknown time intervals used to check compliance with deadlines are overestimated.
In
Da
i
<Tb
j+1. [A.1]
In
Da
i
≦Tb
j+1
+Tb
j+2
AND
qTb
j
+Db
j+1
+Da
i
≦Da
i
+Ta
i, hence qTbj+Dbj+1≦Tai
The worst case for respecting the deadline is q=1, increasing the left member of the inequality. Therefore the deadline Eai is met in all cases if:
Tb
j
+Db
j+1
≦Ta
i
However, it is not realistic to consider in a same context worst-case situations using the two extremes of a same variable. In fact, a certain range of values for the variable q can be excluded when considering the behavior of the real system in the situation of
Da
i
≦qTb
j
+Tb
j+1
that is to say, if conditions 3) of the scheduling method are met.
Let ql be the limit value of q to achieve equality in the above inequality:
Da
i
=qlTb
j
+Tb
j+1, hence ql=(Dai−Tbj+1)/Tbj
If q≧ql, it is certain that the execution of the real system occurs according to
qlTb
j
+Db
j+1
≦Ta
i, hence, by replacing ql by its value,
Da
i
−Tb
j+1
+Db
j+1
≦Ta
i, or Dai+Dbj+1≦Tai+Tbj+1
The expression used to calculate the value ql is not limited to 1. If ql exceeds 1, it does not make practical sense. The value ql is thus capped at 1.
The conditions resulting from the situation of
Da
i
≦Tb
j+1
+Tb
j+2
AND
qlTb
j
+Db
j+1
≦Ta
i [A.2]
The condition A.1 is verifiable in a situation where the frame Fai overlaps at least two consecutive frames Fb. The condition A.2 is verifiable in a situation where the frame Fai overlaps at least three consecutive frames Fb. In a similar manner, conditions A.3 and following may be found that are verifiable in situations where the frame Fai overlaps at least four or more consecutive frames Fb, but the likelihood of satisfying such conditions decreases rapidly. The conditions A.1 and A.2 (and, if applicable, A.3 and following) are alternative, that is to say, it is sufficient that any one of these conditions is satisfied for jumping to the validation of the other assumptions.
According to
Da
i
≦Tb
j+1, and, to respect deadline Eai,Dbj+Dai≦Dai+Tai, hence Dbj≦Tai
The conditions resulting from the situation of
Da
i
≦Tb
j+1
AND
Db
j
≦Ta
i [B.1]
From
Da
i
≦Tb
j+1
+Tb
j+2
AND
Db
j
+qlTb
j
+Db
j+1
≦Ta
i [B.2]
As for condition A.1, the condition B.1 is verifiable in a situation where the frame Fai overlaps at least two consecutive frames Fb. The condition B.2 is verifiable in a situation where the frame Fai overlaps at least three consecutive frames Fb. In a similar manner, conditions B.3 and following may be found that are verifiable in situations where the frame Fai overlaps at least four or more consecutive frames Fb, but the likelihood of satisfying such conditions decreases rapidly. The conditions B.1 and B.2 (and, if applicable, A.3 and following) are alternative, that is to say, it is sufficient that any one of these conditions is satisfied for jumping to the validation of the other assumptions.
Both operations Dai and Dbj are ready for execution at the beginning of the frame Fai. It may be assumed that the operation Dbj was not started at the beginning of its frame, because the scheduling conditions 3) have not been met, for example, as shown, when the operation Dai−1 ends at its deadline at the beginning of frame Fai. The deadline Eai being the shortest, the operation Dai is launched first. The operation Dbj is launched at the end of the operation Dai. In the worst-case within the limits of assumption (C), the deadlines of frames Fai and Fbj coincide, which implies:
Db
j
≦Ta
i [C.1]
This same inequality is obtained assuming operation Dbj starts at the beginning of the frame Fai, although the provided scheduling process would not proceed this way. For the operation Dai to end before its deadline, the inequality Dbj+Dai≦Dai+Tai is verified, i.e. the same inequality as above.
Each frame Fai is thus compared to each frame Fbj, ensuring that the deadlines of frames Fai are met, without however verifying that the deadlines of the frames Fbj are met. This forms a first verification pass. A second pass to complete the verification is then to repeat the above operations by comparing each frame Fbj to each frame Fai, thereby ensuring that the deadlines of frames Fbj are met.
The verification of the compatibility of two repetitive sequences RSFa and RSFb having Na and Nb frames respectively, may be summarized by the following pseudo code. In this pseudo-code, alternative conditions are condensed in expressions min(x, y) at the left side of inequalities, and max(x, y) at the right side of inequalities and necessary conditions are condensed in expressions min(x, y) on the right side of inequalities, and max(x, y) on the left side of inequalities. Conditions A.3 and B.3 have been provided, as mentioned above, to reflect the event that frame Fai overlaps four frames Fbj to Fbj+3. Operations on the indices i and j are performed modulo the maximum value of the index (Na for i, and Nb for j), since the frame sequences are repeatable indefinitely.
To complete the verification, as previously indicated, this loop may be repeated switching the frames Fa and Fb.
In this loop, according to an alternative with respect to what has been described above, before proceeding with the evaluation of the condition B.2, a condition B.1.1 is evaluated.
As previously indicated, the frames may include a reserve time R which may be taken by the system to perform non-real-time tasks. Such a reserve time may be used to perform real-time operations. It adds to the time margins T of one sequence to promote the execution of operations D of the other sequence, but it may harden the conditions for meeting deadlines.
Non-zero reserve times R may in particular relax the condition C.1.
If the operation Dbj was not scheduled at the beginning of its frame Fbj, it means that:
Db
j
>kRa
i−1
+Ta
i.
The limit value of k is denoted kl, such that Dbj=klRai−1+Tai, hence kl=(Dbj−Tai)/Rai−1. If k>kl, it is certain that the operation Dbj can be scheduled before the beginning of the frame Fai—this case should not be considered because it does not fit the assumption C. Only the values of k between 0 and kl are considered.
For operation Dai to be executable, it should meet the condition Dai≦Tbj−kRai−1. The worst case is k=kl, whereby:
Da
i
≦Tb
j
−klRa
i−1, i.e., substituting kl by its value:
Da
i
≦Tb
j−(Dbj−Tai), or
Db
j
≦Ta
i
+Tb
j
−Da
i
The coefficient kl is at most equal to 1, which is expressed by:
Db
j
−Ta
i
≦Ra
i−1, or
Db
j
≦Ta
i
+Ra
i−1
Finally, to not constrain the execution of the operation Dai+1, the operation Dbj should not overlap the frame Fai+1. This is satisfied if:
Db
j
≦Ta
i
+Ra
i.
This leads to the following condition, an alternative to condition C.1:
Db
j
≦Ta
i
+Tb
j
−Da
i
AND
Db
j
≦Ta
i
+Ra
i−1
AND
Db
j
≦Ta
i
+Ra
i [C.2]
The following pseudo-code takes into account the reserve times R.
The condition B.1.2 that appears in this pseudo-code is determined using the same approach as for the condition B.1.1, extending searches to frames Fai−2 and Fbj−2.
Until now, it was assumed that the time bases for clocking the two tasks were isochronous, that is to say that the durations of the intervals of one of the sequences were not variable relative to those of the other sequence. In practice, it may be necessary to compose two tasks using uncorrelated time bases, like tasks indexed to the positions of elements that move at variable speeds.
To handle this case, a variability coefficient z≧1 is introduced for each repetitive sequence, za and zb respectively for the sequences RSFa and RSFb. The coefficients za and zb are fixed and represent the maximum slowdown of the intervals T and R in the two sequences. Assuming that the notations used in the previous relationships represent the minimum values of the intervals, each of the values T and R may thus assume two values, T or zT and R or zR. The execution needs D remain constant because they only depend on the system clock.
In the previous relationships, where an interval is used to find a slot to execute an operation, its underestimated value T or R is maintained. When the interval is used to check compliance with a deadline, its overestimated value zT or zR is used. The following pseudo code is then obtained.
In case 3) of the scheduling process described above, the margin of time to consider is the minimum value, i.e. T and not zT.
The principles presented above have been described with two tasks to execute in timesharing, but they apply to any number of tasks. Indeed, the described method makes it possible in practice to compose a single sequencing plan for two compatible tasks. The sequencing plan thus obtained may be composed again, using the same techniques, with a sequencing plan for a third compatible task, and so on.
Number | Date | Country | Kind |
---|---|---|---|
13 62893 | Dec 2013 | FR | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/FR2014/053055 | 11/27/2014 | WO | 00 |