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: 9038071
    Abstract: 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: Grant
    Filed: March 30, 2006
    Date of Patent: May 19, 2015
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Yousef A. Khalidi, Stephan J. Zachwieja
  • Patent number: 8887142
    Abstract: 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: Grant
    Filed: March 10, 2010
    Date of Patent: November 11, 2014
    Assignee: Microsoft Corporation
    Inventors: Scott Mosier, Michael McKenzie Magruder, Frank V. Peschel-Gallee
  • Patent number: 8539497
    Abstract: 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: Grant
    Filed: March 30, 2006
    Date of Patent: September 17, 2013
    Assignee: Microsoft Corporation
    Inventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
  • Patent number: 8522218
    Abstract: 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: Grant
    Filed: March 12, 2010
    Date of Patent: August 27, 2013
    Assignee: Microsoft Corporation
    Inventors: Surupa Biswas, David Jerome Hiniker, Jan Kotas, Frank V. Peschel-Gallee
  • Patent number: 8352915
    Abstract: 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: Grant
    Filed: August 8, 2011
    Date of Patent: January 8, 2013
    Assignee: Microsoft Corporation
    Inventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
  • 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
  • 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
  • Publication number: 20120151467
    Abstract: 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: Application
    Filed: February 21, 2012
    Publication date: June 14, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Jose M. Bernabeu-Auban, Luis Irun-Briz, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
  • Publication number: 20110289478
    Abstract: 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: Application
    Filed: August 8, 2011
    Publication date: November 24, 2011
    Applicant: Microsoft Corporation
    Inventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
  • Patent number: 8060871
    Abstract: 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: Grant
    Filed: March 30, 2006
    Date of Patent: November 15, 2011
    Assignee: Microsoft Corporation
    Inventors: Jose M. Bernabeu-Auban, Luis Irun-Briz, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachweija
  • Publication number: 20110225564
    Abstract: 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: Application
    Filed: March 12, 2010
    Publication date: September 15, 2011
    Inventors: Surupa Biswas, David Jerome Hiniker, Jan Kotas, Frank V. Peschel-Gallee
  • Publication number: 20110225213
    Abstract: 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: Application
    Filed: March 10, 2010
    Publication date: September 15, 2011
    Applicant: Microsoft Corporation
    Inventors: Scott Mosier, Michael McKenzie Magruder, Frank V. Peschel-Gallee
  • Patent number: 8001528
    Abstract: 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: Grant
    Filed: March 30, 2006
    Date of Patent: August 16, 2011
    Assignee: Microsoft Corporation
    Inventors: Jose M. Bernabeu-Auban, Stephen E. Dossick, Frank V. Peschel-Gallee, Stephan J. Zachwieja
  • Patent number: 7774405
    Abstract: 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: Grant
    Filed: May 16, 2005
    Date of Patent: August 10, 2010
    Assignee: Microsoft Corporation
    Inventors: Jose M. Bernabeu-Auban, Frank V. Peschel-Gallee
  • Patent number: 7680762
    Abstract: 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: Grant
    Filed: December 5, 2005
    Date of Patent: March 16, 2010
    Assignee: Microsoft Corporation
    Inventors: Frank V. Peschel-Gallee, Raja Krishnaswamy, Patrick H. Dussud
  • Publication number: 20100058304
    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: Application
    Filed: September 3, 2008
    Publication date: March 4, 2010
    Applicant: 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: 20100058283
    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: Application
    Filed: September 3, 2008
    Publication date: March 4, 2010
    Applicant: 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 Pardoe
  • Patent number: 7434235
    Abstract: 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: Grant
    Filed: May 16, 2005
    Date of Patent: October 7, 2008
    Assignee: Microsoft Corporation
    Inventors: Jose M. Bernabeu-Auban, Frank V. Peschel-Gallee
  • Patent number: 7434228
    Abstract: 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: Grant
    Filed: May 16, 2005
    Date of Patent: October 7, 2008
    Assignee: Microsoft Corporation
    Inventors: Jose M. Bernabeu-Auban, Jeff L. Havens, Yousef A. Khalidi, Frank V. Peschel-Gallee, Madhusudhan Talluri
  • Patent number: 6980997
    Abstract: 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: Grant
    Filed: June 28, 2001
    Date of Patent: December 27, 2005
    Assignee: Microsoft Corporation
    Inventors: Frank V. Peschel-Gallee, Raja Krishnaswamy, Patrick H. Dussud