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).
-
Patent number: 11003511Abstract: The present invention extends to methods, systems, and computer program products for controlling runtime access to application programming interfaces Embodiments of the invention allow library developers to more precisely and easily control which of their libraries' APIs can be called dynamically. Thus, their servicing and versioning burden can be more appropriately controlled. Further, application developers can control which such APIs to further exclude from dynamic calling scenarios, to minimize the runtime support overhead (e.g., preventing generation of metadata).Type: GrantFiled: September 19, 2017Date of Patent: May 11, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Mircea Trofin, Patrick Dussud, Rudi Martin, John Lawrence Hamby, Michal Strehovsky, David Charles Wrighton, Atsushi Kanamori, Fadi M. Hanna
-
Patent number: 10754770Abstract: A process may utilize multiple garbage collector threads, each having the capability to steal partially-marked object references from an accessible mark stack having additional work that has yet to be processed. A partially-marked object reference may be represented as a pair of entries on a mark stack. A garbage collector thread may utilize an atomic operation to access the pair of entries in a prescribed manner to steal an unprocessed partially-marked object reference. In this manner, the workload of an overloaded garbage collector thread is offloaded to another garbage collector thread that may be idle thereby balancing the workload more evenly among multiple garbage collector threads.Type: GrantFiled: October 10, 2011Date of Patent: August 25, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Maoni Stephens, Patrick Dussud
-
Publication number: 20190095256Abstract: The present invention extends to methods, systems, and computer program products for controlling runtime access to application programming interfaces Embodiments of the invention allow library developers to more precisely and easily control which of their libraries' APIs can be called dynamically. Thus, their servicing and versioning burden can be more appropriately controlled. Further, application developers can control which such APIs to further exclude from dynamic calling scenarios, to minimize the runtime support overhead (e.g., preventing generation of metadata).Type: ApplicationFiled: September 19, 2017Publication date: March 28, 2019Inventors: Mircea Trofin, Patrick Dussud, Rudi Martin, John Lawrence Hamby, Michal Strehovsky, David Charles Wrighton, Atsushi Kanamori, Fadi M. Hanna
-
Patent number: 9785483Abstract: The present invention extends to methods, systems, and computer program products for controlling runtime access to application programming interfaces Embodiments of the invention allow library developers to more precisely and easily control which of their libraries' APIs can be called dynamically. Thus, their servicing and versioning burden can be more appropriately controlled. Further, application developers can control which such APIs to further exclude from dynamic calling scenarios, to minimize the runtime support overhead (e.g., preventing generation of metadata).Type: GrantFiled: March 3, 2015Date of Patent: October 10, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Mircea Trofin, Patrick Dussud, Rudi Martin, John Lawrence Hamby, Michal Strehovsky, David Charles Wrighton, Atsushi Kanamori, Fadi M. Hanna
-
Publication number: 20150169387Abstract: The present invention extends to methods, systems, and computer program products for controlling runtime access to application programming interfaces Embodiments of the invention allow library developers to more precisely and easily control which of their libraries' APIs can be called dynamically. Thus, their servicing and versioning burden can be more appropriately controlled. Further, application developers can control which such APIs to further exclude from dynamic calling scenarios, to minimize the runtime support overhead (e.g., preventing generation of metadata).Type: ApplicationFiled: March 3, 2015Publication date: June 18, 2015Inventors: Mircea Trofin, Patrick Dussud, Rudi Martin, John Lawrence Hamby, Michal Strehovsky, David Charles Wrighton, Atsushi Kanamori, Fadi M. Hanna
-
Patent number: 8990839Abstract: The present invention extends to methods, systems, and computer program products for controlling runtime access to application programming interfaces Embodiments of the invention allow library developers to more precisely and easily control which of their libraries' APIs can be called dynamically. Thus, their servicing and versioning burden can be more appropriately controlled. Further, application developers can control which such APIs to further exclude from dynamic calling scenarios, to minimize the runtime support overhead (e.g., preventing generation of metadata).Type: GrantFiled: April 22, 2013Date of Patent: March 24, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Mircea Trofin, Patrick Dussud, Rudi Martin, John Lawrence Hamby, Michal Strehovsky, David Charles Wrighton, Atsushi Kanamori, Fadi M. Hanna
-
Publication number: 20140317641Abstract: The present invention extends to methods, systems, and computer program products for controlling runtime access to application programming interfaces Embodiments of the invention allow library developers to more precisely and easily control which of their libraries' APIs can be called dynamically. Thus, their servicing and versioning burden can be more appropriately controlled. Further, application developers can control which such APIs to further exclude from dynamic calling scenarios, to minimize the runtime support overhead (e.g., preventing generation of metadata).Type: ApplicationFiled: April 22, 2013Publication date: October 23, 2014Applicant: Microsoft CorporationInventors: Mircea Trofin, Patrick Dussud, Rudi Martin, John Lawrence Hamby, Michal Strehovsky, David Charles Wrighton, Atsushi Kanamori, Fadi M. Hanna
-
Publication number: 20130159122Abstract: Delivering applications to devices. A method includes receiving, at an AppStore, developer provided application code. The method further includes determining anticipated usage of an application based on the application code at end user devices. The method further includes using the determined anticipated usage, optimizing the developer provided application code at the AppStore to optimize for the anticipated usage.Type: ApplicationFiled: December 15, 2011Publication date: June 20, 2013Applicant: MICROSOFT CORPORATIONInventors: Surupa Biswas, Patrick Dussud, Andrew J. Pardoe, Subramanian Ramaswamy
-
Publication number: 20130091186Abstract: A process may utilize multiple garbage collector threads, each having the capability to steal partially-marked object references from an accessible mark stack having additional work that has yet to be processed. A partially-marked object reference may be represented as a pair of entries on a mark stack. A garbage collector thread may utilize an atomic operation to access the pair of entries in a prescribed manner to steal an unprocessed partially-marked object reference. In this manner, the workload of an overloaded garbage collector thread is offloaded to another garbage collector thread that may be idle thereby balancing the workload more evenly among multiple garbage collector threads.Type: ApplicationFiled: October 10, 2011Publication date: April 11, 2013Applicant: Microsoft CorporationInventors: MAONI STEPHENS, Patrick Dussud
-
Publication number: 20080281885Abstract: An automated memory management or garbage collection routine uses a first garbage collection routine to perform garbage collection on new objects, and a second garbage collection routine to perform garbage collection on old objects. The two garbage collection routines are operated concurrently, with each routine separately marking objects to be reclaimed. The second routine may operate in a background mode by traversing a tree of objects from a copy of memory, while the first routine may operate on actual memory.Type: ApplicationFiled: May 8, 2007Publication date: November 13, 2008Applicant: Microsoft CorporationInventor: Patrick Dussud
-
Publication number: 20070094651Abstract: Efforts to avoid time-outs during execution of an application in a managed execution environment may be implemented by monitoring memory allocation.Type: ApplicationFiled: October 20, 2005Publication date: April 26, 2007Applicant: Microsoft CorporationInventors: Maoni Stephens, Patrick Dussud
-
Publication number: 20070094671Abstract: 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: ApplicationFiled: October 20, 2005Publication date: April 26, 2007Applicant: Microsoft CorporationInventors: Maoni Stephens, Patrick Dussud
-
Publication number: 20060230387Abstract: Dynamic memory management configuration enables certain behavior of an application to be controlled without touching or affecting any executable portion of the application.Type: ApplicationFiled: April 6, 2005Publication date: October 12, 2006Applicant: Microsoft CorporationInventors: Mahesh Prakriya, Robin Maffeo, Patrick Dussud
-
Publication number: 20060156152Abstract: A finalizer may include a notification that no tolerance for failure or corruption is expected. Any potential failure point, which may be induced by a runtime execution environment routine or subroutine that is associated with the finalizer may then be prepared apart from the finalizer.Type: ApplicationFiled: December 10, 2004Publication date: July 13, 2006Applicant: Microsoft CorporationInventors: Sean Trowbridge, Brian Grunkemeyer, Christopher Brumme, Mahesh Prakriya, Patrick Dussud, Ian Carmichael
-
Publication number: 20060101446Abstract: 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: ApplicationFiled: October 18, 2004Publication date: May 11, 2006Applicant: Microsoft CorporationInventors: Rico Mariani, Christopher Brumme, Patrick Dussud, Sean Trowbridge
-
Publication number: 20060101401Abstract: Deterministic code execution may be recovered for programs or portions thereof by implementing a programmable policy on a system host to escalate the scope of a code discard based on various parameters.Type: ApplicationFiled: October 14, 2004Publication date: May 11, 2006Applicant: Microsoft CorporationInventors: Christopher Brumme, WeiWen Liu, Mahesh Prakriya, Sean Trowbridge, Ian Carmichael, Patrick Dussud, Brian Grunkemeyer
-
Publication number: 20060085494Abstract: 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: ApplicationFiled: October 20, 2004Publication date: April 20, 2006Applicant: Microsoft CorporationInventors: Patrick Dussud, Christopher George, Gang Peng
-
Publication number: 20060085460Abstract: A system and method is provided to facilitate communications between object systems. A caller is provided having optimized in-lined functionality when initiating a remote function call between managed and unmanaged object systems, for example. The in-lined functionality includes utilizing direct calls and returns within a calling function. In this manner, pushing additional arguments onto an execution stack because of an external stub reference is mitigated. In addition, one or more code loops can be analyzed to enable stack markers to be “hoisted” and thus pushed a single time instead of each time the calling function executes. Other aspects of the optimized caller provide garbage collection and thread management, security attribute checking on outgoing calls, calling convention considerations, wherein arguments and return values are organized according to the convention utilized by the remote object system, and in-lined marshalling to provide enhanced performance over external stub code references.Type: ApplicationFiled: December 5, 2005Publication date: April 20, 2006Applicant: Microsoft CorporationInventors: Frank Peschel-Gallee, Raja Krishnaswamy, Patrick Dussud
-
Publication number: 20060020766Abstract: 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: ApplicationFiled: September 23, 2005Publication date: January 26, 2006Applicant: Microsoft CorporationInventor: Patrick Dussud
-
Publication number: 20050235120Abstract: 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: ApplicationFiled: April 15, 2004Publication date: October 20, 2005Inventor: Patrick Dussud