IP Library Patent Application 11643422
Patent Application
App. No. 11/643,422

System and method for synchronizing memory management functions of two disparate operating systems

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.
11/643,422
Abstract

A memory management interface is provided to synchronize the operation of two disparate operating systems (OSes) that are executing on the same data processing platform. In one embodiment, the first operating system is a legacy OS of the type that is generally associated with an enterprise-level data processing system such as a mainframe. In contrast, the second OS is of a type designed to execute on commodity hardware such as personal computers. The first OS communicates with the second OS via a control logic interface to establish its execution environment, and to perform memory management functions. This interface supports a two-phase boot process that ensures that all memory allocated to the first OS can be released if an error occurs that affects operations of the first OS. This prevents the development of memory leaks.

Claims (71)

1 . A system for use in managing resources of a data processing system, comprising:

a first operating system (OS) to make requests to acquire memory during a current boot session of the data processing system;

a second OS to allocate the memory requested by the first operating system;

system control logic to couple the first OS to the second OS, the system control logic to record all memory allocated during a first portion of the current boot session, and the first OS to record all memory allocated during a second portion of the current boot session.

2 . The system of claim 1 , wherein the system control logic includes an emulator to emulate the first OS on the data processing system.

3 . The system of claim 1 , wherein the requests include requests for memory management functions which are fulfilled by the second OS.

4 . The system of claim 3 , wherein the first OS includes logic to issue the requests by executing an instruction that is part of an instruction set in which the first OS is written.

5 . The system of claim 3 , wherein the memory management functions are selected from a group consisting of:

acquiring memory;

releasing memory;

discarding memory;

setting a memory attribute;

clearing a memory attribute;

pinning an area of memory;

unpinning an area of memory;

indicating a start of the second portion of the current boot session;

indicating an end of the second portion of the current boot session;

initializing memory;

recovering memory allocated to a previous boot session; and

retrieving a copy of memory allocated to a previous boot session.

6 . The system of claim 1 , wherein the first OS includes logic to build, during the first portion of the current boot session, session data describing an execution environment of the current boot session, and wherein the first OS includes logic to make requests, during the second portion of the current boot session, to release any yet unreleased memory that had been allocated to the first OS during one or more previous boot sessions.

7 . The system of claim 6 , wherein the yet unreleased memory is identified using a pointer stored in the session data.

8 . The system of claim 7 , wherein the system control logic includes logic to store the pointer in the session data for use by the first OS in releasing any yet unreleased memory.

9 . The system of claim 6 , wherein the system control logic includes logic to defer processing of each of the requests to release memory until the first OS provides an indication that the second portion of the current boot session is completed, at which time all of the requests to release memory are submitted by the system control logic to the second OS, which will release the yet unreleased memory so that it becomes available for re-use.

10 . The system of claim 6 , wherein the first OS includes logic to save contents of at least a portion of the yet unreleased memory for analysis of the data processing system.

11 . The system of claim 1 , wherein the system control logic includes logic to release all of the memory acquired during the first portion of the current boot session if a failure occurs during the first portion of the current boot session, and wherein the first OS includes logic to release all of the memory acquired during the second portion of the current boot session if a failure occurs during the second portion of the current boot session.

12 . A method for managing resources of a data processing system, comprising:

initiating, during a current boot session, the booting of a first operating system (OS) on the data processing system;

recording, by system control logic, any memory allocated during a first portion of the current boot session to the first OS; and

recording, by the first OS, any memory allocated during a second portion of the current boot session to the first OS, whereby if a failure occurs during the current boot session all memory allocated during the current boot session to the first OS may be released for re-use.

13 . The method of claim 12 , further including allocating, by a second OS, memory to the first OS during the current boot session.

14 . The method of claim 12 , further including emulating the first OS on the data processing system.

15 . The method of claim 12 , further including executing, by the first OS, a machine instruction whereby a request is made to the second OS for a memory management function.

16 . The method of claim 15 , further including:

interpreting, by the system control logic, the request for the memory management function; and

providing the interpreted request to the second OS for execution.

17 . The method of claim 15 , wherein the memory management function is selected from a group consisting of:

acquiring memory;

releasing memory;

discarding memory;

setting a memory attribute;

clearing a memory attribute;

pinning an area of memory;

unpinning an area of memory;

indicating a start of the second portion of the current boot session;

indicating an end of the second portion of the current boot session;

initializing memory;

recovering memory allocated to a previous boot session; and

retrieving a copy of allocated memory.

18 . The method of claim 12 , including:

if a failure occurs during the first portion of the current boot session, releasing, by the system control logic, the memory that was allocated during the first portion of the current boot session; and

initiating booting of the first OS during a next boot session.

19 . The method of claim 12 , including, if a failure occurs during the second portion of the current boot session, initiating release, by the first OS, of the memory allocated during the second portion of the current boot session.

20 . The method of claim 19 , wherein the initiating release of memory by the first OS occurs during a different boot session that is after the current boot session.

21 . The method of claim 19 , wherein the initiating release of memory by the first OS releases any unreleased memory that was allocated to the first OS during any other previous boot session.

22 . The method of claim 12 , further comprising:

if a failure occurs during the second portion of the current boot session, locating any unreleased memory allocated to the first OS during the current boot session and any prior boot session using a pointer provided by the system control logic; and

releasing the unreleased memory allocated to the first OS.

23 . The method of claim 22 , further comprising saving for analysis purposes contents of at least some of the unreleased memory allocated to the first OS prior to the releasing step.

24 . The method of claim 12 , further comprising determining, by the first OS, the start and end of the second portion of the boot session.

25 . A system for managing resources of a data processing system, comprising:

first operating system (OS) means for making requests for system resources;

second OS means for allocating the resources;

system control means for tracking the resources allocated to the first OS means during a first time period; and

wherein the first OS means includes means for tracking the resources allocated to the first OS means during a second time period, whereby all resources allocated to the first OS means may be released for reuse in event of a failure.

26 . The system of claim 25 , wherein the first OS means is legacy OS means and the second OS means is commodity OS means.

27 . Storage media readable by a data processing system for causing the data processing system to perform a method, comprising:

initiating a boot session for a first operating system (OS);

issuing requests, by the first OS, requesting allocation of memory for use by the first OS;

tracking, by system control logic, all of the memory allocated to the first OS during a first portion of the boot session; and

tracking, by the first OS, all of the memory allocated to the first OS during a second portion of the boot session, whereby if a failure occurs during the first portion of the boot session, the system control logic releases for re-use the memory allocated to the first OS during the boot session, and if a failure occurs during the second portion of the boot session, the first OS releases for re-use the memory allocated to the first OS during the boot session.

Assignments (5)
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 →
CORRECTIVE ASSIGNMENT TO ADD INVENTOR DAVID W. SCHROTH, PREVIOUSLY RECORDED AT REEL 018742 FRAME 0124. Recorded Aug 15, 2007
From: JENNINGS, ANDREW T.; KAO, FENG - JUNG; LANGSFORD, KERRY M.; RIESCHL, MICHAEL J.; SCHROTH, DAVID W.
To: UNISYS CORPORATION, BETH L. MCMAHON
Reel/Frame 019724/0332 →
SECURITY AGREEMENT SUPPLEMENT Recorded Apr 13, 2007
From: UNISYS CORPORATION
To: CITIBANK, N.A.
Reel/Frame 019188/0840 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2006
From: JENNINGS, ANDREW T.; KAO, FENG-JUNG; LANGSFORD, KERRY M.; RIESCHL, MICHAEL J.
To: UNISYS CORPORATION
Reel/Frame 018725/0088 →