IP Library Granted Patent US 10,394,602
Granted Patent B2
US 10,394,602 · App. 14/290,378 · Granted Aug 27, 2019

System and method for coordinating process and memory management across domains

View Patent ↗
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 10,394,602
App. No.
14/290,378
Granted
Aug 27, 2019
Kind
B2
Abstract

A method at a computing device having a plurality of concurrently operative operating systems, the method comprising: operating a proxy process within a target operating system on the computing device; receiving, from an originating operating system, a request for resources from a target process within the target operating system at the proxy process; requesting, from the proxy process, the resources of the target process; and returning a handle to the target process from the proxy process to the originating operating system.

Claims (38)

1. A method at a computing device having a plurality of concurrently operative operating systems including an originating operating system, comprising at least one originating process, and a target operating system, comprising one or more resources, the method comprising:

operating a proxy process within the target operating system on the computing device, the proxy process being marked to avoid being shut down even if the target operating system is running low on memory;

receiving, by the proxy process, from the originating operating system, a first request for the at least one originating process to interact with a resource of the one or more resources from the target operating system, the first request including at least one process identifier identifying the at least one originating process, and a resource identifier that identifies the requested resource;

sending a second request, from the proxy process to the target operating system, for the resource;

determining, by the target operating system, that no process currently running within the target operating system provides access to the resource;

responsive to the determining, starting, by the target operating system, a target process;

providing access to the resource to the target process;

returning a handle to the target process from the proxy process to the originating operating system, the handle enabling the at least one originating process to interact directly with the target process within the target operating system to thereby interact with the resource, wherein the proxy process maintains an association between process identifiers of one or more processes external to the target operating system, including the at least one originating process, and resource identifiers of the one or more resources with which the external processes interact;

receiving, at the proxy process, from the at least one originating process in the originating operating system, an indication that the at least one originating process no longer interacts with the requested resource, the indication comprising the resource identifier;

receiving, at the target operating system, from the proxy process, an indication that the requested resource is no longer needed by the proxy process upon determining, based on the association maintained by the proxy process, that no process external to the target operating system interacts with the requested resource identified by the resource identifier; and

ending, by the target operating system, the target process.

2. The method of claim 1 , further comprising populating a table within the proxy process with an identifier for the originating process within the originating operating system, an identifier for the originating operating system, and the resource identifier.

3. The method of claim 2 , further comprising removing entries from the table when the originating process is finished with the resource.

4. The method of claim 3 , further comprising informing the target operating system that the proxy process is finished with the resource if no entries in the table contain an identifier for the resource.

5. The method of claim 3 , wherein the proxy process polls the originating operating system regarding a status of the originating process.

6. The method of claim 3 , wherein the proxy process registers a trigger with the originating operating system to be informed when the originating process ends.

7. The method of claim 1 , wherein the target process is a content provider.

8. A computing device having a plurality of concurrently operative operating systems including an originating operating system, comprising at least one originating process, and a target operating system, comprising one or more resources the computing device comprising:

a processor; and

memory,

wherein the computing device is configured to:

operate a proxy process within the target operating system on the computing device, the proxy process being marked to avoid being shut down even if the target operating system is running low on memory;

receive, by the proxy process, from the originating operating system, a first request for the at least one originating process to interact with a resource of the one or more resources from the target operating system, the first request including at least one process identifier identifying the at least one originating process, and a resource identifier that identifies the requested resource;

send a second request, from the proxy process to the target operating system, for the resource;

determine, by the target operating system, that no process currently running within the target operating system provides access to the resource;

responsive to the determining, start, by the target operating system, a target process, the target process holding the resource;

providing access to the resource to the target process;

return a handle to the target process from the proxy process to the originating operating system, the handle enabling the at least one originating process to interact directly with the target process within the target operating system to thereby interact with the resource, wherein the proxy process maintains an association between process identifiers of one or more processes external to the target operating system, including the at least one originating process, and resource identifiers of the one or more resources with which the external processes interact;

receive, at the proxy process, from the at least one originating process in the originating operating system, an indication that the at least one originating process no longer interacts with the requested resource, the indication comprising the resource identifier;

receive, at the target operating system, from the proxy process, an indication that the requested resource is no longer needed by the proxy process upon determining, based on the association maintained by the proxy process, that no process external to the target operating system interacts with the requested resource identified by the resource identifier; and

end, by the target operating system, the target process.

9. The computing device of claim 8 , wherein the computing device is further configured to populate a table within the proxy process with an identifier for the originating process within the originating operating system, an identifier for the originating operating system, and the resource identifier.

10. The computing device of claim 9 , wherein the computing device is further configured to remove entries from the table when the originating process is finished with the resource.

11. The computing device of claim 10 , wherein the computing device is further configured to inform the target operating system that the proxy process is finished with the resource if no entries in the table contain an identifier for the resource.

12. The computing device of claim 10 , wherein the proxy process polls the originating operating system regarding a status of the originating process.

13. The computing device of claim 10 , wherein the proxy process registers a trigger with the originating operating system to be informed when the originating process ends.

14. The computing device of claim 8 , wherein the target process is a content provider.

15. The computing device of claim 8 , wherein the computing device is a mobile device.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2016
From: QNX SOFTWARE SYSTEMS LIMITED
To: 2236008 ONTARIO INC.
Reel/Frame 037757/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE CORPORATE IDENTIFIER INADVERTENTLY LISTED ON THE ASSIGNMENT AND COVERSHEET AS "LIMITED" PREVIOUSLY RECORDED ON REEL 035700 FRAME 0845. ASSIGNOR(S) HEREBY CONFIRMS THE IDENTIFIER SHOULD HAVE STATED "INC.". Recorded May 27, 2015
From: QNX SOFTWARE SYSTEMS LIMITED
To: 2236008 ONTARIO INC.
Reel/Frame 035785/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2015
From: QNX SOFTWARE SYSTEMS LIMITED
To: 2236008 ONTARIO LIMITED
Reel/Frame 035700/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2014
From: SINGH, RAVI
To: BLACKBERRY LIMITED
Reel/Frame 033584/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2014
From: MAJOR, DANIEL JONAS; NAGARAJAN, SIVAKUMAR; GOODMAN, KEVIN DENNIS
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 033584/0113 →