IP Library Granted Patent US 8,904,400
Granted Patent B2
US 8,904,400 · App. 12/025,480 · Granted Dec 2, 2014

Processing system having a partitioning component for resource partitioning

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 8,904,400
App. No.
12/025,480
Granted
Dec 2, 2014
Kind
B2
Abstract

A processing system includes a resource that is accessible by a processor and resource partitioning software executable by the processor. The resource partitioning software may be executed to establish a resource partition for the resource. The resource partition defines a set of rules that are used to control access to the resource when a request for the resource is received from a software application and/or process.

Claims (52)

1. A processing system comprising:

a processor for accessing a resource;

a partitioning component in communication with the processor, the partitioning component configured to associate a resource partition with the resource, the resource partition having a set of partitioning rules including a minimum resource allocation and a maximum resource allocation; and

where the partitioning component is configured to intercept a first resource request for the resource sent from a requesting software application and/or process to a resource allocator configured to reserve a resource, and control access to the resource requested by the requesting software application and/or process in accordance with the set of partitioning rules; and

where the partitioning component provides a modified or new resource request to the resource allocator in place of the first resource request wherein the modified or new resource request is based on the set of partitioning rules including a minimum resource allocation and a maximum resource allocation.

2. The processing system of claim 1 , where the partitioning component is configured to validate or deny a resource request from the software application and/or process to enforce the set of partitioning rules associated with the resource.

3. The processing system of claim 1 , where the partitioning component is configured to set limits for the minimum resource allocation and the maximum resource allocation to define attributes of the resource partition.

4. The processing system of claim 1 , where the resource partition is dynamic and the partitioning component is configured to adjust limits of the minimum resource allocation and the maximum resource allocation at run time.

5. The processing system of claim 1 , where a first object class and a second object class are associated with the requesting software application and/or process; and

where based on the set of partitioning rules associated with the resource, the partitioning component grants the first object class access to the resource and denies the second object class access to the resource.

6. The processing system of claim 1 , where the resource partition comprises a parent resource partition of one or more child resource partitions, where attributes of the parent resource partition constrain attributes of the one or more child resource partitions; and

where allocations to the requesting software application and/or process from the child resource partition account against the parent resource partition.

7. The processing system of claim 1 ,

where the partitioning component generates the modified or new resource request by manipulating the first resource request based on the set of partitioning rules.

8. The processing system of claim 1 , where the partitioning component is configured to group a plurality of resource partitions together as a single pseudo-partition.

9. The processing system of claim 1 , where the set of partitioning rules comprises a terminal partition policy that when enabled prevents establishment of child partitions under the resource partition.

10. The processing system of claim 1 , where the set of partitioning rules comprises a configuration lock policy that when enabled prevents changes to attributes of the resource partition.

11. The processing system of claim 1 , where the set of partitioning rules comprises a permanence policy that when enabled prevents destruction of the resource partition.

12. The processing system of claim 1 , where the minimum resource allocation indicates a reserved portion of the resource associated with the resource partition; and

where a difference between the maximum resource allocation and the minimum resource allocation indicates a discretionary portion of the resource associated with the resource partition.

13. The processing system of claim 1 , where the resource partition comprises an open use configuration with the minimum resource allocation set to zero and the maximum resource allocation set to unlimited.

14. The processing system of claim 1 , where the resource partition comprises a guarantee use configuration with the minimum resource allocation set to a nonzero value and the maximum resource allocation set to unlimited.

15. The processing system of claim 1 , where the resource partition comprises a restricted use configuration with the minimum resource allocation set to zero and the maximum resource allocation set to a nonzero value.

16. The processing system of claim 1 , where the resource partition comprises a sandbox use configuration with the minimum resource allocation set to a first nonzero value and the maximum resource allocation set to a second nonzero value.

17. The processing system of claim 1 , where the partitioning component is configured to establish one or more resource partitions to control access to internal memory, external memory, external communication bandwidth, interrupt channels, direct memory access resources, mutexes, semaphores, interface cards, or hardware systems.

18. The processing system of claim 1 , where the partitioning component is configured to control allocation of a plurality of interrupt channels of the resource in accordance with the set of partitioning rules associated with the plurality of interrupt channels.

19. The processing system of claim 1 , where the set of partitioning rules associated with direct memory access (DMA) capable memory of the resource comprises a limited access rule that indicates which requesting software applications and/or processes may access the DMA capable memory; and

where the partitioning component is configured to control access to DMA capable memory in accordance with the limited access rule associated with the DMA capable memory.

