Patents by Inventor Frank V. Peschel-Gallee
Frank V. Peschel-Gallee 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: 9038071Abstract: The resources needed by an application to execute are declared by the application. When the application is activated, only the declared resources are made available to the application because only the declared resources are connected to the execution environment. Accessibility to resources may be controlled by the operating system by making the resource visible or invisible to the executing software by mapping a local name used by the executing software to a global resource, possibly limiting the type of access allowed. Because the executing software relies on the mapping function performed by the operating system for access to resources, and the operating system only maps names declared by the software, the operating system can isolate the software, and prevent the application from accessing undeclared global resources.Type: GrantFiled: March 30, 2006Date of Patent: May 19, 2015Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Yousef A. Khalidi, Stephan J. Zachwieja
-
Patent number: 8887142Abstract: Loop control flow diversion supports thread synchronization, garbage collection, and other situations involving suspension of long-running loops. Divertible loops have a loop body, a loop top, an indirection cell containing a loop top address, and a loop jump instruction sequence which references the indirection cell. In normal execution, control flows through the indirection cell to the loop top. After the indirection cell is altered, however, execution flow is diverted to a point away from the loop top. Operations such as garbage collection are performed while the loop (and hence the thread(s) using the loop) is thus diverted. The kernel or another thread then restores the loop top address into the indirection cell, and execution flow again continues through the restored indirection cell to the loop top.Type: GrantFiled: March 10, 2010Date of Patent: November 11, 2014Assignee: Microsoft CorporationInventors: Scott Mosier, Michael McKenzie Magruder, Frank V. Peschel-Gallee
-
Patent number: 8539497Abstract: The operating system organizes software so the set of extensions for an extendable application can be dynamically discovered and the extension can be run securely. Extensions are run as separate applications instead of within the extendable application's process. Extensions are discoverable to an activated extendable application by querying a category catalog. A category provides at least a partial description of a contract between an activating software entity and a software entity that is activated by the activating software entity. The category may enumerate a set of configuration settings associated with the contract that may be used to set up an isolated execution environment for the activated software entity. The category may also specify one or more extension points to be used for communication between the activating and activated software entities. The category may also include a list of software entities that implement the category.Type: GrantFiled: March 30, 2006Date of Patent: September 17, 2013Assignee: Microsoft CorporationInventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
-
Patent number: 8522218Abstract: Routines which are likely to be good candidates for cross-module inlining are automatically identified according to criteria based on service history, compiler inlining criteria, and/or execution performance criteria. Candidates can also be automatically identified by pattern matching codes of routines which satisfy service history, execution performance, and/or compiler criteria. Automatically identified candidate routines are presented in an inlining advisory tool, allowing developers to approve/veto automatically identified candidates, to add other routines, and to either suggest or require that the development tools perform cross-module inlining with particular routines. Changes to a candidate routine can trigger regeneration of native image(s) into which the routine has been compiled.Type: GrantFiled: March 12, 2010Date of Patent: August 27, 2013Assignee: Microsoft CorporationInventors: Surupa Biswas, David Jerome Hiniker, Jan Kotas, Frank V. Peschel-Gallee
-
Patent number: 8352915Abstract: The operating system manages software entities by creating a construct called a context that organizes and manages software-related state and configuration settings of applications. A context may comprise an installation service, a configuration service and an activation service. Contexts can be linked or arranged hierarchically to form parent-child relationships. Hierarchies may be used to affect accessibility of software items, to satisfy dependencies, to control the visibility/invisibility of software items, to provide access to configuration settings and to override software availability, dependencies and configuration settings. An override may be applied to set policy when more than one context has a configuration setting, dependency or access to a software entity.Type: GrantFiled: August 8, 2011Date of Patent: January 8, 2013Assignee: Microsoft CorporationInventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
-
Patent number: 8316357Abstract: 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: GrantFiled: September 3, 2008Date of Patent: November 20, 2012Assignee: Microsoft CorporationInventors: 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
-
Patent number: 8271938Abstract: 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: GrantFiled: September 3, 2008Date of Patent: September 18, 2012Assignee: Microsoft CorporationInventors: 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
-
Publication number: 20120151467Abstract: The database (namespace) for storing component metadata for an application that is to be run in an isolated environment is isolated by an operating system by storing the component metadata in a local set of information associated with the isolated application instead of in a global namespace. The operating system utilizes this local metadata instead of the global database when components are employed. Registration data for components is placed within a manifest, enabling the operating system to determine the relationship between an application and a component or set of components used by the application.Type: ApplicationFiled: February 21, 2012Publication date: June 14, 2012Applicant: MICROSOFT CORPORATIONInventors: Jose M. Bernabeu-Auban, Luis Irun-Briz, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
-
Publication number: 20110289478Abstract: The operating system manages software entities by creating a construct called a context that organizes and manages software-related state and configuration settings of applications. A context may comprise an installation service, a configuration service and an activation service. Contexts can be linked or arranged hierarchically to form parent-child relationships. Hierarchies may be used to affect accessibility of software items, to satisfy dependencies, to control the visibility/invisibility of software items, to provide access to configuration settings and to override software availability, dependencies and configuration settings. An override may be applied to set policy when more than one context has a configuration setting, dependency or access to a software entity.Type: ApplicationFiled: August 8, 2011Publication date: November 24, 2011Applicant: Microsoft CorporationInventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
-
Patent number: 8060871Abstract: Software typically changes over its useful lifetime. New versions of software are created to change or improve functionality, to add functionality, to correct coding errors, improve performance, to adapt to new hardware and for many other well-known reasons. The process of delivering new versions of software to users is called servicing the software. The operating system decides which version(s) of a piece of software satisfy dependencies of other software by creation of a context. The context may be used to organize and manage versions of software, to declare activation policies concerning the use of different versions of software and to service the versioned software. The context may include an activation service that maintains and manages resolution polices, resolves dependencies, constructs the environment in which an application runs and initiates the running of the software.Type: GrantFiled: March 30, 2006Date of Patent: November 15, 2011Assignee: Microsoft CorporationInventors: Jose M. Bernabeu-Auban, Luis Irun-Briz, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachweija
-
Publication number: 20110225564Abstract: Routines which are likely to be good candidates for cross-module inlining are automatically identified according to criteria based on service history, compiler inlining criteria, and/or execution performance criteria. Candidates can also be automatically identified by pattern matching codes of routines which satisfy service history, execution performance, and/or compiler criteria. Automatically identified candidate routines are presented in an inlining advisory tool, allowing developers to approve/veto automatically identified candidates, to add other routines, and to either suggest or require that the development tools perform cross-module inlining with particular routines. Changes to a candidate routine can trigger regeneration of native image(s) into which the routine has been compiled.Type: ApplicationFiled: March 12, 2010Publication date: September 15, 2011Inventors: Surupa Biswas, David Jerome Hiniker, Jan Kotas, Frank V. Peschel-Gallee
-
Publication number: 20110225213Abstract: Loop control flow diversion supports thread synchronization, garbage collection, and other situations involving suspension of long-running loops. Divertible loops have a loop body, a loop top, an indirection cell containing a loop top address, and a loop jump instruction sequence which references the indirection cell. In normal execution, control flows through the indirection cell to the loop top. After the indirection cell is altered, however, execution flow is diverted to a point away from the loop top. Operations such as garbage collection are performed while the loop (and hence the thread(s) using the loop) is thus diverted. The kernel or another thread then restores the loop top address into the indirection cell, and execution flow again continues through the restored indirection cell to the loop top.Type: ApplicationFiled: March 10, 2010Publication date: September 15, 2011Applicant: Microsoft CorporationInventors: Scott Mosier, Michael McKenzie Magruder, Frank V. Peschel-Gallee
-
Patent number: 8001528Abstract: The operating system manages software entities by creating a construct called a context that organizes and manages software-related state and configuration settings of applications. A context may comprise an installation service, a configuration service and an activation service. Contexts can be linked or arranged hierarchically to form parent-child relationships. Hierarchies may be used to affect accessibility of software items, to satisfy dependencies, to control the visibility/invisibility of software items, to provide access to configuration settings and to override software availability, dependencies and configuration settings. An override may be applied to set policy when more than one context has a configuration setting, dependency or access to a software entity.Type: GrantFiled: March 30, 2006Date of Patent: August 16, 2011Assignee: Microsoft CorporationInventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
-
Patent number: 7774405Abstract: A type server on a first machine assigns a sequential small integer identifier of fixed length to lengthy information. Identifying information using a small integer identifier provides efficiencies in communication between processes on a single machine as well as efficiencies in communication between processes on different machines. Storage of this information is also more efficient. The information so identified may be, for example, interface type. The small integer identifier assigned to the interface types may be assigned in a set enumeration scheme, that is the first interface type encountered when generating a list or table of interfaces types may be assigned the integer identifier “1”, the second “2” and so on. Similarly, the small integer identifiers may be assigned whenever a new interface type is encountered during execution. A translation table including interface type name and interface type identifier for may be generated.Type: GrantFiled: May 16, 2005Date of Patent: August 10, 2010Assignee: Microsoft CorporationInventors: Jose M. Bernabeu-Auban, Frank V. Peschel-Gallee
-
Patent number: 7680762Abstract: 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: GrantFiled: December 5, 2005Date of Patent: March 16, 2010Assignee: Microsoft CorporationInventors: Frank V. Peschel-Gallee, Raja Krishnaswamy, Patrick H. Dussud
-
Publication number: 20100058304Abstract: 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: ApplicationFiled: September 3, 2008Publication date: March 4, 2010Applicant: MICROSOFT CORPORATIONInventors: 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: 20100058283Abstract: 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: ApplicationFiled: September 3, 2008Publication date: March 4, 2010Applicant: Microsoft CorporationInventors: 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 Pardoe
-
Patent number: 7434235Abstract: A type server provides the proxy and stub code needed by client and server programs on demand (dynamically), when the code is needed during execution. When an interface for a resource is defined, the proxy code and the stub code for the type of resource is generated and stored within the type server. The client and server programs each keep a local table of type identifiers/resource type translations for each resource referenced. The local table acts like a cache: when a type identifier is not found in the table, the type server is contacted, and the type identifier for that resource type is retrieved and stored in the cache. Another local table acting as a cache stores type ID and associated proxy and stub code for the resource type. When a program needs the proxy code for a resource type, it checks its cache and it the proxy code is not found the type server is contacted, the proxy (and stub) code is retrieved from the type server and is stored in the cache.Type: GrantFiled: May 16, 2005Date of Patent: October 7, 2008Assignee: Microsoft CorporationInventors: Jose M. Bernabeu-Auban, Frank V. Peschel-Gallee
-
Patent number: 7434228Abstract: An operating system architecture is based on a service model in which active entities (services) are containers for objects having a number of interfaces specified through a contract language that is a subset of the language in which the service is coded. Services may reside in the same address space or may reside in separate address spaces, without changing the programming model or compiled binaries. The location of a service is independent of the location of the service's clients and of services the service calls.Type: GrantFiled: May 16, 2005Date of Patent: October 7, 2008Assignee: Microsoft CorporationInventors: Jose M. Bernabeu-Auban, Jeff L. Havens, Yousef A. Khalidi, Frank V. Peschel-Gallee, Madhusudhan Talluri
-
Patent number: 6980997Abstract: 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: GrantFiled: June 28, 2001Date of Patent: December 27, 2005Assignee: Microsoft CorporationInventors: Frank V. Peschel-Gallee, Raja Krishnaswamy, Patrick H. Dussud