Method and system for executing a program under one of a plurality of mutually exclusive operating environments
First Claim
1. A method within a data processing system for executing a program under one of a plurality of mutually exclusive operating systems, said data processing system having a nonvolatile mass storage device, a volatile memory, and a processor, said method comprising:
- in response to invocation of a program which executes under a second operating system among said plurality of operating systems while said processor is executing a first operating system among said plurality of operating systems, automatically performing the steps of;
causing said data processing system to achieve a quiescent state;
determining a state of said first operating system from contents of said volatile memory;
storing said state of said first operating system within either said volatile memory or said nonvolatile mass storage device;
loading at least a portion of said second operating system into said volatile memory in response to said storage of said state of said first operating system; and
thereafter, executing said program under said second operating system, wherein executing said program under said second operating system comprises executing said program from a shell that constrains said second operating system such that another program cannot be invoked under said second operating system until after control is returned to said first operating system.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system within a data processing system for executing a program under one of a number of mutually exclusive operating systems are disclosed. The data processing system includes a nonvolatile mass storage device, a volatile memory, and a processor. According to the present invention, a program which executes under a second operating system is invoked while the processor is executing a first operating system. In response to invocation of the program, the data processing system is forced to a quiescent state. A state of the first operating system is then determined from contents of the volatile memory and stored within either the volatile memory or the nonvolatile mass storage device. In response to storage of the state of the first operating system, at least a portion of the second operating system is automatically loaded into the volatile memory. Thereafter, the program is executed under the second operating system, wherein interchange between mutually incompatible operating systems within a single data processing system is efficiently accomplished. In a preferred embodiment of the present invention, the method of the present invention is embodied within a computer program product for causing a data processing system to perform the foregoing steps.
116 Citations
42 Claims
-
1. A method within a data processing system for executing a program under one of a plurality of mutually exclusive operating systems, said data processing system having a nonvolatile mass storage device, a volatile memory, and a processor, said method comprising:
-
in response to invocation of a program which executes under a second operating system among said plurality of operating systems while said processor is executing a first operating system among said plurality of operating systems, automatically performing the steps of;
causing said data processing system to achieve a quiescent state;
determining a state of said first operating system from contents of said volatile memory;
storing said state of said first operating system within either said volatile memory or said nonvolatile mass storage device;
loading at least a portion of said second operating system into said volatile memory in response to said storage of said state of said first operating system; and
thereafter, executing said program under said second operating system, wherein executing said program under said second operating system comprises executing said program from a shell that constrains said second operating system such that another program cannot be invoked under said second operating system until after control is returned to said first operating system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 37, 40)
freeing portions of said volatile memory allocated to said first operating system prior to storing said state of said first operating system only if said state is to be stored within said nonvolatile mass storage device.
-
-
3. The method of claim 1, said method further comprising:
-
determining if storage of said state of said first operating system within either said nonvolatile mass storage device or said volatile memory is possible; and
in response to a determination that storage of said state of said first operating system is not possible, advising a user to abort execution of said program.
-
-
4. The method of claim 1, wherein said state of said first operating system includes an indication of a state of active applications running under said first operating system.
-
5. The method of claim 1, wherein said first operating system is a multitasking operating system which subdivides each program to be executed into one or more threads, said first operating system including one or more device drivers which interface between said first operating system and hardware components of said data processing system, wherein said step of causing said data processing system to achieve a quiescent state comprises:
-
halting scheduling of threads to said processor for execution; and
suspending execution of said one or more device drivers.
-
-
6. The method of claim 1, wherein said data processing system utilizes a file system to organize information stored within said nonvolatile mass storage device, said method further comprising:
prior to storing said state of said first operating system, invalidating file system information, residing within said volatile memory, that specifies locations of files within said nonvolatile mass storage device.
-
7. The method of claim 1, said method further comprising:
following invocation of said program and prior to said storing step, creating a file within said nonvolatile mass storage device in which to store at least a portion of said state of said first operating system.
-
8. The method of claim 1, said method further comprising:
prior to said storing step, compressing said state of said first operating system.
-
9. The method of claim 1, and further comprising:
marking each active program running under said first operating system with an attribute which prevents modification of said each active program by said second operating system or said program.
-
10. The method of claim 1, said method further comprising:
-
in response to reset of said data processing system, executing a Power On Self Test (POST) Procedure to initialize hardware components of said data processing system to their initial states;
after executing said POST procedure, storing said initial states of said hardware components; and
subsequent to said storing step and prior to said executing step, accessing said initial states of said hardware components and utilizing the stored initial states to set said hardware components of said data processing system to their initial states.
-
-
11. The method of claim 1, said method further comprising:
-
thereafter, exiting said second operating system; and
restoring said state of said first operating system to said volatile memory.
-
-
12. The method of claim 11, said method further comprising:
after exiting said second operating system, loading file system information from said nonvolatile mass storage device to said volatile memory.
-
37. The method of claim 1, wherein said first operating system and said second operating system utilize different operating system initialization files, said method further comprising executing one or more operating system initialization files of said second operating system prior to said step of executing said program.
-
40. The method of claim 1, and further comprising determining whether or not said program executes under said second operating system by interrogating an attribute of an icon associated with said program.
-
13. A data processing system that supports execution of a program under one of a plurality of mutually exclusive operating systems, said data processing system comprising:
-
means for invoking a program that executes under a second operating system among said plurality of operating systems while said processor is executing a first operating system among said plurality of operating systems;
responsive to said invocation of said program, means for causing said data processing system to achieve a quiescent state;
means for determining a state of said first operating system from contents of said volatile memory;
means for storing said state of said first operating system within either said volatile storage or said nonvolatile mass storage device;
means for automatically loading at least a portion of said second operating system into said volatile memory in response to said storage of said state of said first operating system; and
means for thereafter executing said program under said second operating system, wherein said means for executing said program comprises means for executing said program from a shell that constrains said second operating system such that another program cannot be invoked under said second operating system until after control is returned to said first operating system. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 38, 41)
means for freeing portions of said volatile memory allocated to said first operating system prior to storing said state of said first operating system only if said state is to be stored within said nonvolatile mass storage device.
-
-
15. The data processing system of claim 13, and further comprising:
-
means for determining if storage of said state of said first operating system within either said volatile storage or said nonvolatile mass storage device is possible; and
means for advising a user to abort execution of said program in response to a determination that storage of said state of said first operating system is not possible.
-
-
16. The data processing system of claim 13, wherein said state of said first operating system includes an indication of a state of active applications running under said first operating system.
-
17. The data processing system of claim 13, wherein said first operating system is a multitasking operating system which subdivides each program to be executed into one or more threads, said first operating system including one or more device drivers which interface between said first operating system and hardware components of said data processing system, wherein said means for causing said data processing system to achieve a quiescent state comprises:
-
means for halting scheduling of threads to said processor for execution; and
means for suspending execution of said one or more device drivers.
-
-
18. The data processing system of claim 13, wherein said data processing system utilizes a file system to organize information stored within said nonvolatile mass storage device, said system further comprising:
means for, prior to storing said state of said first operating system, invalidating file system information residing within said volatile memory, wherein said file system information specifies locations of files within said nonvolatile mass storage device.
-
19. The data processing system of claim 13, said system further comprising:
means for, following invocation of said program, creating a file within said nonvolatile mass storage device in which to store at least a portion of said state of said first operating system.
-
20. The data processing system of claim 13, said system further comprising:
means for compressing said state of said first operating system prior to storing said state of said first operating system.
-
21. The data processing system of claim 13, and further comprising:
means for marking each active program running under said first operating system with an attribute which prevents modification of said each active program by said second operating system or said program.
-
22. The data processing system of claim 13, said system further comprising:
-
means, responsive to reset of said data processing system, for executing a Power On Self Test (POST) procedure to initialize hardware components of said data processing system to their initial states;
means for, after execution of said POST procedure, storing said initial states of said hardware components;
means for, subsequent to storing said state of said first operating system and prior to executing said program, for accessing said initial states of said hardware components; and
means for setting hardware components of said data processing system to their initial states utilizing said accessed initial states.
-
-
23. The data processing system of claim 13, said system further comprising:
-
means for thereafter exiting said second operating system; and
means for restoring said state of said first operating system to said volatile memory.
-
-
24. The data processing system of claim 23, said system further comprising:
means for, after exiting said second operating system, loading file system information from said nonvolatile mass storage device to said volatile memory.
-
38. The data processing system of claim 13, wherein said first operating system and said second operating system utilize different operating system initialization files, wherein one or more operating system initialization files of said second operating system are executed prior to executing said program.
-
41. The data processing system of claim 13, and further comprising:
-
a display device that displays an icon representing said program; and
means for determining whether or not said program executes under said second operating system by interrogating an attribute of an icon associated with said program.
-
-
25. A computer program product within a data processing system readable media for causing a data processing system to execute a program under one of a plurality of mutually exclusive operating systems, said data processing system including a nonvolatile mass storage device, a volatile memory, and a processor, said computer program product comprising:
-
instruction means for causing said data processing system to invoke a program that executes under a second operating system among said plurality of operating systems while said processor is executing a first operating system among said plurality of operating systems;
responsive to said invocation of said program, instruction means for causing said data processing system to achieve a quiescent state;
instruction means for causing said data processing system to determine a state of said first operating system from contents of said volatile memory;
instruction means for causing said data processing system to store said state of said first operating system within either said volatile memory or said nonvolatile mass storage device;
instruction means for causing said data processing system to automatically load at least a portion of said second operating system into said volatile memory in response to said storage of said state of said first operating system; and
instruction means for thereafter causing said data processing system to execute said program under said second operating system, wherein said instruction means for thereafter causing said data processing system to execute said program comprises instruction means for causing said data processing system to execute said program from a shell that constrains said second operating system such that another program cannot be invoked under said second operating system until after control is returned to said first operating system. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 42)
instruction means for causing said data processing system to free portions of said volatile memory allocated to said first operating system prior to storing said state of said first operating system only if said state is to be stored within said nonvolatile mass storage device.
-
-
27. The computer program product of claim 25, and further comprising:
-
instruction means for causing said data processing system to determine if storage of said state of said first operating system within either said volatile memory or said nonvolatile mass storage device is possible; and
instruction means for causing said data processing system to advise a user to abort execution of said program in response to a determination that storage of said state of said first operating system is not possible.
-
-
28. The computer program product of claim 25, wherein said state of said first operating system includes an indication of a state of active applications running under said first operating system.
-
29. The computer program product of claim 25, wherein said first operating system is a multitasking operating system which subdivides each program to be executed into one or more threads, said first operating system including one or more device drivers which interface between said first operating system and hardware components of said data processing system, wherein said instruction means for causing said data processing system to achieve a quiescent state comprises:
-
instruction means for causing said data processing system to halt scheduling of threads to said processor for execution; and
instruction means for causing said data processing system to suspend execution of said one or more device drivers.
-
-
30. The computer program product of claim 25, wherein said data processing system utilizes a file system to organize information stored within said nonvolatile mass storage device, said computer program product further comprising:
instruction means for causing said data processing system to invalidate file system information residing within said volatile memory prior to storing said state of said first operating system, wherein said file system information specifies locations of files within said nonvolatile mass storage device.
-
31. The computer program product of claim 25, and further comprising:
instruction means for causing said data processing system to create a file within said nonvolatile mass storage device in which to store said state of said first operating system following invocation of said program.
-
32. The computer program product of claim 25, and further comprising:
instruction means for causing said data processing system to compress said state of said first operating system prior to storage of said state of said first operating system.
-
33. The computer program product of claim 25, and further comprising:
instruction means for causing said data processing system to mark each active program running under said first operating system with an attribute which prevents modification of said each active program by said second operating system or said program.
-
34. The computer program product of claim 25, and further comprising:
instruction means for causing said data processing system to set hardware components of said data processing system to their initial states subsequent to storing said state of said first operating system, wherein said instruction means for causing said data processing system to set hardware components to their initial states comprises instruction means for causing said data processing system to access initial states of said hardware components following Power On Self Test (POST) from said nonvolatile mass storage device.
-
35. The computer program product of claim 25, and further comprising:
-
instruction means for causing said data processing system to thereafter exit said second operating system; and
instruction means for causing said data processing system to restore said state of said first operating system to said volatile memory.
-
-
36. The computer program product claim 35, and further comprising:
instruction means for causing said data processing system to load file system information from said nonvolatile mass storage device to said volatile memory after exiting said second operating system.
-
39. The computer program product of claim 25, wherein said first operating system and said second operating system utilize different operating system initialization files, said computer program product further comprising instruction means for causing said data processing system to execute one or more operating system initialization files of said second operating system prior to executing said program.
-
42. The computer program product of claim 25, wherein said data processing system includes a display device that can display an icon representing said program, said computer program product further comprising instruction means for causing said data processing system to determine whether or not said program executes under said second operating system by interrogating an attribute of said icon.
Specification