Claims
- 1. A client/server method comprising:
initializing a process attachable virtual machine for a user session; receiving a request corresponding to the user session; and binding the virtual machine to an operating system process to process the request.
- 2. The method of claim 1 further comprising detaching the virtual machine from the operating system process upon completion of the processing of the request.
- 3. The method of claim 1 wherein initializing comprises storing the virtual machine in a memory area.
- 4. The method of claim 3 wherein initializing further comprises copying a template image into the memory area.
- 5. The method of claim 3 wherein binding comprises mapping a portion of the memory area into an address space of the operating system process.
- 6. The method of claim 3 wherein storing comprises maintaining a computational state of the virtual machine in the memory area.
- 7. The method of claim 6 wherein the computational state of the virtual machine comprises a heap and a stack for the virtual machine.
- 8. The method of claim 6 wherein binding comprises mapping a portion of the memory area into an address space of the operating system process.
- 9. The method of claim 8 wherein the mapped portion of the memory area comprises the computational state of the virtual machine.
- 10. The method of claim 3 wherein storing comprises maintaining a user context corresponding to the user session in the memory area.
- 11. The method of claim 10 wherein the user context comprises a user heap and a user stack.
- 12. The method of claim 10 wherein the user context comprises a handle to an input/output (I/O) resource.
- 13. The method of claim 12 wherein the I/O resource is a file.
- 14. The method of claim 10 wherein the user context comprises a handle to a proxy for an input/output resource.
- 15. The method of claim 14 wherein the I/O resource is a socket and the proxy is a socket resource manager.
- 16. The method of claim 1 wherein the virtual machine comprises instructions operable to cause a programmable processor to:
execute a first co-routine to simulate the execution of a first thread; and execute a second co-routine to simulate the execution of a second thread.
- 17. The method of claim 16 wherein the first co-routine and the second co-routine yield cooperatively to a thread scheduler upon entering a wait state.
- 18. The method of claim 1 wherein the virtual machine comprises instructions operable to cause a programmable processor to execute a synchronous function call to simulate the execution of an internal thread.
- 19. The method of claim 18 wherein the internal thread is used to perform garbage collection.
- 20. A client/server method comprising:
initializing a process attachable virtual machine for a user session; receiving a request corresponding to the user session; selecting a process from a plurality of operating system processes; and binding the virtual machine to the selected process to process the request.
- 21. The method of claim 20 further comprising detaching the virtual machine from the selected process upon completion of the processing of the request.
- 22. The method of claim 20 wherein initializing comprises storing the virtual machine in a memory area.
- 23. The method of claim 22 wherein the memory area is a shared memory area that is accessible by each of the plurality of operating system processes.
- 24. The method of claim 23 wherein binding comprises mapping a portion of the shared memory area into an address space of the selected process.
- 25. The method of claim 20 wherein each process in the plurality of operating system processes is isolated from the other processes in the plurality of operating system processes.
- 26. The method of claim 20 wherein a number of operating system processes in the plurality of operating system processes is substantially equivalent to a predetermined number of processors in a computer used to execute the method.
- 27. The method of claim 20 further comprising:
designating one process from the plurality of operating system processes as a low priority process; and using the low priority process to perform an asynchronous function related to the virtual machine.
- 28. The method of claim 27 wherein the asynchronous function is garbage collection.
- 29. A client/server method comprising:
initializing a process attachable virtual machine for a first user session; binding the virtual machine to an operating system process to process one or more requests corresponding to the first user session; and upon termination of the first user session, using the virtual machine to process one or more requests corresponding to a second user session.
- 30. A client/server method comprising:
initializing a first process attachable virtual machine for a first user session; initializing a second process attachable virtual machine for a second user session; binding the first virtual machine to a first operating system process to process one or more requests corresponding to the first user session; binding the second virtual machine to a second operating system process to process one or more requests corresponding to the second user session; and storing type information of a class used by both the first virtual machine and the second virtual machine into a shared memory area that is accessible by both the first operating system process and the second operating system process.
- 31. A computer program product, tangibly stored on a computer-readable medium, comprising instructions operable to cause a programmable processor to:
initialize a process attachable virtual machine for a user session; receive a request corresponding to the user session; and bind the virtual machine to an operating system process to process the request.
- 32. The product of claim 31 further comprising instructions operable to cause the programmable processor to detach the virtual machine from the operating system process upon completion of the processing of the request.
- 33. The product of claim 31 wherein initializing comprises storing the virtual machine in a memory area.
- 34. The product of claim 33 wherein binding comprises mapping a portion of the memory area into an address space of the operating system process.
- 35. The product of claim 31 further comprising instructions operable to cause the programmable processor to:
execute a first co-routine to simulate the execution of a first thread in the virtual machine; and execute a second co-routine to simulate the execution of a second thread in the virtual machine.
- 36. A computer program product, tangibly stored on a computer-readable medium, comprising instructions operable to cause a programmable processor to:
initialize a process attachable virtual machine for a user session; receive a request corresponding to the user session; select a process from a plurality of operating system processes; and bind the virtual machine to the selected process to process the request.
- 37. The product of claim 36 further comprising instructions operable to cause the programmable processor to detach the virtual machine from the selected process upon completion of the processing of the request.
- 38. The product of claim 36 wherein initializing comprises storing the virtual machine in a memory area.
- 39. The product of claim 38 wherein the memory area is a shared memory area that is accessible by each of the plurality of operating system processes.
- 40. The product of claim 39 wherein binding comprises mapping a portion of the shared memory area into an address space of the selected process
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Application No. 60/348,068, entitled JAVA SERVER HAVING SHARED MEMORY, filed Nov. 7, 2001, and to U.S. Provisional Application No. 60/400,491, entitled PROVIDING ISOLATION AND SCALABILITY FOR LARGE SERVERS THROUGH PROCESS-ATTACHABLE VIRTUAL MACHINES, filed Aug. 1, 2002. The disclosures of the above applications are incorporated herein by reference in their entirety.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60348068 |
Nov 2001 |
US |
|
60400491 |
Aug 2002 |
US |