Common program for switching between operation systems is executed in context of the high priority operating system when invoked by the high priority OS
First Claim
1. A method of enabling multiple different operating systems to run concurrently on the same computer, comprising:
- selecting a first operating system to have a relatively high priority, said first operating system possibly being a real time operating system;
selecting at least one second operating system to have a relatively lower priority;
providing a common program arranged to switch between said operating systems under predetermined conditions, the common program being arranged to save, and to restore from a saved version, the processor state required to switch between the operating systems;
providing modifications to said first and second operating systems to allow them to be controlled by said common program,wherein the first and second operating systems are associated with first and second memory contexts, respectively, and the common program is associated with a third memory context,switching a current memory context to the first memory context when switching to or from the first operating system; and
switching the current memory context to the third memory context when switching from the second operating system;
wherein, when the common program is invoked by the first operating system, execution of the common program is started in the first memory context, andwherein, when the common program is invoked by the second operating system, using the third memory context as an intermediate address space.
4 Assignments
0 Petitions
Accused Products
Abstract
A method of enabling multiple different operating systems to run concurrently on the same computer, which is an Intel or similar Complex Instruction Set Computer architecture, comprising selecting a first operating system to have a relatively high priority (the realtime operating system, such as C5); selecting at least one secondary operating system to have a relatively lower priority (the general purpose operating system, such as Linux); providing a common program (a hardware resource dispatcher similar to a nanokernel) arranged to switch between said operating systems under predetermined conditions; and providing modifications to said first and second operating systems to allow them to be controlled by said common program.
64 Citations
30 Claims
-
1. A method of enabling multiple different operating systems to run concurrently on the same computer, comprising:
-
selecting a first operating system to have a relatively high priority, said first operating system possibly being a real time operating system; selecting at least one second operating system to have a relatively lower priority; providing a common program arranged to switch between said operating systems under predetermined conditions, the common program being arranged to save, and to restore from a saved version, the processor state required to switch between the operating systems; providing modifications to said first and second operating systems to allow them to be controlled by said common program, wherein the first and second operating systems are associated with first and second memory contexts, respectively, and the common program is associated with a third memory context, switching a current memory context to the first memory context when switching to or from the first operating system; and switching the current memory context to the third memory context when switching from the second operating system; wherein, when the common program is invoked by the first operating system, execution of the common program is started in the first memory context, and wherein, when the common program is invoked by the second operating system, using the third memory context as an intermediate address space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A computer system comprising a CPU, memory devices and input/output devices, having executing thereon computer code comprising:
-
a first operating system having a relatively high priority, said first operating system possibly being a real time operating system; a second operating system having a relatively lower priority; and a common program arranged to run said operating systems concurrently by switching between said operating systems under predetermined conditions, the common program being arranged to save, and to restore from a saved version, the processor state required to switch between the operating systems; wherein the first and second operating systems are associated with first and second memory contexts, respectively, and the common program is associated with a third memory context, wherein when switching to or from the first operating system, a current memory context is switched to the first memory context; wherein when switching from the second operating system, the current memory context is switched to the third memory context; wherein, when the common program is invoked by the first operating system, execution of the common program is started in the first memory context, and wherein, when the common program is invoked by the second operating system, using the third memory context as an intermediate address space. - View Dependent Claims (29)
-
-
30. A computer system comprising a processor and a memory to execute thereon computer code to operate first and second operating systems in first and second memory contexts, respectively, said first operating system possibly being a real time operating system and a common program configured to execute in said first or a third memory context to switch between the first and second operating systems, the common program being arranged to save, and to restore from a saved version, the processor state required to switch between the operating systems;
- wherein, when the common program is invoked by the first operating system, execution of the common program is started in the first memory context,
wherein when switching to or from the first operating system, a current memory context is switched to the first memory context; wherein when switching from the second operating system, the current memory context is switched to the third memory context; and wherein, when the common program is invoked by the second operating system, using the third memory context as an intermediate address space.
- wherein, when the common program is invoked by the first operating system, execution of the common program is started in the first memory context,
Specification