Patent ID: 7165252

Claim:
A method of scheduling on one or more processors, executions of a plurality of periodic and asynchronous processes, comprising: (A) automatically generating a pre-run-time schedule comprising mapping from a set of periodic process executions to a sequence of time slots on one or more processor time axes, each of the time slots having a beginning time and an end time, reserving each one of the time slots for execution of one of the periodic processes, the positions of the end time and the beginning time of each of the time slots being such that execution of the periodic processes, including satisfaction of predetermined constraints comprising (1) worst-case computation times for periodic processes and asynchronous processes, (2) period for periodic processes, (3) minimum time between two consecutive requests for asynchronous processes, (4) deadline for periodic processes and asynchronous processes, (5) permitted range of offset constraints for periodic processes wherein a permitted range of offset of a periodic process comprising an interval that begins at a lower bound value and ends at an upper bound value which may be equal to the lower bound value, the duration of the time interval between the beginning of the first period of said periodic process and time zero must be greater than or equal to said lower bound value and less than or equal to said upper bound value, (6) precedence relations for periodic processes wherein each precedence relation being defined between a selected pair of processes comprising a first process and a second process, both said first process and said second process being periodic processes, said first process precedes said second process, execution of said second process only allowed to start after said first process has completed its execution, and (7) exclusion relations for periodic and asynchronous processes wherein each exclusion relation being defined between a selected pair of processes comprising a first process and a second process, said first process being either a periodic process or an asynchronous process and said second process being either a periodic process or an asynchronous process, said first process excludes said second process, no execution of said second process being allowed to occur between the time that said first process starts its execution and the time that said first process completes its computation, can be completed between the beginning time and end time of respective time slots, further including converting one or more asynchronous processes into corresponding new periodic processes prior to the mapping step, and mapping new periodic processes to time slots in a manner similar to mapping of other periodic processes, such that all of said predetermined constraints will be satisfied (B) during run-time using the information in the pre-run-time schedule, including the positions of the beginning time and end time of the time slots of the periodic processes, to schedule the process executions, such that said predetermined constraints will be satisfied.