摘要 |
When changing the speed of the progression of a logical time in a paravirtualized OS, a hypervisor updates reference time and a reference counter value which is the value of a counter when the reference time is updated, to be used for time calculation by the paravirtualized OS, in accordance with the changed speed of the progression of time, to have new reference time and a new reference counter value. After that, the paravirtualized OS calculates the present time based on the new reference time and the new reference counter value. This can serve to maintain the continuity of time in the paravirtualized OS through before and after a change in the speed of the progression of time if made in the progression of time. |
主权项 |
1. A virtual computer system based on a paravirtualization method, comprising:
a paravirtualized OS (operating system) which has been paravirtualized; a hypervisor, and hardware resources including:
a CPU (central processing unit) for executing the paravirtualized OS and the hypervisor;a storage unit; anda free-running counter for updating a counter value based on an operation clock cycle of the CPU, wherein: the hypervisor is executed by the CPU to:
specify reference time in an actual time, as reference time, to be used for calculating time in a logical time based on the counter value, the logical time having a different speed in the progression of time from the actual time;specify a reference counter value, which is the counter value at the moment when the reference time is specified; andspecify a coefficient value for calculating the time in the logical time, based on the counter value; the storage unit stores the reference time, the reference counter value, and the coefficient value: and the paravirtualized OS is executed by the CPU to:
read out the reference time, the reference counter value, and the coefficient value from the storage unit;read out a current counter value from the free-running counter; andcalculate present time in the logical time based on the reference time, the reference counter value, the coefficient value, and the current counter value; and the hypervisor, when the virtual computer system has received a change request requesting a change in the coefficient value:
reads out the reference time, the reference counter value, and the coefficient value from the storage unit;reads out the current counter value from the free-running counter;subtracts the reference counter value from the current counter value, multiplies a resultant subtraction value by the coefficient value before the change, adds a resultant product to the reference time, and specifies a resultant addition value as new reference time,specifies the current counter value as new reference counter value; andspecifies a changed coefficient value as a new coefficient value; the storage unit stores the new reference time, the new reference counter value, and the new coefficient value; and the paravirtualized OS, after the virtual computer system has received the change request of the coefficient value:
reads out the new reference time, the new reference counter value, and the new coefficient value from the storage unit;reads out the current counter value from the free-running counter; andcalculates the present time in the logical time based on the new reference time, the new reference counter value, the new coefficient value, and the current counter value. |