IP Library Granted Patent US 7,140,015
Granted Patent B1
US 7,140,015 · App. 09/408,149 · Granted Nov 21, 2006

Microkernel for real time applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,140,015
App. No.
09/408,149
Granted
Nov 21, 2006
Kind
B1
Abstract

An operating system includes a non-preemptive microkernel executing one or more processes in accordance with a predetermined priority; and one or more kernels adapted to be executed as one or more processes by the non-preemptive microkernel.

Claims (43)

1. A computer program product tangibly stored on a machine readable medium, computer program product comprising:

a non-preemptive microkernel executing two or more processes in accordance with a non-preemptive scheduling scheme, wherein a lower priority process executed by the non-preemptive microkernel relinquishes a processor for a higher priority process to execute only when the lower priority process blocks or explicitly requests to be preempted; and

one or more kernels each being executed as a process by the non-preemptive microkernel,

wherein at least one of the one or more kernels executes an operating system as a dependent process, the operating system being a time-sliced operating system or a time-sliced microkernel.

2. The computer program product of claim 1 , wherein the operating system is Unix.

3. The computer program product of claim 1 , wherein each of the two or more processes executed by the non-preemptive microkernel has its own stack.

4. The computer program product of claim 1 , wherein each of the two or more processes executed by the non-preemptive microkernel communicate using one or more messages.

5. The computer program product of claim 1 , wherein each of the two or more processes executed by the non-preemptive microkernel has a unique process identifier (PID).

6. The computer program product of claim 5 , further comprising a mailbox coupled to a plurality of processes to service messages sent to a single PID.

7. The computer program product of claim 1 , wherein each of the two ore more processes executed by the non-preemptive microkernel never terminates.

8. The computer program product of claim 1 , wherein one of the one or more kernels is a microkernel.

9. A method for operating a computer system including a CPU, comprising:

managing two or more processes with a non-preemptive microkernel, the microkernel executing the two or more processes in accordance with a non-preemptive scheduling scheme, wherein a lower priority process executed by the non-preemptive microkernel relinquishes the CPU for a higher priority process to execute only when the lower priority process blocks or explicitly requests to be preempted;

executing one or more kernels as one or more processes managed by the non-preemptive microkernel; and

executing an operating system in one of the one or more kernels as a dependent process, the operating system being a time-sliced operating system or a time-sliced microkernel.

10. The method of claim 9 , wherein the operating system is Unix.

11. The method of claim 9 , wherein each of the two or more processes executed by the non-preemptive microkernel has its own stack.

12. The method of claim 9 , further comprising performing inter-process communication using one or more messages.

13. The method of claim 9 , wherein each of the two or more processes executed by the non-preemptive microkernel has a unique process identifier (PID).

14. The method of claim 13 , further comprising servicing messages sent to a single PID by a plurality of processes using a mailbox.

15. The method of claim 9 , further comprising executing the two or more processes without termination.

16. The method of claim 9 , further comprising executing a microkernel in one of the one or more kernels.

17. A computer system, comprising:

a processor;

means for managing two or more processes with a non-preemptive microkernel, the microkernel executing the two or more processes in accordance with a non-preemptive scheduling scheme, wherein a lower priority process executed by the non-preemptive microkernel relinquishes the processor for a higher priority process to execute only when the lower priority process blocks or explicitly requests to be preempted;

means for executing one or more kernels as one or more processes managed by the non-preemptive microkernel; and

means for executing an operating system in one of the one or more kernels as a dependent process, the operating system being a time-sliced operating system or a time-sliced microkernel.

18. The system of claim 17 , wherein the operating system is Unix.

19. The system of claim 17 , wherein each of the two or more processes executed by the non-preemptive microkernel has its own stack.

20. The system of claim 17 , further comprising means for performing inter-process communication using one or more messages.

21. The system of claim 17 , wherein each of the two or more processes executed by the non-preemptive microkernel has a unique process identifier (PID).

22. The system of claim 21 , further comprising means for servicing messages sent to a single PID by a plurality of processes using a mailbox.

23. The system of claim 17 , further comprising means for executing each of the two or more processes executed by the non-preemptive microkernel without termination.

24. The system of claim 17 , further comprising means for executing a microkernel in one of the one or more kernels.

25. A computer, comprising:

an interconnect bus;

one or more processors coupled to the interconnect bus and adapted to be configured for server-specific functionalities including network processing, file processing, storage processing and application processing;

a configuration processor coupled to the interconnect bus and to the processors, the configuration processor dynamically assigning processor functionalities upon request;

one or more data storage devices coupled to the processors and managed by a file system;

a non-preemptive microkernel executing two or more processes in accordance with a non-preemptive scheduling scheme, wherein a lower priority process executed by the non-preemptive microkernel relinquishes one of the one or more processors for a higher priority process to execute only when the lower priority process blocks or explicitly requests to be preempted; and

one or more kernels each being executed as a process by the non-preemptive microkernel,

wherein at least one of the one or more kernels executes an operating system as a dependent process, the operating system being a time-sliced operating sysetm or a time-sliced microkernel.

26. The computer of claim 25 , wherein the non-preemptive microkernel executes a network switch operating system as a dependent process.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2003
From: AUSPEX SYSTEMS, INC.
To: NETWORK APPLIANCE, INC.
Reel/Frame 013933/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 1999
From: BHANJOIS, BHIMSEN; NARAYANASWAMY, LAKSHMAN; POTHAPRAGADA, SRINIVAS; BOLLINENI, NAIDU; KANKIPATI, PRADEEP
To: AUSPEX SYSTEMS, INC.
Reel/Frame 010282/0482 →