Patents by Inventor Patrick Dussud

Patrick 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).

  • Publication number: 20060085494
    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: Application
    Filed: October 20, 2004
    Publication date: April 20, 2006
    Applicant: Microsoft Corporation
    Inventors: Patrick Dussud, Christopher George, Gang Peng
  • Publication number: 20060020766
    Abstract: Systems and methods providing a multiprocessor scalable write barrier to a main memory card table are described. The main memory is divided into multiple cards bit-mapped by the card table. In one aspect, an application store operation (reference) associated with one of the cards is detected. Responsive to detecting the reference, card table bit(s) that are mapped to the card are evaluated. Responsive to determining that the bit(s) have already been marked as dirty, the card table bit(s) are not again marked. This technique effectively reduces the probability of more than a single overlapping write operation to a card table cache line by two or more processors in the system.
    Type: Application
    Filed: September 23, 2005
    Publication date: January 26, 2006
    Applicant: Microsoft Corporation
    Inventor: Patrick Dussud
  • Publication number: 20050235120
    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: Application
    Filed: April 15, 2004
    Publication date: October 20, 2005
    Inventor: Patrick Dussud
  • Publication number: 20050177826
    Abstract: A versioning policy included in a target component indicates how the target component is to be accessed, for example, either as a library component or a platform component. A component may be designated as a library component when it is not versioned in a binary compatible manner. When other components request such a component they receive specifically the version of the component they requested. On the other hand, a component may be designated as a platform component when it is versioned in a binary compatible manner. When other components request such a component they may receive the latest upgraded version of the component requested instead. Thus, access to an appropriate version of the component (even a version differing from the requested version) is facilitated. Other embodiments include mechanisms for stratifying component scope based on different processing levels.
    Type: Application
    Filed: February 5, 2004
    Publication date: August 11, 2005
    Inventors: James Miller, Clemens Szyperski, Antony Williams, John Rivard, Srivatsan Parthasarathy, C. Hodges, Patrick Dussud, William Evans, Jonathan Hawkins
  • Publication number: 20050034109
    Abstract: A system and method of providing edit and continue support in a software program debugging environment. “Edit and continue” support allows a user (e.g., programmer and/or developer) to update the code and/or data structure(s) of an executing program while it is running. After the user has finished editing their code and resumes execution, an integrated development environment (IDE) propagates the edit(s) into a common language runtime (CLR) environment before continuing. Therefore, from the CLR environment's perspective, an edit is a block of intermediate language code (IL) and/or metadata that is inserted into a running process. The IDE can facilitate: determining “legality” of an edit; building the edit; sending the edit to the CLR environment; and/or, facilitating the CLR environment switch execution to the edited code.
    Type: Application
    Filed: July 21, 2004
    Publication date: February 10, 2005
    Applicant: Microsoft Corporation
    Inventors: Jennifer Hamilton, Michael Magruder, James Hogg, William Evans, Vance Morrison, Lawrence Sullivan, Sean Trowbridge, Jason Zander, Ian Carmichael, Patrick Dussud, John Hamby, John Rivard, Li Zhang, Mario Chenier, Douglas Rosen, Steven Steiner, Peter Hallam, Brian Crawford, James Miller, Sam Spencer, Habib Heydarian
  • Publication number: 20050033781
    Abstract: A garbage collection system and method in a multiprocessor environment having a shared memory wherein two or more processing units participate in the reclamation of garbage memory objects. The shared memory is divided into regions or heaps and all heaps are dedicated to one of the participating processing units. The processing units generally perform garbage collection operations, i.e., a thread on the heap or heaps that are dedicated to that the processing unit. However, the processing units are also allowed to access and modify other memory objects, in other heaps when those objects are referenced by and therefore may be traced back to memory objects within the processing units dedicated heap. The processors are synchronized at rendezvous points to prevent reclamation of used memory objects.
    Type: Application
    Filed: September 16, 2004
    Publication date: February 10, 2005
    Applicant: Microsoft Corporation
    Inventor: Patrick Dussud
  • Patent number: 6065020
    Abstract: Storage space within a heap may be subject to different types of garbage collection. A first type of garbage collection may be employed when there is a large amount of garbage in the heap, and the second type of garbage collection may be employed when there is a small amount of garbage in the heap. The computer system on which the heap is maintained may include intelligence for automatically deciding which of the garbage collection techniques to employ. The computer system may also automatically control when garbage collection is triggered by setting trigger points according to the amount of garbage collected in the most recent garbage collection. The trigger point may be decreased when there is a high amount of garbage collected, and the trigger point may be increased when there is a low amount of garbage collected.
    Type: Grant
    Filed: May 27, 1998
    Date of Patent: May 16, 2000
    Assignee: Microsoft Corporation
    Inventor: Patrick Dussud
  • Patent number: 5920720
    Abstract: Method and apparatus for implementing a virtual machine interpreter such as an interpreter for interpreting Java compiled bytecodes. The Java language supports class structures and a hierarchy of such structures. As the Java software virtual machine loads the class file containing the Java bytecodes it allocates a first block, of memory based on the class definition for all dynamic methods implemented by a class hierarchy that includes a base class and any additional classes derived from the base class. The virtual machine instantiates instances of classes within a class hierarchy derived from the base class in other memory blocks by initializing a method table pointer at a base location in that other memory block for each such instance in the class hierarchy. The method table pointer is initialized to point to the first block of memory defining the dynamic methods for the class hierarchy.
    Type: Grant
    Filed: February 25, 1997
    Date of Patent: July 6, 1999
    Assignee: Microsoft Corporation
    Inventors: Michael J. Toutonghi, Peter Kukol, Patrick Dussud
  • Patent number: 5842016
    Abstract: The present invention synchronizes threads in a garbage-collected system. In accordance with the invention, each thread may enable or disable garbage collection. A synchronization facility receives a request to initiate garbage collection. In response to the request, the facility identifies threads that have enabled garbage collection more recently than they have disabled garbage collection. Then, until all of the threads are identified or suspended, the facility identifies threads that enable garbage collection and suspends threads that disable garbage collection. When all threads are identified or suspended, the facility performs garbage collection. The facility also suspends any identified threads that attempt to disable garbage collection during the performance of garbage collection.
    Type: Grant
    Filed: May 29, 1997
    Date of Patent: November 24, 1998
    Assignee: Microsoft Corporation
    Inventors: Michael Toutonghi, Peter Kukol, Frank Peschel-Gallee, Patrick Dussud