IP Library › Granted Patent US 11,347,661
Granted Patent B2
US 11,347,661 · App. 17/024,209 · Granted May 31, 2022

Transitioning between thread-confined memory segment views and shared memory segment views

Inventors: Maurizio Cimadamore (Donabate, IE); James Malcolm Laskey (Lunenburg, CA); Jorn Bender Vernee (Leiden, NL)
Assignee: Oracle International Corporation
G06F12/1458G06F12/0646G06F2212/1052
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 11,347,661
App. No.
17/024,209
Granted
May 31, 2022
Kind
B2
Abstract

Techniques for transitioning between thread-confined memory segments and shared memory segments are disclosed. The system may instantiate a confined memory segment view. The confined memory segment view confines access to a memory segment to a particular thread. The system may further receive a request to change access permissions for the confined memory segment to allow access by a first set of one or more threads. Responsive to receiving the request to change access permissions for the confined memory segment, the system may instantiate a new memory segment view, wherein the new memory segment view permits access to the memory segment by the first set of one or more threads. The system may also copy metadata from the confined memory segment view to the new memory segment view. The system may de-allocate the memory segment in response to determining that there are no memory segment views associated with the memory segment.

Claims (55)

1. One or more non-transitory machine-readable media storing instructions which, when executed by one or more processors cause:

instantiating a confined memory segment view, wherein the confined memory segment view confines access to a memory segment to a particular thread;

receiving a request to change access permissions for the confined memory segment to allow access by a first set of one or more threads;

responsive to receiving the request to change access permissions for the confined memory segment:

instantiating a new memory segment view, wherein the new memory segment view permits access to the memory segment by the first set of one or more threads;

copying metadata from the confined memory segment view to the new memory segment view;

wherein the instantiating and copying operations are executed in response to determining that a requesting entity, corresponding to the request, is referenced by the confined memory segment view as an owner thread; and

de-allocating the memory segment in response to determining that there are no memory segment views currently associated with the memory segment.

2. The one or more media of claim 1 , wherein the confined memory segment view comprises a data structure that defines one or more temporal bounds for access to the memory segment.

3. The one or more media of claim 1 , wherein the confined memory segment view comprises a data structure that defines an upper bound address associated with the memory segment and a lower bound address associated with the memory segment.

4. The one or more media of claim 1 , wherein the operations further comprise: subsequent to copying the metadata from the confined memory segment view to the new memory segment view, terminating the confined memory segment view to prevent access to the memory segment via the confined memory segment view.

5. The one or more media of claim 1 , wherein the operations further comprise:

maintaining a counter corresponding to a number of memory segment views associated with the memory segment.

6. The one or more media of claim 1 , wherein the confined memory segment view references the particular thread in an owner field corresponding to the confined memory segment view.

7. The one or more media of claim 1 , wherein the first set of one or more threads consists of a second thread, and wherein the new memory segment view is a second confined memory segment view that is confined to access by the second thread.

8. The one or more media of claim 1 , wherein the first set of one or more threads consists of a particular plurality of threads defined by the request, and wherein the new memory segment view is a shared memory segment view accessible to the particular plurality of threads.

9. The one or more media of claim 1 , wherein the first set of one or more threads comprises all threads, and wherein the new memory segment view is a shared memory segment view accessible to any thread.

10. The one or more media of claim 1 , further comprising, prior to copying data from the confined memory segment view to the new memory segment view, completing pending access requests corresponding to the confined memory segment.

11. A method comprising:

instantiating a confined memory segment view, wherein the confined memory segment view confines access to a memory segment to a particular thread;

receiving a request to change access permissions for the confined memory segment to allow access by a first set of one or more threads;

responsive to receiving the request to change access permissions for the confined memory segment:

instantiating a new memory segment view, wherein the new memory segment view permits access to the memory segment by the first set of one or more threads;

copying metadata from the confined memory segment view to the new memory segment view;

wherein the instantiating and copying operations are executed in response to determining that a requesting entity, corresponding to the request, is referenced by the confined memory segment view as an owner thread; and

de-allocating the memory segment in response to determining that there are no memory segment views currently associated with the memory segment;

wherein the method is performed by at least one device including a hardware processor.

12. The method of claim 11 , wherein the confined memory segment view comprises a data structure that defines one or more temporal bounds for access to the memory segment.

13. The method of claim 11 , wherein the confined memory segment view comprises a data structure that defines an upper bound address associated with the memory segment and a lower bound address associated with the memory segment.

14. The method of claim 11 , wherein the operations further comprise:

subsequent to copying the metadata from the confined memory segment view to the new memory segment view, terminating the confined memory segment view to prevent access to the memory segment via the confined memory segment view.

15. The method of claim 11 , wherein the operations further comprise: maintaining a counter corresponding to a number of memory segment views associated with the memory segment.

16. The method of claim 11 , wherein the confined memory segment view references the particular thread in an owner field corresponding to the confined memory segment view.

17. The method of claim 11 , wherein the first set of one or more threads consists of a second thread, and wherein the new memory segment view is a second confined memory segment view that is confined to access by the second thread.

18. The method of claim 11 , wherein the first set of one or more threads consists of a particular plurality of threads defined by the request, and wherein the new memory segment view is a shared memory segment view accessible to the particular plurality of threads.

19. The method of claim 11 , wherein the first set of one or more threads comprises all threads, and wherein the new memory segment view is a shared memory segment view accessible to any thread.

20. The method of claim 11 , further comprising, prior to copying data from the confined memory segment view to the new memory segment view, completing pending access requests corresponding to the confined memory segment.

21. A system comprising:

at least one device including a hardware processor;

the system being configured to perform operations comprising:

instantiating a confined memory segment view, wherein the confined memory segment view confines access to a memory segment to a particular thread;

receiving a request to change access permissions for the confined memory segment to allow access by a first set of one or more threads;

responsive to receiving the request to change access permissions for the confined memory segment:

instantiating a new memory segment view, wherein the new memory segment view permits access to the memory segment by the first set of one or more threads;

copying metadata from the confined memory segment view to the new memory segment view;

wherein the instantiating and copying operations are executed in response to determining that a requesting entity, corresponding to the request, is referenced by the confined memory segment view as an owner thread; and

de-allocating the memory segment in response to determining that there are no memory segment views currently associated with the memory segment.

22. One or more non-transitory machine-readable media storing instructions which, when executed by one or more processors cause:

instantiating a confined memory segment view, wherein the confined memory segment view confines access to a memory segment to a particular thread;

receiving a request to change access permissions for the confined memory segment to allow access by a first set of one or more threads;

responsive to receiving the request to change access permissions for the confined memory segment:

instantiating a new memory segment view, wherein the new memory segment view permits access to the memory segment by the first set of one or more threads;

copying metadata from the confined memory segment view to the new memory segment view;

de-allocating the memory segment in response to determining that there are no memory segment views currently associated with the memory segment; and

subsequent to copying the metadata from the confined memory segment view to the new memory segment view, terminating the confined memory segment view to prevent access to the memory segment via the confined memory segment view.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2020
From: CIMADAMORE, MAURICIO; LASKEY, JAMES MALCOLM; VERNEE, JORN BENDER
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 053806/0874 →
Continuity (2)
Provisional Application 62931412 · Nov 6, 2019
Related Publication 20210133121A1 · May 6, 2021