IP Library Patent Application 12272842
Patent Application
App. No. 12/272,842

Memory Recovery Across Reboots of an Emulated Operating System

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/272,842
Abstract

Approaches for recovering state data between boot sessions of an emulated operating system (OS). An OS is emulated on a host OS. In response to each memory acquire request from the emulated OS, an interface to the host OS returns a memory area for use by the emulated OS and stores allocation data associated with the memory area. The allocation data includes an address referencing the memory area and a boot sequence number that indicates a boot session of the emulated OS. While booting the second emulated OS to a current boot session, the stored allocation data is retrieved from the interface, and in response to the stored allocation data including a selected boot sequence number, data from the memory area referenced by the address in the allocation data is stored in retentive storage by the second OS.

Claims (50)

1 . A processor-implemented method for recovering state data between boot sessions of an operating system, comprising:

executing a first operating system (OS) on an instruction processor of a data processing system, wherein the first OS includes instructions of a first instruction set that are native to the instruction processor;

emulating a second OS using an interface to the first OS on the data processing system, wherein the second OS includes instructions of a second instruction set that are not native to the instruction processor;

in response to each memory acquire request from the second OS to the interface, returning a memory area for use by the second OS and storing by the interface, allocation data associated with the memory area, including an address referencing the memory area and a boot sequence number, wherein the boot sequence number indicates a boot session of the second OS;

while booting the second OS to a current boot session, retrieving the stored allocation data from the interface for the second OS;

in response to the stored allocation data including a selected boot sequence number, storing data from the memory area referenced by the address in the allocation data in one or more files in retentive storage by the second OS.

2 . The method of claim 1 , further comprising releasing the memory area after the storing of data from the memory area.

3 . The method of claim 1 , wherein the allocation data further includes a state-save control code, the storing of data from the memory area is in response to a first value of the state-save control code, and in response to a second value of the state-save control code omitting the storing of data from the memory area.

4 . The method of claim 1 , wherein the allocation data further includes a control code, the method further comprising:

in response to a first value of the control code, releasing the memory area after the storing of data from the memory area; and

in response to a second value of the control code, omitting releasing of the memory area.

5 . The method of claim 1 , wherein the allocation data further includes a control code, the method further comprising:

wherein the storing of data from the memory area while booting the second OS is in response to a first value of the control code, and in response to the first value of the control code, releasing the memory area after the storing of data from the memory area;

in response to a second value of the control code storing the data from the memory area and omitting the releasing of the memory area;

in response to a third value of the control code, omitting the storing of data from the memory area and releasing the memory area; and

in response to a fourth value of the control code, omitting the storing of data from the memory area and omitting the releasing of the memory area.

6 . The method of claim 1 , further comprising:

in response to each memory acquire request from the second OS to the interface, storing by the interface, allocation data describing each acquire request in a respective entry in an allocation list;

wherein the retrieving the stored allocation data includes reading allocation data from the entries in the allocation list.

7 . The method of claim 6 , wherein the allocation data further includes a control code, and each entry in the allocation list has a respective control code value, the method further comprising conditioning the storing of data from the memory area in response to the value of the respective control code value.

8 . The method of claim 7 , further comprising conditioning release of the memory area referenced by an entry in response to the value of the respective control code value.

9 . The method of claim 1 , wherein the allocation data further includes a respective control code value for each memory acquire request, wherein the storing of data from a respective memory area as referenced by the allocation data is conditional in response to the value of the respective control code.

10 . The method of claim 9 , conditioning release of the memory area referenced by an entry in response to the value of the respective control code value.

11 . A system for recovering state data between boot sessions of an operating system, comprising:

a data processing system including a first type instruction processor, wherein the data processing system executes a first operating system (OS) that includes instructions of a first instruction set that are native to the first type instruction processor;

an instruction processor (IP) emulator executing on the first OS, the IP emulator emulating execution of instructions of a second instruction set that are not native to the first type instruction processor, wherein the IP emulator executes a second OS that includes instructions of the second instruction set;

