Computer configuration for resource management in systems including a virtual machine
First Claim
1. In a computer system that includes:
- at least one hardware processor that has a hardware instruction pointer; and
a first operating system (COS) initially installed to run on the hardware processor at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer;
a method comprising;
initializing the computer with the COS;
loading a load call module within the COS;
upon initialization of the computer, calling a loading module from the load call module, whereupon the loading module loads a kernel, which forms a second operating system;
via the COS starting execution of the kernel, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level;
the step of loading the kernel including;
via the loading module, setting the hardware instruction pointer and forwarding of interrupts and faults generated by the processor and by predetermined ones of the system resources to point into a memory address space allocated to and controlled by the kernel, the kernel thereby handling requests for system resources.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer architecture includes a first operating system (COS), which may be a commodity operating system, and a kernel, which acts as a second operating system. The COS is used to boot the system as a whole. After booting, the kernel is loaded and displaces the COS from the system level, meaning that the kernel itself directly accesses predetermined physical resources of the computer. All requests for use of system resources then pass via the kernel. System resources are divided into those that, in order to maximize speed, are controlled exclusively by the kernel, those that the kernel allows the COS to handle exclusively, and those for which control is shared by the kernel and COS. In the preferred embodiment of the invention, at least one virtual machine (VM) runs via a virtual machine monitor, which is installed to run on the kernel. Each VM, the COS, and even each processor in a multiprocessor embodiment, are treated as separately schedulable entities that are scheduled by the kernel. Mechanisms for high-speed I/O between VM'"'"'s and I/O devices are also included.
-
Citations
31 Claims
-
1. In a computer system that includes:
-
at least one hardware processor that has a hardware instruction pointer; and a first operating system (COS) initially installed to run on the hardware processor at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer; a method comprising; initializing the computer with the COS; loading a load call module within the COS; upon initialization of the computer, calling a loading module from the load call module, whereupon the loading module loads a kernel, which forms a second operating system; via the COS starting execution of the kernel, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level; the step of loading the kernel including; via the loading module, setting the hardware instruction pointer and forwarding of interrupts and faults generated by the processor and by predetermined ones of the system resources to point into a memory address space allocated to and controlled by the kernel, the kernel thereby handling requests for system resources. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a computer system that includes:
-
at least one hardware processor; a first operating system (COS) initially installed to run on the hardware processor at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer; a method comprising; initializing the computer with the COS; via the COS, loading and starting execution of a kernel, which forms a second operating system, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level, the kernel thereby handling requests for system resources; installing at least one virtual machine (VM) to run on the kernel via a virtual machine monitor (VMM); in the kernel, separately scheduling the execution of the COS and of each VM, the COS and the VMs thereby forming separately schedulable and separately executing entities; and within the kernel, representing each schedulable entity as a corresponding world, each world comprising a world memory region with a respective world address space and storing a respective world control thread. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. In a computer system that includes:
-
at least one hardware processor, which has a hardware instruction pointer; a first operating system (COS) initially installed to run on the hardware processor at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer; a method comprising; initializing the computer with the COS; via the COS, loading and starting execution of a kernel, which forms a second operating system, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level, the kernel thereby handling requests for system resources; halting execution of the kernel; reinstating a state of the first operating system that existed before the loading of the kernel; and resuming execution of the first operating system at the most-privileged system level; the kernel thereby being functionally removed from the computer; in which; A) the step of loading the kernel includes the following sub-steps; i) loading a load call module within the COS; ii) upon initialization of the computer, calling a loading module from the load call module, whereupon the loading module loads the kernel; iii) after initialization of the computer, transferring from the COS to the kernel a list of devices initially controlled by the COS; and iv) classifying the devices and control of the devices into the following groups (which may be empty); a) host-managed devices, which are controlled by the COS; b) reserved devices, which are controlled by the kernel; and c) shared devices, which may be controlled by either the COS or the kernel; v) via the loading module, setting the hardware instruction pointer and forwarding of interrupts and faults generated by the processor and by predetermined ones of the physical resources to point into a memory address space allocated to and controlled by the kernel; B) the step of reinstating the state of the first operating system includes the following steps; i) restoring interrupt and fault handling from the kernel to the first operating system; ii) transferring control of host-managed and shared devices from the kernel to the first operating system; and iii) removing the kernel from an address space of the first operating system.
-
-
18. A method for managing resources in a computer, which includes at least one processor that has a hardware instruction pointer, the method comprising the following steps:
-
A) initializing the computer using a first operating system (COS), the COS itself running at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer, the physical resources including physical devices; B) loading a kernel via the COS, the kernel forming a second operating system, this step of loading the kernel comprising; i) loading a load call module within the COS; ii) upon initialization of the computer, calling a loading module from the load call module, whereupon the loading module loads the kernel; iii) via the loading module, setting the hardware instruction pointer and forwarding interrupts and faults generated by the processor and by predetermined ones of the physical resources to point into a memory address space allocated to and controlled by the kernel; C) starting execution of the kernel, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level; and D) submitting requests for system resources via the kernel; E) after initialization of the computer, transferring from the COS to the kernel a list of the devices initially controlled by the COS; and F) classifying the devices and control of the devices into the following groups (which may be empty); i) host-managed devices, which are controlled by the COS; ii) reserved devices, which are controlled by the kernel; and iii) shared devices, which may be controlled by either the COS or the kernel; and G) forwarding interrupts generated by host-managed devices to the COS via the kernel, and handling such interrupts within the COS.
-
-
19. A method for managing resources in a computer, which includes at least one processor that has a hardware instruction pointer, the method comprising the following steps:
-
A) initializing the computer using a first operating system (COS), the COS itself running at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer, the physical resources including physical devices; B) loading a kernel via the COS, the kernel forming a second operating system, this step of loading the kernel comprising; i) loading a load call module within the COS; ii) upon initialization of the computer, calling a loading module from the load call module, whereupon the loading module loads the kernel; iii) via the loading module, setting the hardware instruction pointer and forwarding interrupts and faults generated by the processor and by predetermined ones of the physical resources to point into a memory address space allocated to and controlled by the kernel; C) starting execution of the kernel, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level; and D) submitting requests for system resources via the kernel; E) after initialization of the computer, transferring from the COS to the kernel a list of the devices initially controlled by the COS; and F) classifying the devices and control of the devices into the following groups (which may be empty); i) host-managed devices, which are controlled by the COS; ii) reserved devices, which are controlled by the kernel; and iii) shared devices, which may be controlled by either the COS or the kernel; and G) forwarding interrupts generated by host-managed devices to the COS via the kernel, and handling such interrupts within the COS; H) installing at least one virtual machine (VM) to run on the kernel via a virtual machine monitor (VMM); and I) in the kernel, separately scheduling the execution of the COS and of each VM, the COS and the VMs thereby forming separately schedulable and separately executing entities.
-
-
20. A computer system comprising:
-
at least one hardware processor; a first operating system (COS) initially installed to run on the hardware processor at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer, the COS forming means for initializing the computer; a kernel that forms a second operating system; a loader comprising computer-executable code for loading the kernel means via the COS and for starting execution of the kernel means, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level; a virtual machine monitor (VMM); at least one virtual machine (VM) installed to run on the kernel via the VMM; the kernel including software modules for handling requests for system resources; for separately scheduling the execution of the COS and of each VM, the COS and the VMs thereby forming separately schedulable and separately executing entities; and for representing each schedulable entity as a corresponding world, each world comprising a world memory region with a respective world address space and storing a respective world control thread. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A computer system comprising:
-
at least one hardware processor that has a hardware instruction pointer; a first operating system (COS) initially installed to run on the hardware processor at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer, the COS initializing the computer; a kernel that forms a second operating system; a loader comprising computer-executable code for loading the kernel via the COS and for starting execution of the kernel, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level; the kernel including a software module for handling requests for system resources; the loader being further provided for setting the hardware instruction pointer and forwarding interrupts and faults generated by the processor and by predetermined ones of the system resources to point into a memory address space allocated to and controlled by the kernel. - View Dependent Claims (26, 27)
-
-
28. A computer system comprising:
-
at least one hardware processor; a first operating system (COS) initially installed to run on the hardware processor at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer, the COS forming means for initializing the computer; a kernel that forms a second operating system; a loader comprising computer-executable code for loading the kernel means via the COS and for starting execution of the kernel means, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level; the kernel handling requests for system resources; a virtual machine monitor (VMM); at least one virtual machine (VM) installed to run on the kernel via the VMM; within each VM, a virtual processor, a virtual operating system (VOS), and an I/O driver for an I/O device loaded within the VOS; a shared memory space that is addressable by both the kernel and the VM'"'"'s I/O driver, the shared memory space storing input data and output data for transfer between the VM and the I/O device; in which; the VM'"'"'s I/O driver comprises computer-executable code for setting a pointer to output data in the shared memory region and generating a request for transmission; the kernel is further provided, upon sensing the request for transmission; for retrieving the output data from a position in the shared memory region indicated by the pointer and transferring the retrieved output data to a physical transmit buffer portion of the shared memory region; for outputting the output data from the physical transmit buffer portion to the I/O device; for receiving the input data from the I/O device; for copying the input data into a physical receive buffer portion of the shared memory region; for setting the pointer to the physical receive buffer portion; for issuing to the VMM an instruction to raise an interrupt; the VM'"'"'s I/O driver is further provided, upon sensing the interrupt raised by the VMM, for retrieving the input data from the physical receive buffer portion of the shared memory region indicated by the pointer; whereby the input and output data may be transferred between the VM and the I/O device via only the kernel. - View Dependent Claims (29)
-
-
30. A computer system comprising:
-
at least one hardware processor; a first operating system (COS) initially installed to run on the hardware processor at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined physical resources of the computer, the COS forming means for initializing the computer; a kernel means that forms a second operating system; loading means for loading the kernel via the COS and for starting execution of the kernel, the kernel thereupon substantially displacing the COS from the system level and itself running at the system level; the kernel means is provided for handling requests for system resources; in which; the processor has a hardware instruction pointer; the loading means is further provided for setting the hardware instruction pointer and forwarding interrupts and faults generated by the processor and by predetermined ones of the system resources to point into a memory address space allocated to and controlled by the kernel means; the system resources include devices initially controlled by the COS; the loading means is further provided for transferring, after initialization of the computer, from the COS to the kernel means a list of the devices initially controlled by the COS and for classifying the devices and control of the devices into the following groups (which may be empty); host-managed devices, which are controlled by the COS; reserved devices, which are controlled by the kernel means; and shared devices, which may be controlled by either the COS or the kernel means.
-
-
31. A computer system comprising:
-
at least one hardware processor; a first operating system (COS) initially installed to run on the hardware processor at a most-privileged, system level, the system level being defined as an operational state with permission to directly access predetermined system resources of the computer, the COS forming means for initializing the computer; a kernel means that forms a second operating system; loading means for loading the kernel means via the COS and for starting execution of the kernel means, the kernel means thereupon substantially displacing the COS from the system level and itself running at the system level; at least one virtual machine (VM); and a virtual machine monitor (VMM); in which; the VM is installed to run on the kernel means via the VMM; the kernel means is provided for handling requests for system resources; the processor has a hardware instruction pointer; the loading means is further provided for setting the hardware instruction pointer and forwarding interrupts and faults generated by the processor and by predetermined ones of the system resources to point into a memory address space allocated to and controlled by the kernel means; the system resources include devices initially controlled by the COS; the loading means is further provided for transferring, after initialization of the computer, from the COS to the kernel means a list of the devices initially controlled by the COS and for classifying the devices and control of the devices into the following groups (which may be empty); host-managed devices, which are controlled by the COS; reserved devices, which are controlled by the kernel means; and shared devices, which may be controlled by either the COS or the kernel means; for separately scheduling the execution of the COS and of each VM, the COS and the VMs thereby forming separately schedulable and separately executing entities; and the kernel means is further provided; for representing each schedulable entity as a corresponding world, each world comprising a world memory region with a respective world address space and storing a respective world control thread; for storing current state data for a currently executing schedulable entity in a kernel means-controlled memory region; for disabling exceptions; for loading state data for a subsequently executing schedulable entity; for starting execution of the subsequently executing schedulable entity; and for enabling exceptions; the kernel means thereby being provided for switching worlds.
-
Specification