US6865738B2

Method and apparatus for managing independent asynchronous I/O operations within a virtual machine

Summary by NHIP

Virtual Machine I/O Management

The method marshals I/O parameters into a parameter space outside the virtual machine object heap before an associated OS-thread executes the operation. This approach uses a hybrid thread model where non-I/O language threads run as co-routines on a single OS-thread while I/O threads utilize dedicated OS-threads.

Claim Score by NHIP

Read claim 13, the broadest

Abstract

One embodiment of the present invention provides a system that facilitates performing independent asynchronous I/O operations within a platform-independent virtual machine. Upon encountering an I/O operation, a language thread within the system marshals parameters for the I/O operation into a parameter space located outside of an object heap of the platform-independent virtual machine. Next, the language thread causes an associated operating system thread (OS-thread) to perform the I/O operation, wherein the OS-thread accesses the parameters from the parameter space. In this way, the OS-thread does not access the parameters in the object heap directly while performing the I/O operation.

US6865738B2, drawing sheet 1
Sheet 1 of 4

Term

Term ended

Expired 14 May 2023, 3.4 years ago.

  1. Priority and filed
  2. Granted
  3. Expired
  4. Today

19 claims: 4 independent, 15 dependent

  1. 1
    A method for performing independent asynchronous I/O operations within a platform-independent virtual machine, comprising:encountering an I/O operation during execution of a language thread within the platform-independent virtual machine;wherein the I/O operation includes parameters for the I/O operation;and in response to encountering the I/O operation, marshalling the parameters for the I/O operation into a parameter space located outside of an object heap for the platform-independent virtual machine, wherein the marshalling is performed by the language thread, and causing an operating system thread (OS-thread) associated with the language thread to perform the I/O operation, wherein the OS-thread accesses the parameters from the parameter space;whereby the OS-thread does not access the object heap directly while performing the I/O operation wherein the platform-independent virtual machine operates in accordance with a hybrid thread model in which language threads that are not performing I/O operations execute as co-routines on a single OS-thread;and wherein language threads performing I/O operations are associated with dedicated OS-threads that perform the I/O operations.
  2. 7
    A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for performing independent asynchronous I/O operations within a platform-independent virtual machine, the method comprising:encountering an I/O operation during execution of a language thread within the platform-independent virtual machine;wherein the I/O operation includes parameters for the I/O operation;and in response to encountering the I/O operation, marshalling the parameters for the I/O operation into a parameter space located outside of an object heap for the platform-independent virtual machine, wherein the marshalling is performed by the language thread, and causing an operating system thread (OS-thread) associated with the language thread to perform the I/O operation, wherein the OS-thread accesses the parameters from the parameter space;whereby the OS-thread does not access the object heap directly while performing the I/O operation wherein the platform-independent virtual machine operates in accordance with a hybrid thread model in which language threads that are not performing I/O operations execute as co-routines on a single OS-thread;and wherein language threads performing I/O operations are associated with dedicated OS-threads that perform the I/O operations.
  3. 13
    Broadest claimClaim Score 51, average(NHIP)An apparatus that performs independent asynchronous I/O operations within a platform-independent virtual machine, comprising:an execution mechanism within the platform-independent virtual machine that is configured to execute a language thread;wherein upon encountering an I/O operation, the execution mechanism is configured to, use the language thread to marshal parameters for the I/O operation into a parameter space located outside of an object heap for the platform-independent virtual machine, and to cause an operating system thread (OS-thread) associated with the language thread to perform the I/O operation, wherein the OS-thread accesses the parameters from the parameter space;whereby the OS-thread does not access the object heap directly while performing the I/O operation wherein the platform-independent virtual machine operates in accordance with a hybrid thread model in which language threads that are not performing I/O operations execute as co-routines on a single OS-thread;and wherein language threads performing I/O operations are associated with dedicated OS-threads that perform the I/O operations.
  4. 19
    A means for performing independent asynchronous I/O operations within a platform-independent virtual machine, comprising:an execution means for executing a language thread within the platform-independent virtual machine;a receiving means for receiving an I/O operation during execution of the language thread;a marshalling means for marshalling parameters for the I/O operation using the language thread into a parameter space located outside of an object heap for the platform-independent virtual machine;and a calling means that calls an operating system thread (OS-thread) associated with the language thread to perform the I/O operation, wherein the OS-thread accesses the parameters from the parameter space wherein the platform-independent virtual machine operates in accordance with a hybrid thread model in which language threads that are not performing I/O operations execute as co-routines on a single OS-thread;and wherein language threads performing I/O operations are associated with dedicated OS-threads that perform the I/O operations.