IP Library Granted Patent US 10,067,796
Granted Patent B1
US 10,067,796 · App. 14/450,476 · Granted Sep 4, 2018

Managing shared resources in an operating system

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,067,796
App. No.
14/450,476
Granted
Sep 4, 2018
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 (73)

1. A method for managing a plurality of resources in a computing system comprising a tile processor, the tile processor having plural processing cores, with each processing core having a processor and a switch, the method comprising:

generating by an operating system running on at least one of the processing cores, an operating system object (object) for accessing a first one of the plurality of resources;

distributing to one or more processes that are to have user-level access to the first resource, a handle to the object to provide to the one or more processes the user-level access to the first resource;

scheduling a process to run on a processor of one of the plural processor cores;

checking by the operating system on the one of the plural processor cores whether the scheduled process has the distributed handle to the object;

permitting the scheduled process having the distributed handle to access the first resource, according to a set of protection levels established by the operating system on the one of the plural processor cores, with the protection level being greater than or equal to a minimum protection level associated with the first resource; and

accessing the first resource by the process having the distributed handle.

2. The method of claim 1 , wherein the plural processor cores are running the operating system, the one or more processes are plural processes executing on different respective cores of the plural processor cores, and the first resource is accessible to multiple ones of the plural processes.

3. The method of claim 1 , wherein the first resource comprises hardware of the computing system or memory or a translation lookaside buffer or a cache or a special purpose register or hardware of a network coupled to the plural cores.

4. The method of claim 3 , wherein the network comprises switches in the processor cores and the first resource comprises an input or output port of a switch.

5. The method of claim 1 wherein the first resource comprises a counter for monitoring a value associated with performance of a processor core.

6. The method of claim 1 wherein the operating system allows applications request a partition of the first resource.

7. The method of claim 1 , further comprising:

establishing the protection level associated with the resource to prevent processes to which the handle to the object was not distributed from accessing the resource.

8. The method of claim 7 , further comprising:

setting protection levels associated with one or more of other resources of the plurality of resources independently from setting the protection level associated with the first resource.

9. The method of claim 8 , wherein the first resource is associated with a register that stores the protection level associated with the first resource.

10. The method of claim 9 , further comprising:

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

11. A method for managing resources in a computing system comprising a tile processor having plural processing cores with each core having a processor and a switch, the method comprising:

generating by an operating system running on at least one of the cores an operating system object (object) to provide user-level access to one or more resources associated with the tile processor;

distributing to one or more processes that are to have the user access to the one or more resources a handle to the object;

prior to scheduling a process to run on the processor of the core;

determining whether the process is bound to a single processor before accessing the one or more resources;

checking by the operating system whether the scheduled process has the distributed handle to the object; and

scheduling by the operating system the process having the distributed handle to access the one or more resources, according to a set of protection levels established by the operating system on the one of the plural processor cores, with the protection level being greater than or equal to a minimum protection level associated with the one or more resources.

12. The method of claim 11 , further comprising:

performing a multi-processor component reset after all scheduled processes that have access to the resource have completed.

13. The method of claim 11 , further comprises:

reserving by the operating system access to a portion of the one or more resources.

14. The method of claim 13 , wherein the one or more resources is a user network and the method further comprises:

partitioning the user network;

opening a pseudo-file; and

performing a system call to request a particular subset of the network be partitioned and reserved.

15. The method of claim 11 , further comprising:

establishing by the operating system the set of protection levels in the at least one of the cores to permit the scheduled process to access the one or more resources.

16. The method of claim 13 wherein the operating system confers a token that does not automatically confer to a process access the one or more resources.

17. The method of claim 11 wherein one of the processes is a server process that returns tokens for client processes to access the multi-processor resources; and

obtaining access to a multi-processor resources includes

acquiring a token;

binding the server task to a single processor; and

requesting access from the operating system.

18. A computer-readable hardware storage device that stores a computer program for managing a first resource of plural resources in a computing system that includes one or more cores, the computer program including instructions for causing the computing system to:

generate by an operating system running on at least one of the cores an operating system object (object) for accessing the first resource;

distribute to one or more processes that are to have user-level access to the first resource being managed, a handle to the object to provide to the one or more processes the user-level access to the first resource;

schedule a process to run on a processor of the one or more cores;

check by the operating system running on the at least one of the cores whether the scheduled process has the distributed handle to the object;

permit the scheduled process having the distributed handle to access the first resource, according to a set of protection levels established by the operating system on the one of the plural processor cores, with the protection level being greater than or equal to a minimum protection level associated with the first resource; and

access the first resource by the process having the distributed handle.

19. A computing system, comprising:

one or more cores each core comprising a processor and a switch, with at least one processor in one of the cores configured to:

generate by an operating system running on at least one of the one or more cores an operating system object (object) for accessing a resource of the computing system;

distribute to one or more processes that are to have user-level access to the resource, a handle to the object to provide to the one or more processes the user-level access to the resource;

schedule a process to run on a processor of one of the one or more cores;

check by the operating system running on the one or more cores whether the scheduled process has the distributed handle to the object;

permit the scheduled process having the distributed handle to access the resource, according to a set of protection levels established by the operating system on the one of the plural processor cores, with the protection level being greater than or equal to a minimum protection level associated with the resource; and

access the resource by the process having the distributed handle.

20. The computing system of claim 19 wherein processors of the one or more cores are running the operating system, the one or more processes are plural processes executing on different respective cores, and the resource is accessible to multiple ones of the plural processes.

21. The computing system of claim 19 wherein the resource comprises hardware of the system or memory or a translation lookaside buffer or a cache or a special purpose register or hardware of a network coupled to the plural cores.

22. The computing system of claim 21 wherein the network comprises switches in the processor cores and the resource comprises an input or output port of one of the switches.

23. The computing system of claim 19 wherein the first resource comprises a counter for monitoring a value associated with performance of a processor core.

24. The computing system of claim 19 wherein the operating system allows applications request a partition of the resource.

25. The computing system of claim 19 wherein the established protection level associated with the resource prevents processes to which the handle to the object was not distributed from accessing the resource.

26. The computing system of claim 19 wherein the computing system executes a plurality of processes including the process and is further configured to:

set protection levels associated with one or more of other resources of the plurality of resources independently from setting the protection level associated with the resource.

27. The computing system of claim 19 wherein the resource is associated with a register that stores the protection level associated with the resource.

28. The computing system of claim 19 , further configured to:

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.

29. The computer-readable hardware storage device of claim 18 wherein the instructions cause the operating system to allow applications to request a partition of the resource.

30. The computer-readable hardware storage device of claim 18 further including instructions to:

set protection levels associated with one or more of other resources of the plurality of resources independently from setting the protection level associated with the resource.

31. The computer-readable hardware storage device of claim 18 further including instructions to:

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.

Assignments (8)
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 →
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: 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 →
MERGER Recorded Feb 16, 2017
From: TILERA CORPORATION
To: EZCHIP SEMICONDUCTOR INC.
Reel/Frame 041735/0792 →
Cited By (2)
US 12,217,147 US 12,265,640