an interface coupled to the IP emulator and executing on the first OS, wherein the interface, responsive to each memory acquire request from the second OS to the interface, returns a memory area for use by the second OS and stores allocation data associated with the memory area, including an address referencing the memory area and a boot sequence number, wherein the boot sequence number indicates a boot session of the second OS;

wherein the second OS, while booting to a current boot session, retrieves the stored allocation data from the interface, and responsive to the stored allocation data including a selected boot sequence number, stores data from the memory area referenced by the address in the allocation data in one or more files in retentive storage.

12 . The system of claim 11 , wherein the second OS is further configured to release the memory area after the storing of data from the memory area.

13 . The system of claim 11 , wherein the allocation data further includes a state-save control code, and the storing of data from the memory area by the second OS is in response to a first value of the state-save control code, wherein the second OS is further configured to omit the storing of data from the memory area in response to a second value of the state-save control code.

14 . The system of claim 11 , wherein the allocation data further includes a control code, the second OS being further configured to:

release the memory area after the storing of data from the memory area in response to a first value of the control code; and

omit releasing of the memory area in response to a second value of the control code.

15 . The system of claim 11 , wherein the allocation data further includes a control code, and the storing of data from the memory area while booting the second OS is in response to a first value of the control code, the second OS being further configured to:

release the memory area after the storing of data from the memory area in response to the first value of the control code;

store the data from the memory area and omit the releasing of the memory area in response to a second value of the control code;

omit the storing of data from the memory area and release the memory area in response to a third value of the control code; and

omit the storing of data from the memory area and omit the releasing of the memory area in response to a fourth value of the control code.

16 . The system of claim 11 , wherein the interface is further configured to:

store allocation data describing each acquire request in a respective entry in an allocation list in response to each memory acquire request from the second OS to the interface; and

reading allocation data from the entries in the allocation list.

17 . The system of claim 16 , wherein the allocation data further includes a control code, and each entry in the allocation list has a respective control code value, the second OS being further configured to condition the storing of data from the memory area in response to the value of the respective control code value.

18 . The system of claim 7 , the second OS being further configured to condition release of the memory area referenced by an entry in response to the value of the respective control code value.

19 . The system of claim 11 , wherein the allocation data further includes a respective control code value for each memory acquire request, the second OS being further configured to condition storing of data from a respective memory area as referenced by the allocation data in response to the value of the respective control code.

20 . The system of claim 19 , the second OS being further configured to condition release of the memory area referenced by an entry in response to the value of the respective control code value.

21 . An apparatus for recovering state data between boot sessions of an operating system, comprising:

means for executing a first operating system (OS), wherein the first OS includes instructions of a first instruction set that are native to an instruction processor;

means for emulating a second OS, wherein the second OS includes instructions of a second instruction set that are not native to the instruction processor;

means for interfacing the second OS to the first OS during emulation, wherein the means for interfacing, responsive to each memory acquire request from the second OS, returns a memory area for use by the second OS and stores allocation data associated with the memory area, including an address referencing the memory area and a boot sequence number, wherein the boot sequence number indicates a boot session of the second OS;

wherein while booting the second OS to a current boot session during emulation, the second OS retrieves the stored allocation data from the interface, and responsive to the stored allocation data including a selected boot sequence number, stores data from the memory area referenced by the address in the allocation data in retentive storage.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
RELEASE BY SECURED PARTY Recorded Sep 14, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023263/0631 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023312/0044 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT Recorded Feb 10, 2009
From: UNISYS CORPORATION
To: CITIBANK, N.A.
Reel/Frame 022237/0172 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2008
From: JENNINGS, ANDREW T; KAO, FENG-JUNG NMI; RIESCHL, MICHAEL J.; SCHROTH, DAVID W
To: UNISYS CORPORATION
Reel/Frame 021847/0993 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2008
From: JENNIGS, ANDREW T.; KAO, FENG-JUNG; RIESCHL, MICHAEL J.; SCHROTH, DAVID W.
To: UNISYS CORPORATION
Reel/Frame 021869/0215 →