Method of executing concurrent tasks by a subsystem managed by a central processor
First Claim
Patent Images
1. A method of processing a plurality of concurrent tasks by a subsystem managed by a central processor, the method comprising, for each task, the steps of:
- writing by the central processor, the writing step including the sub-steps of;
writing a current message of the task in a memory, the task being comprised of a plurality of successive messages including a first message, at least one intermediate message, and a last message, the current message being one of the successive messages of the task that is currently being processed, each of the intermediate messages of the task comprising at least one subtask parameter and a link to the next message of the task that indicates a time for processing the next message of the task, the next message being the next successive message of the task;
determining if a counter is free for access based on a value of an access management semaphore that is associated with the counter;
if the counter is free for access, changing the value of the access management semaphore so as to prohibit access by the subsystem to the counter, and;
if the counter has a zero value, writing in the subsystem a link that indicates a time for processing the first message of the task by the subsystem, orif the counter has a non-zero value, writing in the subsystem a link to the next message of the task, this link to the next message of the task being included in the current message of the task written in the memory;
incrementing the counter by a number representative of presence of the current message of the task in the memory; and
changing the value of the access management semaphore so as to end the prohibition against the subsystem accessing the counter; and
processing by the subsystem, the processing step including the sub-steps of;
determining if the counter is free for access based on the value of the access management semaphore;
if the counter is free for access, changing the value of the access management semaphore so as to prohibit access by the central processor to the counter;
if the counter has a non-zero value, reading, from the current message, the link to the next message of the task and decrementing the counter;
changing the value of the access management semaphore so as to end the prohibition against the central processor accessing the counter; and
processing the subtask parameters of the next message of the task at the time for processing the next message of the task that is indicated in the link to the next message of the task, this link to the next message of the task being included in the current message of the task.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are provided for processing different concurrent tasks by a subsystem managed by a central processor. Each tasks is comprised of successive messages including a first message, intermediate messages, and a last message. Each intermediate message comprises a subtask parameter and a link to the next message that indicates the time when the next message is to be processed. The central processor and the subsystem are connected to a storage memory and several counters associated with respective tasks. The system and method reduce task disruptions of the system.
-
Citations
29 Claims
-
1. A method of processing a plurality of concurrent tasks by a subsystem managed by a central processor, the method comprising, for each task, the steps of:
-
writing by the central processor, the writing step including the sub-steps of; writing a current message of the task in a memory, the task being comprised of a plurality of successive messages including a first message, at least one intermediate message, and a last message, the current message being one of the successive messages of the task that is currently being processed, each of the intermediate messages of the task comprising at least one subtask parameter and a link to the next message of the task that indicates a time for processing the next message of the task, the next message being the next successive message of the task; determining if a counter is free for access based on a value of an access management semaphore that is associated with the counter; if the counter is free for access, changing the value of the access management semaphore so as to prohibit access by the subsystem to the counter, and; if the counter has a zero value, writing in the subsystem a link that indicates a time for processing the first message of the task by the subsystem, or if the counter has a non-zero value, writing in the subsystem a link to the next message of the task, this link to the next message of the task being included in the current message of the task written in the memory; incrementing the counter by a number representative of presence of the current message of the task in the memory; and changing the value of the access management semaphore so as to end the prohibition against the subsystem accessing the counter; and processing by the subsystem, the processing step including the sub-steps of; determining if the counter is free for access based on the value of the access management semaphore; if the counter is free for access, changing the value of the access management semaphore so as to prohibit access by the central processor to the counter; if the counter has a non-zero value, reading, from the current message, the link to the next message of the task and decrementing the counter; changing the value of the access management semaphore so as to end the prohibition against the central processor accessing the counter; and processing the subtask parameters of the next message of the task at the time for processing the next message of the task that is indicated in the link to the next message of the task, this link to the next message of the task being included in the current message of the task. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. An electronic system for executing a plurality of concurrent tasks, the system comprising:
-
a storage memory; a central processor for generating and writing messages of the concurrent tasks in the storage memory, each of the tasks being comprised of a plurality of successive messages including a first message, at least one intermediate message, and a last message, each of the intermediate messages of the task comprising at least one subtask parameter and a link to the next message of the task that indicates a time for processing the next message of the task, the next message being the next successive message of the task; a subsystem for reading the messages of the tasks from the storage memory, the subsystem comprising command means for requesting the processing of one of the messages of one of the tasks at the time for processing the one message of the one task that is indicated in the link of the preceding message of the one task, and processing means for processing the one message of the one task in response to the request; a plurality of counters, the counters being associated with the tasks such that a different one of the tasks is associated with each of the counters, each of the counters indicating the number of messages of that counter'"'"'s one associated task that are stored in the storage memory, each of the counters being incremented by the central processor to indicate the writing of a message of that counter'"'"'s one associated task in the storage memory, and each of the counters being decremented by the subsystem to indicate the reading of a message of that counter'"'"'s one associated task from the storage memory; and a plurality of semaphores, the semaphores being associated with the counters such that a different one of the counters is associated with each of the semaphores, each of the semaphores authorizing an access by the central processor to that semaphore'"'"'s one associated counter only in the absence of an access by the subsystem to that semaphore'"'"'s one associated counter, and authorizing an access by the subsystem to that semaphore'"'"'s one associated counter only in the absence of an access by the central processor to that semaphore'"'"'s one associated counter. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
-
-
26. A non-transitory machine readable medium encoded with a program for processing a plurality of concurrent tasks by a subsystem managed by a central processor, the program containing instructions for performing, for each task, the steps of:
-
writing by the central processor, the writing step including the sub-steps of; writing a current message of the task in a memory, the task being comprised of a plurality of successive messages including a first message, at least one intermediate message, and a last message, the current message being one of the successive messages of the task that is currently being processed, each of the intermediate messages of the task comprising at least one subtask parameter and a link to the next message of the task that indicates a time for processing the next message of the task, the next message being the next successive message of the task; determining if a counter is free for access based on a value of an access management semaphore that is associated with the counter; if the counter is free for access, changing the value of the access management semaphore so as to prohibit access by the subsystem to the counter, and; if the counter has a zero value, writing in the subsystem a link that indicates a time of processing for the first message of the task by the subsystem, or if the counter has a non-zero value, writing in the subsystem a link to the next message of the task, this link to the next message of the task being included in the current message of the task written in the memory; incrementing the counter by a number representative of presence of the current message of the task in the memory; and changing the value of the access management semaphore so as to end the prohibition against the subsystem accessing the counter; and processing by the subsystem, the processing step including the sub-steps of; determining if the counter is free for access based on the value of the access management semaphore; if the counter is free for access, changing the value of the access management semaphore so as to prohibit access by the central processor to the counter; if the counter has a non-zero value, reading, from the current message, the link to the next message of the task and decrementing the counter; changing the value of the access management semaphore so as to end the prohibition against the central processor accessing the counter; and processing the subtask parameters of the next message of the task at the time for processing the next message of the task that is indicated in the link to the next message of the task, this link to the next message of the task being included in the current message of the task. - View Dependent Claims (27, 28, 29)
-
Specification