Software bus
AssigneeSagemcom Broadband SAS
InventorsAntony Rocquelay, Laurent Alarcon
Life of this patent
Estimating the term…
Abstract
The present invention relates to the field of methods of communication between software modules and more particularly software buses. There is described a software bus which allows communication between software modules. This communication occurs within a machine and between machines and operates interchangeably for the software module whether one is dealing with a process, a thread or a simple task. The communication relies on mechanisms adapted to the multitask level at which the sender and receiver software modules operate. It is based on a hierarchical architecture, phases of discovery and of recording of the various software modules having to communicate via the bus.
Claims9
1-11. (canceled)
Information processing device, comprising:
- an operating system;
- at least one process scheduled by said operating system, and
- threads that can be scheduled in said processes by said operating system,
- wherein;
- in each thread, at least one user task or a system task,
- each thread itself containing an FIFO for each task that said thread contains as well as a bus management module of the thread type itself integrating a so-called proprietary scheduler for scheduling the task or tasks of said thread,
- and a first task of a process can transmit a message to a second task, it comprises
- means for seeking the process on which said second task depends, and
- means, if said second task belongs to the same process as said first task, for posting said message in the FIFO dedicated to said second task so that the latter can take it into account, and
- means, if the second task belongs to a process other than the process on which said first task depends,
- for creating a so-called distant relay task in a threador of said process on which the second task depends,
- for creating a so-called relay task in a thread of said process on which the first task depends,
- for posting said message in the FIFO dedicated to said relay task,
- for transmitting it to the distant relay task,
- for posting it in the FIFO of the second task so that it can take it into account.
Method for exchanging messages between tasks running on one or two information processing devices, said or each information processing device comprising:
- an operating system;
- at least one process sequenced by said operating system;
- threads being able to be scheduled in said processes by said operating system;
- and
- within each thread, at least one user task and/or one system task,
- each thread itself containing an FIFO for each task that said thread contains, as well as a bus management module of the thread type itself integrating a proprietary scheduler for scheduling said thread,
- wherein, in order to transmit a message from a first task to a second task, it comprises
- the following steps implemented by the bus management module of the thread hosting said first task:
- when said second task belongs to the same process as said first task, a step of posting said message in the FIFO dedicated to said second task so that the latter can take it into account, otherwise
- a step of transmission, to said bus management module of the process of said first task, of a message seeking the second task,
- the following steps implemented by the bus management module of the process of said first task:
- when said second task is hosted by a thread of the process of said first task,
- a step of creating a distant relay task in a thread of said process of said first task,
- a step of transmitting a response to said bus management module of the thread hosting the first task,
- otherwise:
- a step of broadcasting, to each of said bus management modules of the processes, scheduled by said operating system, a message seeking the second task,
- the following steps implemented by the bus management module of a process hosting the second task, on reception of a message seeking the second task,
- a step of creating a distant relay task in a thread of said process of said second task,
- a step of transmitting a response to said bus management module of the process of said first task,
- the step, also implemented by the bus management module of the process of said first task, following the reception of the response transmitted by the bus management module of the process of said second task, of transmitting a response to said bus management module of the thread hosting the first task, and
- the following steps implemented by the bus management module of the thread hosting said first task, when it has received a response from said bus management module of the process of said first task:
- a step of creating a relay task corresponding to said distant relay task in a thread of said process hosting said first task, and
- a step of posting said message in the FIFO dedicated to said relay task, which will transmit it to the distant relay task, and then to the second task.
Dependencies are inferred from the claim text.