Claims
- 1. A computer system, which comprises:
a core operating system; a system space having a number of memory locations; the core operating system arranged to partition the system space into a core operating system space and a number of partitions which include a plurality of partitions; and a partition operating system and a partition user application in each partition, each partition operating system providing resource allocation services to the respective partition user application within the partition; an interpartition communication system, the interpartition communication system interacting with the core operating system and each partition operating system to deliver messages between partitions.
- 2. The system of claim 1, wherein the interpartition communication system further includes:
one or more data buffers in the core operating system space, and a sender process and a receiver process in each partition of the plurality of partitions, the sender process in each partition executable to deliver messages for one or more destination partitions of the plurality of partitions to one or more of the one or more data buffers, and the receiver process in each partition executable to retrieve messages, for which its respective partition is one of the destination partitions, from one or more of the one or more data buffers
- 3. The system of claim 2, wherein at least one of the number of partitions includes no sender process and no receiver process.
- 4. The system of claim 2, wherein at least one of the number of partitions includes a sender process and no receiver process.
- 5. The system of claim 2, wherein at least one of the plurality of partitions includes a receiver process and no sender process.
- 6. The system of claim 2, further comprising
a port driver in the core operating system space; wherein the one or more data buffers include, for each partition of the plurality of partitions, a corresponding source buffer and a corresponding destination buffer, wherein the sender process in each partition of the plurality of partitions is executable to deliver messages to its corresponding source buffer utilizing its partition operating system and the core operating system; wherein the receiver process in each partition of the plurality of partitions is executable to retrieve messages from its corresponding destination buffer utilizing its partition operating system and the core operating system; wherein the port driver is executable to transfer messages from each of the source buffers to one or more of the destination buffers, based upon the destination partition of each message transferred, utilizing the core operating system.
- 7. The system of claim 6, wherein one of the partitions include a plurality of corresponding source buffers.
- 8. The system of claim 6, wherein one of the partitions include a plurality of corresponding destination buffers.
- 9. The system of claim 6, wherein, if a message in a first one of the source buffers is for a plurality of the destination buffers, and one of the plurality of destination buffers is full, the message is not sent to any of the plurality of destination buffers.
- 10. The system of claim 6, wherein if a message in a first one of the source buffers is for a plurality of the destination buffers, and one of the plurality of destination buffers is full, the message is sent to each one of the plurality of destination buffers except said one of the destination buffers.
- 11. The system of claim 6, wherein each sender process maintains information indicative of an available memory space in its corresponding source buffer, and, wherein the sender process only delivers a message to its corresponding source buffer if said information indicates that said available memory space is sufficient to store the message.
- 12. The system of claim 11, wherein, when the port driver transfers a message out of one of the source buffers, the port driver notifies the partition operating system for the partition corresponding said one source buffer, and, based upon said notification, the corresponding sender process updates said information.
- 13. The system of claim 1, wherein the one or more data buffers include, for each partition of the plurality of partitions, a corresponding source buffer and a corresponding destination buffer,
wherein the sender process in each partition of the plurality of partitions is executable to deliver messages to its corresponding source buffer utilizing its partition operating system and the core operating system; wherein the receiver process in each partition of the plurality of partitions is executable to retrieve messages from its corresponding destination buffer utilizing its partition operating system and the core operating system.
- 14. The system of claim 1, further comprising a plurality of channels, each channel including a source port and one or more destination ports, each source port and each destination port associated with one of the partitions, wherein messages are sent from each source port to all destination ports in said each source port's channel.
- 15. The system of claim 14, wherein no source port is in more than one channel and no destination port is in more than one channel.
- 16. The system of claim 14, wherein the interpartition communication system further includes:
a data buffer in the core operating system space for each channel, and a sender process and a receiver process in each partition of the plurality of partitions, the sender process in each partition of the plurality of partitions executable to deliver messages for each of its associated source ports to the data buffer corresponding to the channel for said each associated source port, and the receiver process in each partition of the plurality of partitions executable to retrieve messages for each of its associated destination ports from the data buffers corresponding to the channel for said each associated destination port.
- 17. The system of claim 16, wherein the data buffer for each channel includes a source buffer and a destination buffer.
- 18. The system of claim 16, further comprising
a port driver in the core operating system space; wherein the data buffer includes, for each channel, a corresponding source buffer and a corresponding destination buffer, wherein the sender process in each partition of the plurality of partitions is executable to deliver messages for each of its associated source ports to the corresponding source buffer utilizing its partition operating system and the core operating system; wherein the receiver process in each partition of the plurality of partitions is executable to retrieve messages for each of its associated destination ports from the corresponding destination buffer utilizing its partition operating system and the core operating system; wherein, for each of the source buffers, the port driver is executable to transfer messages from said each source buffer to each destination buffer in the channel associated with said each source buffer.
- 19. The system of claim 2, wherein the sender process includes a plurality of sender processes.
- 20. The system of claim 2, wherein the receiver process includes a plurality of receiver processes.
- 21. The system of claim 16, wherein the sender process includes a plurality of sender processes.
- 22. The system of claim 16, wherein the receiver process includes a plurality of receiver processes.
- 23. The system of claim 14, further including comprising, for each source port, a port attribute in a port data structure, wherein, if the port attribute has a first value, if one of the destination ports in a source port's channel is full, no message is sent from said source port to any of the destination ports in said source port's channel; and wherein, if the port attribute has a second value, if one of the destination ports in said source port's channel is full, a message sent from said source port is sent to each one of the destination ports in said each source port's channel except said one of the destination ports.
- 24. The system of claim 1, wherein each partition is implemented as a protection domain.
- 25. A computer system, which comprises
a core operating system; a system space having a number of memory locations; the core operating system arranged to partition the system space into a core operating system space and a plurality of partitions; a partition operating system and a partition user application pair in each partition, whereby the partition operating system, partition user application pairs of the partitions are spatially partitioned from each other; an interpartition communication system, the interpartition communication system interacting with the core operating system and each partition operating system to deliver messages between partitions.
- 26. The system of claim 25, wherein each partition is implemented as a protection domain.
- 27. A method for operating a computer system, comprising the steps of:
implementing a core operating system; providing a system space having a number of memory locations; operating the core operating system to partition the system space into a plurality of partitions; and implementing a partition operating system and a partition user application pair in each partition, whereby the partition operating system, partition user application pairs of the partitions are spatially partitioned from each other; operating each partition operating system of each pair to provide resource allocation services to the respective partition user application within the partition; implementing an interpartition communication system, the interpartition communication system having components in the system space and in each partition, the interpartition communication system interacting with the core operating system and each partition operating system to deliver messages between partitions.
- 28. The method of claim 27, wherein each partition is implemented as a protection domain.
- 29. A method for operating a computer system, comprising the steps of:
implementing a core operating system; providing a system space having a number of memory locations; operating the core operating system to create a number of protection domains to partition the system space; and implementing a partition operating system and a partition user application pair in each partition, whereby the partition operating system, partition user application pairs of the partitions are spatially partitioned from each other; operating each partition operating system of each pair to provide resource allocation services to the respective partition user application within the partition; operating the core operating system to schedule the partitions such that the partition operating system, partition user application pairs are temporally partitioned from each other; implementing an interpartition communication system, the interpartition communication system having components in the system space and in each partition, the interpartition communication system interacting with the core operating system and each partition operating system to deliver messages between partitions.
- 30. A method for operating a computer system, which comprises the steps of:
implementing a core operating system; and implementing a system space having a number of memory locations; implementing the core operating system to create a number of protection domains to partition the system space into a core operating system space in a system protection domain and a plurality of partitions in a corresponding plurality of partition protection domains; and providing one or more data buffers in the system protection domain; implementing an interpartition communication system for transmitting a message from a source partition of the plurality of partitions to one or more destination partitions of the plurality of partitions, the interpartition communication system implemented via a sender process in each source partition protection domain and a receiver process in each destination partition protection domain, the sender process in each source partition protection domain executable to deliver messages for one or more destination partitions to one or more of the one or more data buffers, and the receiver process in each destination partition protection domain executable to retrieve messages, for which its respective partition is one of the destination partitions, from one or more of the one or more data buffers.
- 31. A computer system, which comprises:
a core operating system; and a system space having a number of memory locations; the core operating system arranged to create a number of projection domains to partition the system space into a core operating system space in a system protection domain and a plurality of partitions in a corresponding plurality of partition protection domains; and one or more data buffers in the system protection domain; an interpartition communication system for transmitting a message from a source partition of the plurality of partitions to one or more destination partitions of the plurality of partitions, the interpartition communication system including a sender process in each source protection domain and a receiver process in each destination partition protection domain, the sender process in each source partition protection domain executable to deliver messages for one or more destination partitions to one or more of the one or more data buffers, and the receiver process in each destination partition protection domain executable to retrieve messages, for which its respective partition is one of the destination partitions, from one or more of the one or more data buffers.
- 32. A computer system, which comprises:
a core operating system; a system space having a number of memory locations; the core operating system arranged to partition the system space into a core operating system space and a plurality of partitions; and a partition operating system and a partition user application in each partition, each partition operating system providing resource allocation services to the respective partition user application within the partition; an interpartition communication system, the interpartition communication system interacting with the core operating system and each partition operating system to deliver messages between partitions.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to U.S. application Ser. No. ______ [DDK ATTORNEY DOCKET NO. 218.1045], entitled A TWO-LEVEL OPERATING SYSTEM ARCHITECTURE and U.S. application Ser. No. ______ [DDK ATTORNEY DOCKET NO. 218.1043], entitled HEALTH MONITORING SYSTEM FOR A PARTITIONED ARCHITECTURE, both filed on even date herewith, and the entire disclosures of which are hereby incorporated by reference in their entirety.