IP Library Granted Patent US 8,910,165
Granted Patent B2
US 8,910,165 · App. 12/579,103 · Granted Dec 9, 2014

Providing thread specific protection levels

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,910,165
App. No.
12/579,103
Granted
Dec 9, 2014
Kind
B2
Abstract

Techniques are disclosed for providing thread specific protection levels in a multithreaded processing environment. An associated method includes generating a group of threads in a process, one of the group of threads opening a thread entity, and that one of the group of threads specifying one or more levels of access to the thread entity for the other threads. In one embodiment, when a first of the threads attempts to perform a specified operation on the thread entity, the method of this invention determines whether that first thread is the one of the group of threads that opened the thread entity. When the first thread is not that one of the group of threads, the first thread is allowed to perform the specified operation if and only if such operation is permitted by the specified one or more levels of access.

Claims (38)

1. A method comprising:

generating a group of threads in a process, wherein each thread among the group of threads has a respective thread identifier (ID);

opening a thread entity for a first thread among the group of threads, wherein the thread entity is one of a file descriptor and a socket descriptor;

specifying, in agreement with an associated open mode privilege, one or more levels of access to the thread entity for all other threads among the group of threads;

storing in a table the thread ID of the first thread;

upon determining that a certain thread among the group of threads is attempting to perform a specified operation on the thread entity, determining whether the thread ID of the certain thread matches the thread ID of the first thread stored in the table;

upon determining that the thread ID of the certain thread matches the thread ID of the first thread, allowing the certain thread to perform the specified operation;

upon determining that the thread ID of the certain thread does not match the thread ID of the first thread, determining whether the specified operation is allowed by the specified one or more levels of access; and

upon determining that the specified operation is allowed by the specified one or more levels of access, allowing the certain thread to perform the specified operation.

2. The method of claim 1 , wherein the one or more levels of access are selected from a group comprising a first level defined to permit read only access to the thread entity and a second level defined to permit write only access to the thread entity.

3. The method of claim 1 , wherein the one or more levels of access include a level defined to prohibit access to the thread entity.

4. The method of claim 1 , wherein the one or more levels of access include a level defined to allow read and write access to the thread entity but to prohibit closure of the thread entity.

5. A system comprising:

a processor; and

a memory storing a program, which, when executed on the processor, performs an operation comprising:

generating a group of threads in a process, wherein each thread among the group of threads has a respective thread identifier (ID);

opening a thread entity for a first thread among the group of threads, wherein the thread entity is one of a file descriptor and a socket descriptor;

specifying, in agreement with an associated open mode privilege, one or more levels of access to the thread entity for all other threads among the group of threads;

storing in a table the thread ID of the first thread;

upon determining that a certain thread among the group of threads is attempting to perform a specified operation on the thread entity, determining whether the thread ID of the certain thread matches the thread ID of the first thread stored in the table;

upon determining that the thread ID of the certain thread matches the thread ID of the first thread, allowing the certain thread to perform the specified operation;

upon determining that the thread ID of the certain thread does not match the thread ID of the first thread, determining whether the specified operation is allowed by the specified one or more levels of access; and

upon determining that the specified operation is allowed by the specified one or more levels of access, allowing the certain thread to perform the specified operation.

6. The system of claim 5 , wherein the one or more levels of access include a level defined to allow read and write access to the thread entity but to prohibit closure of the thread entity.

7. The system of claim 5 , wherein the one or more levels of access are selected from a group comprising a first level defined to permit read only access to the thread entity and a second level defined to permit write only access to the thread entity.

8. The system of claim 5 , wherein the one or more levels of access include a level defined to prohibit access to the thread entity.

9. A non-transitory computer usable medium storing an application, which, when executed on a processor, performs an operation comprising:

generating a group of threads in a process, wherein each thread among the group of threads has a respective thread identifier (ID);

opening a thread entity for a first thread among the group of threads, wherein the thread entity is one of a file descriptor and a socket descriptor;

specifying, in agreement with an associated open mode privilege, one or more levels of access to the thread entity for all other threads among the group of threads;

storing in a table the thread ID of the first thread;

upon determining that a certain thread among the group of threads is attempting to perform a specified operation on the thread entity, determining whether the thread ID of the certain thread matches the thread ID of the first thread stored in the table;

upon determining that the thread ID of the certain thread matches the thread ID of the first thread, allowing the certain thread to perform the specified operation;

upon determining that the thread ID of the certain thread does not match the thread ID of the first thread, determining whether the specified operation is allowed by the specified one or more levels of access; and

upon determining that the specified operation is allowed by the specified one or more levels of access, allowing the certain thread to perform the specified operation.

10. The non-transitory computer usable medium of claim 9 , wherein the one or more levels of access include a level defined to allow read and write access to the thread entity but to prohibit closure of the thread entity.

11. The non-transitory computer usable medium of claim 9 , wherein the one or more levels of access are selected from a group comprising a first level defined to permit read only access to the thread entity and a second level defined to permit write only access to the thread entity.

12. The non-transitory computer usable medium of claim 9 , wherein the one or more levels of access include a level defined to prohibit access to the thread entity.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050300/0570 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENT CONTAINING TYPO ERRORS PREVIOUSLY RECORDED AT REEL: 037101 FRAME: 0969. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037689/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037101/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0111 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2009
From: KRISHNASAMY, SIVAKUMAR; JAGADEESWARAN, ASHOK KUMAR; KHAN, ISMAIL S; CHANDRAN, SHAJITH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 023404/0669 →