20. The processing system of claim 1 , where the partitioning component is configured to control access to a mutex or semaphore of the resource created in memory in accordance with the set of partitioning rules associated with the mutex or semaphore.

21. The processing system of claim 1 , where the partitioning component is configured to control access to a plurality of sub-devices of an interface card of the resource in accordance with the set of partitioning rules associated with the interface card.

22. A processing system comprising:

a processor for accessing a resource;

resource partitioning software executable by the processor to establish a resource partition corresponding to the resource, the resource partition having corresponding partitioning rules including a minimum resource allocation and a maximum resource allocation; and

where the resource partitioning software intercepts a first resource request for the resource sent from a requesting software application to a resource allocator configured to reserve a resource, and controls access to the resource requested by the requesting software application and/or process in accordance with the corresponding partitioning rules; and

where the resource partitioning software provides a modified or new resource request to the resource allocator in place of the first resource request wherein the modified or new resource request is based on the corresponding partitioning rules including a minimum resource allocation and a maximum resource allocation.

23. The processing system of claim 22 , where the resource partitioning software assigns an amount of the resource for use by the requesting software application and/or process in accordance with the corresponding partitioning rules.

24. A method, comprising the steps of:

associating a resource partition with a resource, the resource partition having a set of partitioning rules including a minimum resource allocation and a maximum resource allocation;

intercepting a first resource request sent from a software application and/or process to a resource allocator, the first resource request including a request for access to the resource;

controlling access to the resource in accordance with the set of partitioning rules associated with the resource; and

providing a modified or new resource request to the resource allocator in place of the first resource request wherein the modified or new resource request is based on the set of partitioning rules including a minimum resource allocation and a maximum resource allocation.

25. The method of claim 24 , where the step of controlling comprises the steps of:

comparing the resource request with the set of partitioning rules associated with the resource; and

determining whether the software application and/or process can satisfy the set of partitioning rules to gain access to the resource.

26. The method of claim 24 , where the step of providing comprises the steps of:

manipulating the first resource request based on the set of partitioning rules; and

sending the new or modified resource request to the resource allocator, where the resource allocator coordinates access to the resource.

27. A processing system comprising:

a processor including means for associating a resource partition with a resource, the resource partition having a set of partitioning rules including a minimum resource allocation and a maximum resource allocation;

means for intercepting a first resource request sent from a software application to a resource allocator, the first resource request including a request for access to the resource;

means for controlling access to the resource in accordance with the set of partitioning rules associated with the resource; and

means for providing a modified or new resource request to the resource allocator in place of the first resource request wherein the modified or new resource request is based on the set of partitioning rules including a minimum resource allocation and a maximum resource allocation.

Assignments (13)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
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 Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
CHANGE OF ADDRESS Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 026883/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 026883/0544 →
REGISTRATION Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0398 →
CHANGE OF SEAT Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0434 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Jun 3, 2010
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024483/0045 →
SECURITY AGREEMENT Recorded May 8, 2009
From: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; BECKER SERVICE-UND VERWALTUNG GMBH; CROWN AUDIO, INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS (MICHIGAN), INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS HOLDING GMBH; HARMAN BECKER AUTOMOTIVE SYSTEMS, INC.; HARMAN CONSUMER GROUP, INC.; HARMAN DEUTSCHLAND GMBH; HARMAN FINANCIAL GROUP LLC; HARMAN HOLDING GMBH & CO. KG; HARMAN MUSIC GROUP, INCORPORATED; HARMAN SOFTWARE TECHNOLOGY INTERNATIONAL BETEILIGUNGS GMBH; HARMAN SOFTWARE TECHNOLOGY MANAGEMENT GMBH; HBAS INTERNATIONAL GMBH; HBAS MANUFACTURING, INC.; INNOVATIVE SYSTEMS GMBH NAVIGATION-MULTIMEDIA; JBL INCORPORATED; LEXICON, INCORPORATED; MARGI SYSTEMS, INC.; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS CANADA CORPORATION; QNX SOFTWARE SYSTEMS CO.; QNX SOFTWARE SYSTEMS GMBH; QNX SOFTWARE SYSTEMS GMBH & CO. KG; QNX SOFTWARE SYSTEMS INTERNATIONAL CORPORATION; QNX SOFTWARE SYSTEMS, INC.; XS EMBEDDED GMBH (F/K/A HARMAN BECKER MEDIA DRIVE TECHNOLOGY GMBH)
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 022659/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2008
From: KISEL, MICHAEL
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 020568/0487 →