Patents by Inventor Patrick H. Dussud

Patrick H. Dussud 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: 8776094
    Abstract: Various embodiments provide an ability to describe, independent of a programming language, one or more interfaces associated with an operating system. Alternately or additionally, a compiler associated with a specific programming language can be configured to map the independent interface description(s) to the specific programming language. In some embodiments, an application can be configured to programmatically determine one or more interfaces of the operating system.
    Type: Grant
    Filed: August 11, 2011
    Date of Patent: July 8, 2014
    Assignee: Microsoft Corporation
    Inventors: Brent E. Rector, Elliot H. Omiya, Jerry J. Dunietz, Martyn S. Lovell, Ales Holecek, Mahesh Prakriya, Stephen C. Rowe, James F. Springfield, Noel R. Cross, Tassaduq H. Basu, Patrick H. Dussud, Raja Krishnaswamy, Steven Edward Lucco
  • Patent number: 8713524
    Abstract: Dynamic memory management configuration enables certain behavior of an application to be controlled without touching or affecting any executable portion of the application.
    Type: Grant
    Filed: April 6, 2005
    Date of Patent: April 29, 2014
    Assignee: Microsoft Corporation
    Inventors: Mahesh Prakriya, Robin M. Maffeo, Patrick H. Dussud
  • Publication number: 20130339928
    Abstract: Platform-agnostic source code can be augmented with one or more portions of source code annotated for different platforms and/or versions. The source code including both the platform-agnostic and platform-specific and/or version-specific portions can be compiled once to create a single executable that can be distributed to and can run on multiple device platforms and/or multiple versions of one or more platforms. Platform-specific or version-specific executables (e.g., assemblies, binaries, etc.) can be embedded into a binary or executable as resources (e.g., data). When the compiled code is executed on a device, the runtime can extract the platform-specific portion corresponding to the device on which the executable is being run, can bind the extracted portion to the executable and can load and execute the executable. Hence the same binary can produce different results or functionalities depending on the capabilities of the platform on which the binary runs.
    Type: Application
    Filed: June 18, 2012
    Publication date: December 19, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Mircea Trofin, Krzysztof Cwalina, Patrick H. Dussud
  • Publication number: 20130042258
    Abstract: Various embodiments provide an ability to describe, independent of a programming language, one or more interfaces associated with an operating system. Alternately or additionally, a compiler associated with a specific programming language can be configured to map the independent interface description(s) to the specific programming language. In some embodiments, an application can be configured to programmatically determine one or more interfaces of the operating system.
    Type: Application
    Filed: August 11, 2011
    Publication date: February 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Brent E. Rector, Elliot H. Omiya, Jerry J. Dunietz, Martyn S. Lovell, Ales Holecek, Mahesh Prakriya, Stephen C. Rowe, James F. Springfield, Noel R. Cross, Tassaduq H. Basu, Patrick H. Dussud, Raja Krishnaswamy, Steven Edward Lucco
  • Patent number: 8316357
    Abstract: The efficient use of type descriptors with frozen objects. A frozen object might actually include several type descriptors, a primary type descriptor that is canonical according to a set of canonicalization rules, and an auxiliary type descriptor that is not identical to the primary type descriptor. The auxiliary type descriptor may be used to access the canonical type descriptor. When performing an operation, if the auxiliary type descriptor can be used to perform the operation, then that auxiliary type descriptor may be used. If the canonical type descriptor is to be used to perform the operation, the auxiliary type descriptor is used to gain access to the canonical primary type descriptor. The primary type descriptor is then used to perform the operation.
    Type: Grant
    Filed: September 3, 2008
    Date of Patent: November 20, 2012
    Assignee: Microsoft Corporation
    Inventors: Scott D. Mosier, Peter F. Sollich, Frank V. Peschel-Gallee, Patrick H. Dussud, Simon J. Hall, Rudi Martin, Michael M. Magruder, Andrew Pardoe, Madhusudhan Talluri
  • Publication number: 20120278813
    Abstract: Efforts to avoid time-outs during execution of an application in a managed execution environment may be implemented by monitoring memory allocation.
    Type: Application
    Filed: July 3, 2012
    Publication date: November 1, 2012
    Applicant: Microsoft Corporation
    Inventors: Maoni Z. Stephens, Patrick H. Dussud
  • Patent number: 8271938
    Abstract: Mechanisms that allow frameworks significant flexibility in varying the library of common base classes in a manner that better suits the domain of applications served by the framework. Instead of providing the base class library, the runtime provides a data contract for the data structure of each base class. The frameworks can then define each base class in a custom way so long as the data contract is honored. Thus, for example, the framework may provide custom framework-specific methods and/or properties as is appropriate for the framework. Another framework might define the base classes in a different way.
    Type: Grant
    Filed: September 3, 2008
    Date of Patent: September 18, 2012
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Scott D. Mosier, Peter F. Sollich, Frank V. Peschel-Gallee, Raja Krishnaswamy, Simon J. Hall, Madhusudhan Talluri, Rudi Martin, Michael M. Magruder, Andrew J. Pardoe
  • Patent number: 8245205
    Abstract: The techniques and mechanisms described herein are directed at sharing objects between applications executing in a virtual runtime environment. The techniques include compiling a cpu-independent file to create executable instructions that are associated with an application that is executable in a virtual runtime environment. A constructor associated with a shareable class defined within the cpu-independent file is executed to create an instance of a shareable object. The shareable object is then persisted in a manner such that other applications executing in the virtual runtime environment may access the shareable object. The technique may be performed during pre-JIT compilation or just-in-time compilation of the cpu-independent file. The execution of the constructor is performed at a restricted security level that prevents access to changeable information when generating static data for the static members of the shareable object.
    Type: Grant
    Filed: November 20, 2009
    Date of Patent: August 14, 2012
    Assignee: Microsoft Corporation
    Inventors: Rico Mariani, Christopher W. Brumme, Patrick H. Dussud, Sean E. Trowbridge
  • Patent number: 8234378
    Abstract: A method and system for managing applications in a managed execution environment is disclosed. Prior to performing a garbage collection the magnitude of the garbage collection or the allocated memory is compared to a threshold value. If the threshold value is exceeded at least a portion of an application currently executing in the environment is redistributed prior to the garbage collection occurring.
    Type: Grant
    Filed: October 20, 2005
    Date of Patent: July 31, 2012
    Assignee: Microsoft Corporation
    Inventors: Maoni Z. Stephens, Patrick H. Dussud
  • Publication number: 20120072890
    Abstract: A type system includes a dual representation for basic data types. One representation is the basic data type representation common to such basic built-in data types, known as an unboxed value type or simply as a value type. Each of the basic data types also has a boxed representation that can be stored in the object hierarchy of the type system. This dual representation can also be extended to user-defined types, so that user-defined types may exist both as an unboxed value type and as an object within the object hierarchy of the type system. This dual representation allows the compiler and/or runtime environment to select the most effective and efficient representation for the data type depending on the particular need at the moment.
    Type: Application
    Filed: October 14, 2011
    Publication date: March 22, 2012
    Applicant: Microsoft Corporation
    Inventors: George H. Bosworth, Patrick H. Dussud, James S. Miller, Daryl B. Olander
  • Patent number: 8131955
    Abstract: The techniques and mechanisms described herein are directed to a system for performing garbage collection on a large heap that is divided into several cards which are grouped into bundles. The techniques include initiating a write-watch mechanism to track accesses to a card table that identifies marked cards. The write-watch mechanism provides a list of the written card table locations to a garbage collection process which determines marked bundles based on the list. For each marked bundle, the marked cards within the marked bundle are scanned to identify the accessed objects. The accessed objects are then collected. Because determining the marked bundles is performed at the start of the garbage collection process and not whenever the memory locations within the bundle are accessed, the present technique reduces the overhead associated with bundle marking and allows the efficiency of the garbage collection process to be less dependent on heap size.
    Type: Grant
    Filed: April 15, 2004
    Date of Patent: March 6, 2012
    Assignee: Microsoft Corporation
    Inventor: Patrick H. Dussud
  • Patent number: 8065668
    Abstract: A type system includes a dual representation for basic data types. One representation is the basic data type representation common to such basic built-in data types, known as an unboxed value type or simply as a value type. Each of the basic data types also has a boxed representation that can be stored in the object hierarchy of the type system. This dual representation can also be extended to user-defined types, so that user-defined types may exist both as an unboxed value type and as an object within the object hierarchy of the type system. This dual representation allows the compiler and/or runtime environment to select the most effective and efficient representation for the data type depending on the particular need at the moment.
    Type: Grant
    Filed: May 17, 2004
    Date of Patent: November 22, 2011
    Assignee: Microsoft Corporation
    Inventors: George H. Bosworth, Patrick H. Dussud, James S. Miller, Daryl B. Olander
  • Patent number: 7987215
    Abstract: Adding references to objects to a mark stack. A limited number of references to objects referenced by an object with a large number of object references are added to the stack. An object is accessed. A determination is made that references in the object should be added to a mark stack using a reference in the mark stack to the object in conjunction with a pointer. The pointer is used to track which references in the object have been placed on the mark stack. A reference to the object on the mark stack is accessed. A pointer is initialized. A reference to another object referenced by the object is pushed onto the mark stack. The pointer is incremented. It is then determined that that more references should be pushed to the mark stack. Acts of pushing references onto the mark stack and incrementing the pointer are repeated.
    Type: Grant
    Filed: April 22, 2008
    Date of Patent: July 26, 2011
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Maoni Z. Stephens
  • Patent number: 7926071
    Abstract: Interfaces are provided to notify of conditions pertaining to memory management. Thus, efforts to avoid time-outs during execution of code in a managed execution environment may be implemented.
    Type: Grant
    Filed: October 20, 2005
    Date of Patent: April 12, 2011
    Assignee: Microsoft Corporation
    Inventors: Maoni Z. Stephens, Patrick H. Dussud
  • Patent number: 7921143
    Abstract: A system and method is provided for efficiently pinning references to the managed heap. The system and method allow for references to managed objects to be declared as pinned during a call to unmanaged code. The references are then reported as pinned to a garbage collector in response to invocation of a garbage collection service. The reference can be declared as pinned by a programmer within the source code or automatically invoked at run-time based on an unsafe condition. The garbage collection service will not move or relocate objects that are referenced by the active pinned local variables. If a garbage collection does not occur, the fact that the local variables are declared pinned is ignored.
    Type: Grant
    Filed: May 12, 2009
    Date of Patent: April 5, 2011
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Patent number: 7882158
    Abstract: A system and method is provided for efficiently pinning references to the managed heap. The system and method allow for references to managed objects to be declared as pinned during a call to unmanaged code. The references are then reported as pinned to a garbage collector in response to invocation of a garbage collection service. The reference can be declared as pinned by a programmer within the source code or automatically invoked at run-time based on an unsafe condition. The garbage collection service will not move or relocate objects that are referenced by the active pinned local variables. If a garbage collection does not occur, the fact that the local variables are declared pinned is ignored.
    Type: Grant
    Filed: May 12, 2009
    Date of Patent: February 1, 2011
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Patent number: 7860906
    Abstract: Per-segment overflow ranges. One method includes acts for handling overflows of a mark stack. A reference to an object is accessed. The object is processed by attempting to place references to other objects referenced in the object onto a mark stack. An overflow condition of the mark stack is detected. A range in a segment is defined which includes the object that caused the overflow condition. The range is assigned on a per segment basis such that the range is defined to only include addresses in a single segment.
    Type: Grant
    Filed: May 28, 2008
    Date of Patent: December 28, 2010
    Assignee: Microsoft Corporation
    Inventors: Maoni Z. Stephens, Patrick H. Dussud
  • Patent number: 7831640
    Abstract: Mark stack overflow list. A method may be practiced in a computing environment including application code that implements garbage collection functionality. The garbage collection functionality includes pushing object references onto a mark stack, such that objects referenced on the mark stack can be marked so as to prevent memory for the objects from being recycled for use with other objects instances. The method includes acts for handling overflows of a mark stack. The method includes accessing a reference to an object. The object is processed by attempting to enumerate references to other objects from the object onto a mark stack. An overflow condition of the mark stack is detected for a referenced other object. A reference to the referenced other object is placed on an overflow list. References from the overflow list are processed.
    Type: Grant
    Filed: April 15, 2008
    Date of Patent: November 9, 2010
    Assignee: Microsoft Corporation
    Inventors: Maoni Z. Stephens, Patrick H. Dussud
  • Patent number: 7822938
    Abstract: The techniques and mechanisms described herein are directed to a method for performing garbage collection based on the total memory consumed by managed objects on a heap. The total memory includes heap memory and unmanaged memory. The garbage collector accepts input that indicates the amount of unmanaged memory and associates this amount with the managed object. The garbage collector then adjusts a collection strategy for the managed object based on the input. The input is sent to the garbage collector if the allocated amount meets a certain criteria in comparison with the size of the managed object on the heap. The amount may be automatically disassociated with the managed object when the managed is destroyed or the garbage collector may receive another input that removes the amount from being associated with the managed object.
    Type: Grant
    Filed: October 20, 2004
    Date of Patent: October 26, 2010
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Christopher S. George, Gang Peng
  • Patent number: 7801872
    Abstract: Publishing an object. Memory for an object may be reserved so as to lock the memory from being access by garbage collection threads or other user threads. While the lock is in place, type and size information can be installed for the object. If the reservation is being made to allow garbage collection threads to operate on the object, then the type may be a specialized type that indicates that the object has no references. Reservations can also be made to allow the intended type information to be installed for the object. An indication can be made that the object is well formed, thus unlocking the object and allowing garbage collection threads, other user threads, or both to access the object. The locking and unlocking may be performed by accessing an API provided by a system garbage collector.
    Type: Grant
    Filed: April 8, 2008
    Date of Patent: September 21, 2010
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Maoni Z. Stephens