Processing

Please wait...

Settings

Settings

Goto Application

1. US20160070600 - Method of execution of tasks in a critical real-time system

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ EN ]

Claims

1. A method of offline scheduling processes of a task conforming to a flexible model for a real-time multitasking system, using a toolchain for compiling source code defining the task, the source code: (i) defining the task as sequences of processes with branch points, at each of which an execution of one or the other of two alternative processes is decided at run time on the real-time multitasking system, and (ii) defining for each process a hardware resource need and a time constraint that need to be satisfied at run time on the real-time multitasking system, the method comprising the following steps:
a) parsing the source code for branch points;
b) defining for the two alternative processes of each branch point a common time slot based on the time constraints of the alternative processes;
c) assigning to the common time slot a resource need equal to the larger of the resource needs of the two alternative processes; and
d) producing static scheduling parameters for the real-time multitasking system from the resulting time slots and corresponding resource needs, wherein:
a common time slot defined for two alternative processes configures a time base of the real-time multitasking system for executing inside the common time slot any of the two alternative processes decided at run time, and
a corresponding resource need configures a watchdog of the real-time multitasking system for monitoring compliance with the resource need by the alternative process executed inside the common time slot.
2. The method of claim 1, wherein
the source code defines the task in a form of a graph where the processes are connected by transition nodes, and each transition node defines a synchronization point in the time base of the real-time multitasking system, and
the method further comprises the steps of:
defining limits of a time slot of a process from a source transition node and a destination transition node of the process;
for two alternative processes that have a common source node and two respective target nodes, merging the two target nodes into a merged target node; and
defining the time slot common to both alternative processes from the common source node and the merged target node.
3. The method according to claim 2, further comprising the following steps:
when two alternative processes have different time constraints, creating an intermediate transition node in the alternative process having a longer time constraint, resulting in a first partial alternative process between the source node and the intermediate node, and a second partial process between the intermediate node and the target node of the alternative process having the longer time constraint;
assigning to the first partial alternative process a first resource need and a time constraint equal to the time constraint of the alternative process having the shorter time constraint;
assigning to the second partial process a second resource need such that the sum of the first and second resource needs is equal to the resource need of the alternative process having the longer time constraint, and a time constraint equal to the difference of the time constraints of the two alternative processes; and
proceeding with the first partial alternative process and the alternative process having the shorter time constraint according to step b).
4. A method of executing a task that is scheduled according to claim 3, comprising the following step executed in the multitasking system:
omitting to signal a fault by the watchdog if the execution of the ongoing process exceeds the resource need and the ongoing process is the first partial alternative process.
5. The method of claim 4, further comprising the steps of:
setting a state variable upon execution of the first partial alternative process;
omitting to signal a fault by the watchdog if the execution of the ongoing process exceeds the resource need and the state variable is set; and
clearing the state variable at a synchronization point corresponding to a merged target node.
6. The method according to claim 3, further comprising the following steps for a cyclic portion of the graph:
dividing each process having a longer time constraint in a set of partial processes each having a shorter time constraint that is the greatest common divisor of the time constraints in the cyclic portion, whereby the cyclic portion of the graph is transformed into a normalized sub-graph defining a sequence of full or partial processes all having the same normalized time constraint; and
distributing the resource need of each process having a longer time constraint between the corresponding partial processes, whereby the sum of the resource needs of the partial processes is equal to the resource need of the process having the longer time constraint.
7. The method of claim 6, further comprising the steps of:
overlapping the end of a first portion of the sub-graph over the beginning of a second portion of the sub-graph, so that the transition nodes of the end of the first portion of the sub-graph coincide with respective nodes of the beginning of the second portion of the sub-graph, whereby two consecutive pairs of coincident nodes define a time slot common to the processes having as respective origins the two nodes of the first pair; and
assigning to the common time slot thus defined a resource need equal to the greatest of the resource needs of the processes associated with the first pair of nodes, and a time constraint equal to the normalized time constraint.
8. A method of offline scheduling processes that form a task conforming to a flexible model for a real-time multitasking system, using a toolchain for compiling source code defining the task, the source code: (i) representing the task in a form of a graph defining a group of processes connected by transition nodes, where each transition node defines a synchronization point according to a time base during execution of the task on the real-time multitasking system, and (ii) defining for each process a hardware resource need and a time constraint, the method comprising the steps of:
a) identifying each branch transition node at which an execution of one or the other of two alternative processes is decided at run time, whereby the two alternative processes have the branch transition node as a common source transition node and two respective target transition nodes;
b) creating an intermediate transition node in the alternative process having a longer time constraint, resulting in a first partial alternative process between the common source transition node and the intermediate transition node, and a second partial process between the intermediate transition node and the target transition node of the alternative process having the longer time constraint;
c) assigning to the first partial alternative process a first resource need and a time constraint equal to the time constraint of the alternative process having the shorter time constraint;
d) assigning to the second partial process a second resource need such that the sum of the first and second resource needs is equal to the resource need of the alternative process having the longer time constraint, and a time constraint equal to the difference of the time constraints of the two alternative processes;
e) merging the target transition node of the alternative process having the shorter time constraint with the intermediate transition node, resulting in a merged target node;
f) defining for the first partial alternative process and the alternative process having the shorter time constraint a common time slot extending between the common source transition node and the merged target transition node;
g) assigning to the common time slot a resource need equal to the larger of the resource needs of the two alternative processes; and
h) producing static scheduling parameters for the multitasking system based on the resulting time slots and corresponding resource needs.
9. The method of executing a task scheduled according to claim 8, further comprising the following steps executed in the multitasking system:
in each time slot, checking by a watchdog that the execution of an ongoing process complies with the resource need assigned to the time slot; and
omitting to signal a fault by the watchdog if the execution of the ongoing process exceeds the resource need and the ongoing process is a first partial alternative process.
10. The method of claim 9, further comprising the steps of:
setting a state variable upon execution of the first partial alternative process;
omitting to signal a fault by the watchdog if the execution of the ongoing process exceeds the resource need and the state variable is set; and
clearing the state variable at a synchronization point corresponding to a merged target node.
11. The method of claim 8, further comprising the following steps for a cyclic portion of the graph:
dividing each process having a longer time constraint in a set of partial processes each having a shorter time constraint that is the greatest common divisor of the time constraints in the cyclic portion, whereby the cyclic portion of the graph is transformed into a normalized sub-graph defining a sequence of full or partial processes all having the same normalized time constraint; and
distributing the resource need of each process having a longer time constraint between the corresponding partial processes, whereby the sum of the resource needs of the partial processes is equal to the resource need of the process having the longer time constraint.
12. The method of claim 11, further comprising the steps of:
overlapping the end of a first portion of the sub-graph over the beginning of a second portion of the sub-graph, so that the transition nodes of the end of the first portion of the sub-graph coincide with respective nodes of the beginning of the second portion of the sub-graph, whereby two consecutive pairs of coincident nodes define a time slot common to the processes having as respective origins the two nodes of the first pair; and
assigning to the common time slot thus defined a resource need equal to the greatest of the resource needs of the processes associated with the first pair of nodes, and a time constraint equal to the normalized time constraint.