IP Library Granted Patent US 8,799,914
Granted Patent B1
US 8,799,914 · App. 12/885,957 · Granted Aug 5, 2014

Managing shared resource in an operating system by distributing reference to object and setting 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,799,914
App. No.
12/885,957
Granted
Aug 5, 2014
Kind
B1
Abstract

Managing processes in a computing system comprising one or more cores includes generating an object in an operating system running on at least one core. A reference to the object is distributed to each of at least one and fewer than all of a plurality of processes to be executed on the at least one core. The operating system controls access to a resource such that processes to which the reference to the object was distributed have access to the resource and processes to which the reference to the object was not distributed do not have access to the resource.

Claims (59)

1. A method for managing processes in a computing system comprising one or more cores, the method comprising:

generating an object in an operating system running on at least one core of the one or more cores;

distributing a reference to the object to each of at least one of a plurality of processes to be executed on the at least one core;

controlling by the operating system running on the at least one core access by a first one of the processes executing on the at least one core to a resource by determining whether the first one of the processes is one of the one or more processes to which the reference to the object was distributed to permit the first one of the processes to have access to the resource and otherwise deny the first one of the processes access to the resource being a process to which the reference to the object was not distributed;

scheduling the plurality of processes to execute on the at least one core and, in response to scheduling the plurality of processes to execute on the at least one core,

setting a protection level associated with the resource;

assigning protection levels to the plurality of processes with processes to which the reference to the object was distributed having access to the resource and processes to which the reference to the object was not distributed not having access to the resource; and

granting access to the resource based on comparing a protection level associated with a process requesting access to the stored protection level associated with the resource.

2. The method of claim 1 , wherein the computing system comprises multiple cores including the at least one core running the operating system, the plurality of processes are executing on different respective cores of the multiple cores, and the resource is accessible to multiple of the plurality of processes.

3. The method of claim 2 , wherein the resource comprises hardware of the computing system.

4. The method of claim 3 , wherein the resource comprises memory.

5. The method of claim 4 , wherein the memory is a translation lookaside buffer, a cache, or a special purpose register.

6. The method of claim 3 , wherein the resource comprises hardware of a network coupled to each of the multiple cores.

7. The method of claim 6 , wherein the network comprises multiple switches coupled to different respective cores, and the resource comprises an input or output port of a switch.

8. The method of claim 3 , wherein the resource comprises a counter for monitoring a value associated with performance of a core.

9. The method of claim 2 , wherein the reference to the object comprises a handle to the object.

10. The method of claim 9 , wherein the object comprises a file.

11. The method of claim 2 , wherein the reference to the object is distributed before the plurality of processes are scheduled to execute on the at least one core.

12. The method of claim 1 , further comprising, in response to scheduling the at least one of the plurality of processes to execute on the at least one core, determining whether the at least one of the plurality of processes has been distributed the reference to the object.

13. The method of claim 12 , wherein assigned protection levels occur after determining whether each of the plurality of processes has been distributed the reference to the object.

14. The method of claim 1 , further comprising setting respective protection levels associated with one or more other resources independently from setting the protection level associated with the resource.

15. A method for managing processes in a computing system comprising multiple cores, the method comprising:

generating an object in an operating system running on at least one core of the multiple cores;

distributing a reference to the object to each of at least one and fewer than all of a plurality of processes executing on different respective cores of the multiple cores; and

controlling access to a resource such that processes to which the reference to the object was distributed have access to the resource and processes to which the reference to the object was not distributed do not have access to the resource with the resource is accessible to multiple of the plurality of processes;

scheduling the plurality of processes to execute on the at least one core and, in response to scheduling the plurality of processes to execute on the at least one core, determining whether each of the plurality of processes has been distributed the reference to the object;

after determining whether each of the plurality of processes has been distributed the reference to the object, setting a protection level associated with the resource and assigning protection levels to the plurality of processes such that processes to which the reference to the object was distributed have access to the resource and processes to which the reference to the object was not distributed do not have access to the resource; and

wherein the resource is associated with a register that stores the protection level associated with the resource.

16. The method of claim 15 , further comprising, granting access to the resource based on comparing a protection level associated with a process requesting access to the stored protection level associated with resource.

17. A computer-readable hardware storage device tangibly storing a computer program product for managing processes in a computing system comprising one or more cores, the computer program including instructions for causing the computing system to:

generate an object in an operating system running on at least one core;

distribute a reference to the object to each of at least one and fewer than all of a plurality of processes to be executed on the at least one core; and

control by the operating system running on the at least one core access by a first one of the processes executing on the at least one core to a resource by determining whether the first one of the processes is one of the one or more processes to which the reference to the object was distributed to permit the first process to have access to the resource and otherwise deny the first one of the processes access to the resource being a process to which the reference to the object was not distributed;

schedule the plurality of processes to execute on the at least one core and, in response to scheduling the plurality of processes to execute on the at least one core,

