Patents by Inventor Eric L. Eilebrecht

Eric L. Eilebrecht has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8903747
    Abstract: A software optimization system isolates an effect of a change in a control variable from effects of ongoing, unknown changes in other variables. The system discards effects due to noise so that effects of interest to a programmer are more easily visible. The software optimization system treats variations in one or more control variables and in the output of the system as signals. The system varies the control variable at a specific frequency unlikely to correlate with uncontrolled variations in external variables. The system uses digital signal processing (DSP) techniques to filter the output, isolating the frequency of the control variable variation. The system then compares the resulting filtered output to the input to determine the approximate effect of the variation in the control variable.
    Type: Grant
    Filed: June 18, 2009
    Date of Patent: December 2, 2014
    Assignee: Microsoft Corporation
    Inventors: Eric L. Eilebrecht, Vance P. Morrison, Erika Fuentes
  • Patent number: 8769229
    Abstract: The present invention extends to methods, systems, and computer program products for memory pinning through buffer encapsulation. Within a managed execution environment, a wrapper object encapsulates a memory buffer that is to be shared with a native routine executing in a native execution environment. The wrapper object manages operation of a memory manager on a memory heap corresponding to the memory buffer. The wrapper object includes a first function which sets a pin on the memory buffer and returns a pointer identifying the memory buffer. Setting the pin causes the memory manager to cease moving the memory buffer within the memory heap. The wrapper object also includes a second function which releases the pin on the memory buffer.
    Type: Grant
    Filed: December 6, 2011
    Date of Patent: July 1, 2014
    Assignee: Microsoft Corporation
    Inventors: Gregory Paperin, Eric L. Eilebrecht, Ladislav Prosek
  • Patent number: 8756604
    Abstract: The present invention extends to methods, systems, and computer program products for handling synchronous operations by means of asynchronous operations. Upon completion of an asynchronous operation, a state flag is accessed. The state flag indicates whether or not a sync-over-async wrapper/adapter requested execution of the asynchronous operation. The sync-over-async wrapper/adapter is currently blocked awaiting notice of completion of the asynchronous operation. Based on the state flag, results of the asynchronous operation are stored at a location accessible by the sync-over-async wrapper. A completion signal is sent to the sync-over-async wrapper.
    Type: Grant
    Filed: December 13, 2011
    Date of Patent: June 17, 2014
    Assignee: Microsoft Corporation
    Inventors: Gregory Paperin, Eric L. Eilebrecht
  • Patent number: 8751872
    Abstract: A system and method for handling exceptions in a multi-threaded computing environment. Information, such as that relating to an error state or pertaining to the propagation history of an exception, is stored in a separate object from the exception object itself. The separate propagation information object is accessible to the plurality of threads that are used to execute a user task. The separate object allows rich diagnostic information pertaining to the exception and its propagation through multiple threads to be presented to the developer of the software.
    Type: Grant
    Filed: May 27, 2011
    Date of Patent: June 10, 2014
    Assignee: Microsoft Corporation
    Inventors: Kumar Gaurav Khanna, Eric L. Eilebrecht, Melitta L. G. Andersen, Diana Milirud, Stephen H. Toub
  • Patent number: 8543743
    Abstract: A first in, first out queue uses a sequence of arrays to store elements in the queue. The arrays are constructed using a lock free queue, and within each array, a lock free mechanism may be used to enqueue and dequeue elements. Many embodiments may use atomic operations to ensure successful placement of elements in the queue, as well as remove elements from the queue. The atomic operations may be used within a loop until successful.
    Type: Grant
    Filed: January 27, 2009
    Date of Patent: September 24, 2013
    Assignee: Microsoft Corporation
    Inventor: Eric L. Eilebrecht
  • Patent number: 8510604
    Abstract: Static data race analysis of at least a portion of a multi-threaded application in order to identify potential data race defects in the multi-threaded application. The static data race analysis includes intra-component static analysis as well as inter-component static analysis. The intra-component static analysis for a given component involves identifying a set of memory accesses operations in the component. For each of at least one of the set of memory access operations, the analysis determines whether there is a data race protection element associated with the memory access command.
    Type: Grant
    Filed: March 2, 2011
    Date of Patent: August 13, 2013
    Assignee: Microsoft Corporation
    Inventor: Eric L. Eilebrecht
  • Patent number: 8490115
    Abstract: A method of providing asynchronous programming support at run time for scope-based ambient state at a method call is disclosed. In response to the method call, an asynchronous method stack frame is created along with ambient state for the asynchronous method call. In one example of the method, a current frame of a method stack is captured. A new frame is instantiated by setting a previous reference of the new frame to the current frame and moving data from the previous frame into the current frame. One example of instantiating the new frame includes pushing the current frame onto the stack. In another example, the new frame is lazily created when changes have been made. A state machine used to transform the synchronously-created method into an asynchronous method is moved from a current state to a next state. The captured frame is restored.
    Type: Grant
    Filed: October 20, 2011
    Date of Patent: July 16, 2013
    Assignee: Microsoft Corporation
    Inventors: Mads Torgersen, Stephen H. Toub, Eric L. Eilebrecht
  • Publication number: 20130152104
    Abstract: The present invention extends to methods, systems, and computer program products for handling synchronous operations by means of asynchronous operations. Upon completion of an asynchronous operation, a state flag is accessed. The state flag indicates whether or not a sync-over-async wrapper/adapter requested execution of the asynchronous operation. The sync-over-async wrapper/adapter is currently blocked awaiting notice of completion of the asynchronous operation. Based on the state flag, results of the asynchronous operation are stored at a location accessible by the sync-over-async wrapper. A completion signal is sent to the sync-over-async wrapper.
    Type: Application
    Filed: December 13, 2011
    Publication date: June 13, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Gregory Paperin, Eric L. Eilebrecht
  • Publication number: 20130145113
    Abstract: The present invention extends to methods, systems, and computer program products for memory pinning through buffer encapsulation. Within a managed execution environment, a wrapper object encapsulates a memory buffer that is to be shared with a native routine executing in a native execution environment. The wrapper object manages operation of a memory manager on a memory heap corresponding to the memory buffer. The wrapper object includes a first function which sets a pin on the memory buffer and returns a pointer identifying the memory buffer. Setting the pin causes the memory manager to cease moving the memory buffer within the memory heap. The wrapper object also includes a second function which releases the pin on the memory buffer.
    Type: Application
    Filed: December 6, 2011
    Publication date: June 6, 2013
    Applicant: Microsoft Corporation
    Inventors: Gregory Paperin, Eric L. Eilebrecht, Ladislav Prosek
  • Publication number: 20130104148
    Abstract: A method of providing asynchronous programming support at run time for scope-based ambient state at a method call is disclosed. In response to the method call, an asynchronous method stack frame is created along with ambient state for the asynchronous method call. In one example of the method, a current frame of a method stack is captured. A new frame is instantiated by setting a previous reference of the new frame to the current frame and moving data from the previous frame into the current frame. One example of instantiating the new frame includes pushing the current frame onto the stack. In another example, the new frame is lazily created when changes have been made. A state machine used to transform the synchronously-created method into an asynchronous method is moved from a current state to a next state. The captured frame is restored.
    Type: Application
    Filed: October 20, 2011
    Publication date: April 25, 2013
    Applicant: Microsoft Corporation
    Inventors: Mads Torgersen, Stephen H. Toub, Eric L. Eilebrecht
  • Patent number: 8392627
    Abstract: Aspects of the subject matter described herein relate to semaphores. In aspects, a feedback mechanism is described that uses a semaphore to attempt to maximize throughput of a computer system. Throughput is tracked over periods of time. At or after the end of a period of time, the throughput of the period of time together with other data is used to determine whether a max count for a semaphore is to be changed and by how much. This monitoring of throughput and modifying of the max count may continue over subsequent periods of time to attempt to maximize throughput.
    Type: Grant
    Filed: April 25, 2011
    Date of Patent: March 5, 2013
    Assignee: Microsoft Corporation
    Inventor: Eric L. Eilebrecht
  • Publication number: 20120304026
    Abstract: A system and method for handling exceptions in a multi-threaded computing environment. Information, such as that relating to an error state or pertaining to the propagation history of an exception, is stored in a separate object from the exception object itself. The separate propagation information object is accessible to the plurality of threads that are used to execute a user task. The separate object allows rich diagnostic information pertaining to the exception and its propagation through multiple threads to be presented to the developer of the software.
    Type: Application
    Filed: May 27, 2011
    Publication date: November 29, 2012
    Applicant: Microsoft Corporation
    Inventors: KUMAR GAURAV KHANNA, Eric L. Eilebrecht, Melitta L.G. Andersen, Diana Milirud, Stephen H. Toub
  • Publication number: 20120271972
    Abstract: Aspects of the subject matter described herein relate to semaphores. In aspects, a feedback mechanism is described that uses a semaphore to attempt to maximize throughput of a computer system. Throughput is tracked over periods of time. At or after the end of a period of time, the throughput of the period of time together with other data is used to determine whether a max count for a semaphore is to be changed and by how much. This monitoring of throughput and modifying of the max count may continue over subsequent periods of time to attempt to maximize throughput.
    Type: Application
    Filed: April 25, 2011
    Publication date: October 25, 2012
    Applicant: Microsoft Corporation
    Inventor: Eric L. Eilebrecht
  • Publication number: 20120226944
    Abstract: Static data race analysis of at least a portion of a multi-threaded application in order to identify potential data race defects in the multi-threaded application. The static data race analysis includes intra-component static analysis as well as inter-component static analysis. The intra-component static analysis for a given component involves identifying a set of memory accesses operations in the component. For each of at least one of the set of memory access operations, the analysis determines whether there is a data race protection element associated with the memory access command.
    Type: Application
    Filed: March 2, 2011
    Publication date: September 6, 2012
    Applicant: MICROSOFT CORPORATION
    Inventor: Eric L. Eilebrecht
  • Publication number: 20100325070
    Abstract: A software optimization system isolates an effect of a change in a control variable from effects of ongoing, unknown changes in other variables. The system discards effects due to noise so that effects of interest to a programmer are more easily visible. The software optimization system treats variations in one or more control variables and in the output of the system as signals. The system varies the control variable at a specific frequency unlikely to correlate with uncontrolled variations in external variables. The system uses digital signal processing (DSP) techniques to filter the output, isolating the frequency of the control variable variation. The system then compares the resulting filtered output to the input to determine the approximate effect of the variation in the control variable.
    Type: Application
    Filed: June 18, 2009
    Publication date: December 23, 2010
    Applicant: Microsoft Corporation
    Inventors: Eric L. Eilebrecht, Vance P. Morrison, Erika Fuentes
  • Publication number: 20100192161
    Abstract: A first in, first out queue uses a sequence of arrays to store elements in the queue. The arrays are constructed using a lock free queue, and within each array, a lock free mechanism may be used to enqueue and dequeue elements. Many embodiments may use atomic operations to ensure successful placement of elements in the queue, as well as remove elements from the queue. The atomic operations may be used within a loop until successful.
    Type: Application
    Filed: January 27, 2009
    Publication date: July 29, 2010
    Applicant: Microsoft Corporation
    Inventor: Eric L. Eilebrecht
  • Patent number: 7539981
    Abstract: In an implementation of an XML-based preprocessor, a programmed source file is parsed to generate a syntactic representation of the programmed source file. An XML (Extensible Markup Language) document is generated from the syntactic representation of the programmed source file, and a transform is applied to the XML document to generate a modified XML document from which an output file is generated in a format of the programmed source file.
    Type: Grant
    Filed: January 30, 2004
    Date of Patent: May 26, 2009
    Assignee: Microsoft Corporation
    Inventor: Eric L. Eilebrecht
  • Patent number: 7406503
    Abstract: User IDs in addresses to which an e-mail is addressed are logically ordered into a 2D matrix of rows each having one user ID. For each column in the 2D matrix, a column count is found by counting the highest number of matching characters in the column. A column quotient is calculated for each column by dividing the column count by the total number of rows in the 2D matrix. A weighted column quotient is calculated for each column by multiplying the column quotient by a weight that is based on the left-to-right order of the column in the 2D matrix. A numerical assessment is made of the similarity of the user IDs in the addresses to which the e-mail is addressed by adding up the weighted column quotients for the columns in the 2D matrix.
    Type: Grant
    Filed: August 28, 2003
    Date of Patent: July 29, 2008
    Assignee: Microsoft Corporation
    Inventors: Charles Reeves Little, II, Eric L. Eilebrecht
  • Patent number: 7359986
    Abstract: Methods and computer program products are disclosed for providing QoS for Web applications via an internet service application programming interface “ISAPI”) filter running on an internet information server, wherein the ISAPI filter uses a traffic control application programming interface to manage bandwidth for individual HTTP requests. Responses to HTTP requests can be prioritized based on policies defined by the Web application developer, wherein policy decisions may be made based on many different parameters, such as, for example, the IP address of the Web browser making the request, the type of browser being used, HTTP “cookies,” the uniform resource locator being requested, an authenticated user ID, or any other information that is exposed from the internet information server through server variables. The present invention accomplishes this with no modifications to the internet information server, and •with very minimal changes to the Web application.
    Type: Grant
    Filed: January 26, 2007
    Date of Patent: April 15, 2008
    Assignee: Microsoft Corporation
    Inventors: Shreedhar Madhavapeddi, Rajesh Sundaram, Eric L. Eilebrecht
  • Patent number: 7188188
    Abstract: Methods and computer program products are disclosed for providing Qos for Web applications via an internet service application programming interface (“ISAPI”) filter running on an internet information server, wherein the ISAPI filter uses a traffic control application programming interface to manage bandwidth for individual HTTP requests. Responses to HTTP requests can be prioritized based on policies defined by the Web application developer, wherein policy decisions may be made based on many different parameters, such as, for example, the IP address of the Web browser making the request, the type of browser being used, HTTP “cookies,” the uniform resource locator being requested, an authenticated user ID, or any other information that is exposed from the internet information server through server variables. The present invention accomplishes this with no modifications to the internet information server, and with very minimal changes to the Web application.
    Type: Grant
    Filed: May 12, 2000
    Date of Patent: March 6, 2007
    Assignee: WebTV Networks, Inc.
    Inventors: Shreedhar Madhavapeddi, Rajesh Sundram, Eric L. Eilebrecht