Patents by Inventor Paul Barham

Paul Barham 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: 20120306850
    Abstract: A system and method for providing an augmented reality environment in which the environmental mapping process is decoupled from the localization processes performed by one or more mobile devices is described. In some embodiments, an augmented reality system includes a mapping system with independent sensing devices for mapping a particular real-world environment and one or more mobile devices. Each of the one or more mobile devices utilizes a separate asynchronous computing pipeline for localizing the mobile device and rendering virtual objects from a point of view of the mobile device. This distributed approach provides an efficient way for supporting mapping and localization processes for a large number of mobile devices, which are typically constrained by form factor and battery life limitations.
    Type: Application
    Filed: June 2, 2011
    Publication date: December 6, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Alexandru Balan, Jason Flaks, Steve Hodges, Michael Isard, Oliver Williams, Paul Barham, Shahram Izadi, Otmar Hilliges, David Molyneaux, David Kim
  • Patent number: 8327390
    Abstract: Extensions to operating systems or software applications can be hosted in virtual environments to fault isolate the extension. A generic proxy extension invoked by a host process can coordinate the invocation of an appropriate extension in a virtual process that can provide the same support APIs as the host process. Furthermore, a user mode context can be provided to the extension in the virtual process through memory copying or page table modifications. In addition, the virtual process, especially a virtual operating system process running on a virtual machine, can be efficiently started by cloning a coherent state. A coherent state can be created when a virtual machine starts up, or when the computing device starts up and the appropriate parameters are observed and saved. Alternatively, the operating system can create a coherent state by believing there is an additional CPU during the boot process.
    Type: Grant
    Filed: June 25, 2009
    Date of Patent: December 4, 2012
    Assignee: Microsoft Corporation
    Inventors: Ulfar Us Erlingsson, Edward P. Wobber, Paul Barham, Thomas Roeder
  • Publication number: 20120159595
    Abstract: A data transfer system is described herein that allows data to be sent directly between two computing devices at the request of a third party client computer. The system allows a third party to initiate data transfers between computers in a network file system. This results in a significant speed increase because little to no data travels over the third party's potentially slower connection. The data transfer system provides a mechanism to determine if the direct transfer would be more efficient than two separate read and write operations, based on measurements of bandwidth and latency between each computing device. The data transfer system provides support for the source server to compress the data and the destination server to decompress the data at the direction of a third party client to further save network bandwidth.
    Type: Application
    Filed: December 20, 2010
    Publication date: June 21, 2012
    Applicant: Microsoft Corporation
    Inventor: Paul Barham
  • Publication number: 20120159156
    Abstract: A secure location system is described herein that leverages location-based services and hardware to make access decisions. Many mobile computers have location devices, such as GPS. They also have a trusted platform module (TPM) or other security device. Currently GPS location data is made directly accessible to untrusted application code using a simple protocol. The secure location system provides a secure mechanism whereby the GPS location of a computer at a specific time can be certified by the operating system kernel and TPM. The secure location system logs user activity with a label indicating the geographic location of the computing device at the time of the activity. The secure location system can provide a difficult to forge, time-stamped location through a combination of kernel-mode GPS access and TPM security hardware. Thus, the secure location system incorporates secure location information into authorization and other operating system decisions.
    Type: Application
    Filed: December 20, 2010
    Publication date: June 21, 2012
    Applicant: Microsoft Corporation
    Inventors: Paul Barham, Joseph N. Figueroa
  • Publication number: 20120159506
    Abstract: A personal datacenter system is described herein that provides a framework for leveraging multiple heterogeneous computers in a dynamically changing environment together as an ad-hoc cluster for performing parallel processing of various tasks. A home environment is much more heterogeneous and dynamic than a typical datacenter, and typical datacenter scheduling strategies do not work well for these types of small clusters. Machines in a home are likely to be powered on and off, be removed and taken elsewhere, and be connected by an ad-hoc network topology with a mix of wired and wireless technologies. The personal data center system provides components to overcome these differences. The system identifies a dynamically available set of machines, characterizes their performance, discovers the network topology, and monitors the available communications bandwidth between machines.
    Type: Application
    Filed: December 20, 2010
    Publication date: June 21, 2012
    Applicant: Microsoft Corporation
    Inventors: Paul Barham, Joseph N. Figueroa
  • Publication number: 20120159454
    Abstract: A performance monitoring system is described herein that works with a hypervisor to reserve resources outside of a virtual machine to monitor performance of an application running within the virtual machine. The application receives the guaranteed amount of resources specified by the virtual machine's specifications, and the monitoring consumes resources not associated with the virtual machine. The application running in the virtual machine is already isolated by the hypervisor from the physical machine, and thus additional burdens on the physical machine that allow the hypervisor to continue meeting guarantees to the virtual machine will not impact application performance. The performance monitoring system provides instrumentation of deployed applications that information technology (IT) personnel can dynamically turn on and off without affecting the performance of the deployed application.
    Type: Application
    Filed: December 20, 2010
    Publication date: June 21, 2012
    Applicant: Microsoft Corporation
    Inventors: Paul Barham, Joseph N. Figueroa, Jeremiah C. Spradlin
  • Publication number: 20120063323
    Abstract: Hosts or end-systems residing at the edges of a network gather data about the traffic they transmit into and receive from the network. The network's routing protocol (typically a link-state protocol such as OSPF) is monitored and routing data or packets are used to recover the network's current status and topology. This data can be collected, fused, and maintained and a platform, preferably distributed, can be provided to query the data, thus enabling a variety of network management applications.
    Type: Application
    Filed: November 20, 2011
    Publication date: March 15, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Richard M. Mortier, Paul Barham, Rebecca Isaacs
  • Patent number: 8077718
    Abstract: Hosts or end-systems residing at the edges of a network gather data about the traffic they transmit into and receive from the network. The network's routing protocol (typically a link-state protocol such as OSPF) is monitored and routing data or packets are used to recover the network's current status and topology. This data can be collected, fused, and maintained and a platform, preferably distributed, can be provided to query the data, thus enabling a variety of network management applications.
    Type: Grant
    Filed: August 12, 2005
    Date of Patent: December 13, 2011
    Assignee: Microsoft Corporation
    Inventors: Richard M. Mortier, Paul Barham, Rebecca Isaacs
  • Publication number: 20110138476
    Abstract: Software fault isolation methods using byte-granularity memory protection are described. In an embodiment, untrusted drivers or other extensions to a software system are run in a separate domain from the host portion of the software system, but share the same address space as the host portion. Calls between domains are mediated using an interposition library and access control data is maintained for substantially each byte of relevant virtual address space. Instrumentation added to the untrusted extension at compile-time, before load-time, or at runtime and added by the interposition library enforces the isolation between domains, for example by adding access right checks before any writes or indirect calls and by redirecting function calls to call wrappers in the interposition library. The instrumentation also updates the access control data to grant and revoke access rights on a fine granularity according to the semantics of the operation being invoked.
    Type: Application
    Filed: December 8, 2009
    Publication date: June 9, 2011
    Applicant: Microsoft Corporation
    Inventors: Richard John Black, Paul Barham, Manuel Costa, Marcus Peinado, Jean-Philippe Martin, Periklis Akritidis, Austin Donnelly, Miguel Castro
  • Patent number: 7949745
    Abstract: An activity model is generated at a computer. The activity model may be generated by monitoring incoming and outgoing data in the computer. The collected data is analyzed to form a graph that describes and predicts what output is generated in response to received input. Later, a window of input and output data is collected from the computer. This collected window of data is used to query the activity model. The graph in the activity model is then used to give the probability that the collected window of data was collected from the computer used to generate the activity model. A high probability indicates that the computer is performing normally, while a low probability indicates that the computer may behaving erratically and there may be a problem with the computer.
    Type: Grant
    Filed: October 31, 2006
    Date of Patent: May 24, 2011
    Assignee: Microsoft Corporation
    Inventors: Paul Barham, Richard Black, Moises Goldszmidt, Rebecca Isaacs, John MacCormick, Richard Mortier
  • Patent number: 7821947
    Abstract: An activity model is generated at a computer. The activity model may be generated by monitoring incoming and outgoing channels for packets for a predetermined window of time. To generate an activity model, an input and an output channel are selected. A probability distribution function describing the observed waiting time between packet arrivals on the selected input channel and the selected output channel is generated by mining the data collected during the selected window of time. A probability distribution function describing the observed waiting time between a randomly chosen instant and receiving a packet on the selected input channel is also generated. The distance between the two generated probability distribution functions is computed. If the computed distance is greater than a predefined confidence level, then the two selected channels are deemed to be related. Otherwise, the selected channels are deemed to be unrelated.
    Type: Grant
    Filed: April 24, 2007
    Date of Patent: October 26, 2010
    Assignee: Microsoft Corporation
    Inventors: John MacCormick, Paul Barham, Moises Goldszmidt
  • Patent number: 7747986
    Abstract: A computing system for determining performance factors for using in performance modeling of a deployed subject system, is presented. The computing system includes a plurality of software components comprising the subject system. Each of the components is susceptible to event tracing while executing on the computing system. The computing system includes a tracing component. The tracing component is configured to trace events of the components of the subject system as they execute. The computing system includes a transaction identification table. The transaction identification table comprises starting and ending actions for transactions performed by the subject system. The computing system also includes a transaction identification component that identifies actions from traced events, identifies related actions corresponding to a transaction according to the starting and ending actions in the transaction identification table, and stores the related actions in the transaction workflow data store.
    Type: Grant
    Filed: June 15, 2005
    Date of Patent: June 29, 2010
    Assignee: Microsoft Corporation
    Inventors: Glenn F LaVigne, Efstathios Papaefstathiou, Jonathan C Hardwick, Quanzhan Zheng, Rebecca Isaacs, Paul Barham
  • Publication number: 20090265715
    Abstract: Extensions to operating systems or software applications can be hosted in virtual environments to fault isolate the extension. A generic proxy extension invoked by a host process can coordinate the invocation of an appropriate extension in a virtual process that can provide the same support APIs as the host process. Furthermore, a user mode context can be provided to the extension in the virtual process through memory copying or page table modifications. In addition, the virtual process, especially a virtual operating system process running on a virtual machine, can be efficiently started by cloning a coherent state. A coherent state can be created when a virtual machine starts up, or when the computing device starts up and the appropriate parameters are observed and saved. Alternatively, the operating system can create a coherent state by believing there is an additional CPU during the boot process.
    Type: Application
    Filed: June 25, 2009
    Publication date: October 22, 2009
    Applicant: Microsoft Corporation
    Inventors: Ulfar Erlingsson, Edward P. Wobber, Paul Barham, Thomas Roeder
  • Patent number: 7574709
    Abstract: Extensions to operating systems or software applications can be hosted in virtual environments to fault isolate the extension. The virtual environment in which extensions designed to control hardware devices can safely execute can be efficiently created during an initial startup sequence of a host environment by indicating to the host environment that a second processing unit is present in the computing system allowing the host environment to create a coherent state. A virtual process, especially a virtual operating system process running on a virtual machine, can be efficiently started by the created coherent state. A coherent state can be created when an operating system starts up and the appropriate parameters are observed and saved. Alternatively, an operating system of the host environment can create the coherent state by receiving indication of the second processing unit during the boot process.
    Type: Grant
    Filed: April 30, 2004
    Date of Patent: August 11, 2009
    Assignee: Microsoft Corporation
    Inventors: Ulfar Erlingsson, Edward P. Wobber, Paul Barham, Thomas Roeder
  • Publication number: 20080267083
    Abstract: An activity model is generated at a computer. The activity model may be generated by monitoring incoming and outgoing channels for packets for a predetermined window of time. To generate an activity model, an input and an output channel are selected. A probability distribution function describing the observed waiting time between packet arrivals on the selected input channel and the selected output channel is generated by mining the data collected during the selected window of time. A probability distribution function describing the observed waiting time between a randomly chosen instant and receiving a packet on the selected input channel is also generated. The distance between the two generated probability distribution functions is computed. If the computed distance is greater than a predefined confidence level, then the two selected channels are deemed to be related. Otherwise, the selected channels are deemed to be unrelated.
    Type: Application
    Filed: April 24, 2007
    Publication date: October 30, 2008
    Applicant: Microsoft Corporation
    Inventors: John MacCormick, Paul Barham, Moises Goldszmidt
  • Publication number: 20080103729
    Abstract: Activity models are maintained on a plurality of computers on a network. When a user or a particular activity model at a computer discovers an error, it may query its own activity model to determine a possible source of the error. If it is determined to not be the likely source of the error, the activity model queries the activity models of those computers on the network that it depends on. These activity models may then query the activity models of the computers that their particular host computer depends on and so forth. Ultimately the results of these activity model queries may be used to diagnose the likely source of the error and may be presented to the requesting user as a report.
    Type: Application
    Filed: October 31, 2006
    Publication date: May 1, 2008
    Applicant: Microsoft Corporation
    Inventors: Paul Barham, Richard Black, Moises Goldszmidt, Rebecca Isaacs, John MacCormick, Richard Mortier
  • Publication number: 20080101352
    Abstract: An activity model is generated at a computer. The activity model may be generated by monitoring incoming and outgoing data in the computer. The collected data is analyzed to form a graph that describes and predicts what output is generated in response to received input. Later, a window of input and output data is collected from the computer. This collected window of data is used to query the activity model. The graph in the activity model is then used to give the probability that the collected window of data was collected from the computer used to generate the activity model. A high probability indicates that the computer is performing normally, while a low probability indicates that the computer may behaving erratically and there may be a problem with the computer.
    Type: Application
    Filed: October 31, 2006
    Publication date: May 1, 2008
    Applicant: Microsoft Corporation
    Inventors: Paul Barham, Richard Black, Moises Goldszmidt, Rebecca Isaacs, John MacCormick, Richard Mortier
  • Patent number: 7296083
    Abstract: A method and system are presented for determining the loading and capacity on a variable capacity channel by measuring the times at which packets are enqueued for transmission, and have their transmission completed, or by measuring these times in addition to the arrival times of the packets. The times may be measured using a device driver or other operating system component. The measurement may be performed in a centralized or distributed fashion for multi-access or point to point channels.
    Type: Grant
    Filed: June 28, 2002
    Date of Patent: November 13, 2007
    Assignee: Microsoft Corporation
    Inventors: Paul Barham, Richard Black, Neil Stratford
  • Patent number: 7284047
    Abstract: A method and system for avoiding network congestion by measuring network load to adjust a rate at each source. The load (e.g., as a price value) is provided to network traffic sources, which adjust their flows based on a per-flow weight (willingness to pay). The load may be determined in-band by routers or out-of-band by an observer node. A load value (e.g., as a price) is increased or decreased based on the actual load or an estimate based on the actual load. The sources obtain the load value and control the output rates per flow based on each flow's associated weight (willingness to pay), e.g., as set by an administrator. Further, two classes of applications are enabled by allowing certain applications to ignore price.
    Type: Grant
    Filed: November 8, 2001
    Date of Patent: October 16, 2007
    Assignee: Microsoft Corporation
    Inventors: Paul Barham, Richard Black, Peter Key, Neil Stratford
  • Publication number: 20070094495
    Abstract: Described herein are one or more implementations of an operating system that provides for statically verifiable inter-process communication between isolated processes. Also, described herein are one or more implementations of programming tools that facilitate the development of statically verifiable isolated processes having inter-process communication.
    Type: Application
    Filed: June 30, 2006
    Publication date: April 26, 2007
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, James Larus, Martin Abadi, Mark Aiken, Paul Barham, Manuel Fahndrich, Chris Hawblitzel, Orion Hodson, Steven Levi, Nicholas Murphy, Bjarne Steensgaard, David Tarditi, Edward Wobber, Brian Zill