IP Library Granted Patent US 8,006,252
Granted Patent B2
US 8,006,252 · App. 11/982,110 · Granted Aug 23, 2011

Data processing system with intercepting instructions

Assignee: Solarflare Communications, Inc.
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,006,252
App. No.
11/982,110
Granted
Aug 23, 2011
Kind
B2
Abstract

A data processing system with intercepting instructions comprising an operating system for supporting processes, such that the process are associated with one or more resources and the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated. Part of this system is an interface for interfacing between each process and the operating system and a memory for storing state information for at least one process. The interface may be arranged to analyze instructions from the processes to the operating system, and upon detecting an instruction to re-initialize a process cause state information corresponding to that pre-existing state information to be stored in the memory as state information for the re-initialized process and to be associated with the resource.

Claims (33)

1. A data processing system comprising:

an operating system for supporting processes, the operating system being arranged to output data by addressing the data to a descriptor corresponding to an intended destination of the data;

an interface for interfacing between each process and the operating system;

a memory including one or more address spaces, there being an address space corresponding to each of the processes for use by the respective process; and

a data communication stack for one of the processes, the stack being located in the address space corresponding to the respective process and having a descriptor allocated to it;

the interface being arranged to analyze requests to alter the allocation of a descriptor sent by the processes towards the operating system to identify whether such a request relates to altering the allocation of the descriptor allocated to the stack, and if it does, allocate a different descriptor to the stack and subsequently permit the request to be processed by duplicating the descriptor;

wherein a failure to duplicate the descriptor by means of a system call executed to duplicate the descriptor is reported to the said respective process as a failure of the said request.

2. A data processing system according to claim 1 , wherein the said request is a Dup2( ) system call.

3. A data processing system according to claim 1 , wherein the changing of the descriptor allocated to the stack is carried out by means of a Dup2( ) system call.

4. A data processing system according to claim 1 , wherein each process is associated with a corresponding stack.

5. A data processing system according to claim 1 , wherein the descriptor allocated to the stack is flagged by the operating system as being allocated to a stack.

6. A data processing system according to claim 1 , wherein the stack is implemented at user-level.

7. A data processing system according to claim 1 , wherein the interface is a library.

8. A data processing system according to claim 1 , wherein the interface is an application program interface.

9. An interface for a data processing system comprising:

an operating system for supporting processes, the operating system being arranged to output data by addressing the data to a descriptor corresponding to an intended destination of the data and;

a memory including one or more address spaces, there being an address space corresponding to each of the processes for use by the respective process, and

a data communication stack for one of the processes, the stack being located in the address space corresponding to the respective process and having a descriptor allocated to it;

the interface being for interfacing between each process and the operating system and being arranged to analyze requests to alter the allocation of a descriptor sent by the processes towards the operating system to identify whether such a request relates to altering the allocation of the descriptor allocated to the stack, and if it does, allocate a different descriptor to the stack and subsequently permit the request to be processed by duplicating the descriptor;

wherein a failure to duplicate the descriptor by means of a system call executed to duplicate the descriptor is reported to the said respective process as a failure of the said request.

10. A memory storing program data defining an interface as claimed in claim 9 .

11. A method for processing requests sent by processes in a data processing system comprising:

providing:

an operating system for supporting processes, the operating system being arranged to output data by addressing the data to a descriptor corresponding to an intended destination of the data;

an interface for interfacing between each process and the operating system;

a memory including one or more address spaces, there being an address space corresponding to each of the processes for use by the respective process; and

a data communication stack for one of the processes, the stack being located in the address space corresponding to the respective process and having a descriptor allocated to it;

the method comprising the steps of:

analyzing requests to alter the allocation of a descriptor sent by the processes towards the operating system to identify whether such a request relates to altering the allocation of the descriptor allocated to the stack; and if it does,

allocating a different descriptor to the stack and subsequently permitting the request to be processed by duplicating the descriptor;

wherein a failure to duplicate the descriptor by means of a system call executed to duplicate the descriptor is reported to the said respective process as a failure of the said request.

12. A memory storing program data of claim 11 , defining an interface.

13. A method for processing requests sent by processes in a data processing system as described in claimed 11 .

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: SOLARFLARE COMMUNICATIONS, INC.
To: XILINX, INC.
Reel/Frame 051108/0209 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 31, 2019
From: ALLY BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 049918/0440 →
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2017
From: PACIFIC WESTERN BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 042820/0890 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
SECURITY INTEREST Recorded Apr 6, 2016
From: SOLARFLARE COMMUNICATIONS, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038363/0589 →
RELEASE OF SECURITY INTEREST Recorded Nov 24, 2014
From: COMERICA BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 034255/0140 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2014
From: COMERICA BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 033716/0073 →
CHANGE OF ADDRESS Recorded Oct 31, 2012
From: SOLARFLARE COMMUNICATIONS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 029360/0956 →
SECURITY AGREEMENT Recorded Jan 5, 2012
From: SOLARFLARE COMMUNICATIONS, INC., A DELAWARE CORPORATION
To: COMERICA BANK, AS AGENT, A TEXAS BANKING ASSOCIATION
Reel/Frame 027487/0097 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2009
From: LEVEL 5 NETWORKS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 022752/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2009
From: LEVEL 5 NETWORKS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 022568/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2007
From: POPE, STEVEN LESLIE; RIDDOCH, DAVID JAMES; LAW, GREG
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 020121/0156 →
Priority Claims (1)
GB 0505297.2 · Mar 15, 2005 · national
Continuity (1)
Related Publication 20080065839A1 · Mar 13, 2008