set a protection level associated with the resource and assign protection levels to the plurality of processes with processes to which the reference to the object was distributed having access to the resource and processes to which the reference to the object was not distributed not having access to the resource; and

grant access to the resource based on comparing a protection level associated with a process requesting access to the stored protection level associated with the resource.

18. The computer-readable storage device of claim 17 , wherein the program executes on the computing system comprising multiple cores including the at least one core running the operating system, the plurality of processes are executing on different respective cores of the multiple cores, and the resource is accessible to multiple of the plurality of processes with the resource comprises hardware of the computing system.

19. The computer-readable storage device of claim 18 wherein the resource comprises memory.

20. The computer-readable storage device of claim 19 wherein the memory is a translation lookaside buffer, a cache, or a special purpose register.

21. The computer-readable storage device of claim 18 wherein the resource comprises hardware of a network coupled to each of the multiple cores with the network comprising multiple switches coupled to different respective cores, and the resource comprises an input or output port of a switch.

22. The computer-readable storage device of claim 18 wherein the resource comprises a counter for monitoring a value associated with performance of a core.

23. The computer-readable storage device of claim 17 wherein the reference to the object comprises a handle to the object and the object comprises a file.

24. The computer-readable storage device of claim 17 wherein the reference to the object is distributed before the plurality of processes are scheduled to execute on the at least one core, the program further comprising instructions to determine whether each of the plurality of processes has been distributed the reference to the object.

25. A computing system, comprising:

one or more cores; and

processors in the cores configured to:

generate an object in an operating system running on at least one core;

distribute a reference to the object to each of at least one and fewer than all of a plurality of processes to be executed on the at least one core; and

control access by a first one of the processes executing on the at least one core to a resource determining whether the first one of the processes is one of the one or more processes to which the reference to the object was distributed to permit the first process to have access to the resource and otherwise deny the first one of the processes access to the resource being a process to which the reference to the object was not distributed;

schedule the plurality of processes to execute on the at least one core and, in response to scheduling the plurality of processes to execute on the at least one core,

set a protection level associated with the resource and assign protection levels to the plurality of processes with processes to which the reference to the object was distributed having access to the resource and processes to which the reference to the object was not distributed not having access to the resource; and

grant access to the resource based on comparing a protection level associated with a process requesting access to the stored protection level associated with the resource.

26. The computing system of claim 25 , configured to execute on the computing system comprising multiple cores including the at least one core running the operating system, the plurality of processes are executing on different respective cores of the multiple cores, and the resource is accessible to multiple of the plurality of processes with the resource comprises hardware of the computing system.

27. The computing system of claim 26 wherein the resource comprises memory.

28. The computing system of claim 27 wherein the memory is a translation lookaside buffer, a cache, or a special purpose register.

29. The computing system of claim 26 wherein the resource comprises hardware of a network coupled to each of the multiple cores with the network comprising multiple switches coupled to different respective cores, and the resource comprises an input or output port of a switch.

30. The computing system of claim 29 wherein the resource comprises a counter for monitoring a value associated with performance of a core.

31. The computing system of claim 25 wherein the reference to the object comprises a handle to the object and the object comprises a file.

32. The computing system of claim 25 wherein the reference to the object is distributed before the plurality of processes are scheduled to execute on the at least one core, the system further configured to determine whether each of the plurality of processes has been distributed the reference to the object.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 42962/0859 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
Reel/Frame 046551/0459 →
SECURITY INTEREST Recorded Jun 23, 2017
From: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 042962/0859 →
DIVIDEND DECLARATION FROM EZCHIP SEMICONDUCTOR INC. TO THE STOCKHOLDER OF RECORD ON 6/2/2015 (EZCHIP INC., A DELAWARE CORPORATION) Recorded Feb 16, 2017
From: EZCHIP SEMICONDUCTOR INC.
To: EZCHIP, INC.
Reel/Frame 041736/0013 →
PURCHASE AGREEMENT Recorded Feb 16, 2017
From: EZCHIP, INC.
To: EZCHIP SEMICONDUCTOR LTD.
Reel/Frame 041736/0151 →
MERGER Recorded Feb 16, 2017
From: EZCHIP TECHNOLOGIES LTD.
To: EZCHIP SEMICONDUCTOR LTD.
Reel/Frame 041736/0321 →
MERGER Recorded Feb 16, 2017
From: EZCHIP SEMICONDUCTOR LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 041870/0455 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2017
From: EZCHIP SEMICONDUCTOR LTD.
To: EZCHIP TECHNOLOGIES, LTD.
Reel/Frame 041736/0253 →
MERGER Recorded Feb 16, 2017
From: TILERA CORPORATION
To: EZCHIP SEMICONDUCTOR INC.
Reel/Frame 041735/0792 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2010
From: METCALF, CHRISTOPHER D.
To: TILERA CORPORATION
Reel/Frame 025216/0023 →