Patents by Inventor Michael Ginsberg

Michael Ginsberg 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: 20050066340
    Abstract: A set of Application Program Interfaces (APIs) for a resource-limited environment are disclosed. The APIs provide a mechanism for a computer application to interface with various components and modules of an operating system for a resource-limited environment. The APIs further provide a mechanism to interface with input/output devices commonly found in embedded systems running in a resource-limited environment.
    Type: Application
    Filed: November 11, 2004
    Publication date: March 24, 2005
    Applicant: Microsoft Corporation
    Inventors: Sharad Mathur, Gregory Hullender, Mark Miller, Bruce Johnson, Michael Ginsberg
  • Patent number: 6856999
    Abstract: Systems and methods for synchronizing a device and for ensuring that updates to the device occurring during synchronization are not re-synchronized to the synchronization partner. Generation identifiers (GIDs), which are updated each time a synchronization occurs, are assigned to objects in a store. When synchronization occurs, a sync client uses state information, which is used to indicate which generations have been synchronized, to determine which objects have changed since the last synchronization. The state information includes reserved write GIDs that are only used by a particular sync client that performs writes during a synchronization. Objects having a GID that matches a write GID are not synchronized because they were written by the sync client during the previous synchronization.
    Type: Grant
    Filed: June 12, 2001
    Date of Patent: February 15, 2005
    Assignee: Microsoft Corporation
    Inventors: Stephen D. Flanagin, Michael Ginsberg
  • Publication number: 20050021917
    Abstract: Described herein is a method of controlling memory usage in a computer system having limited physical memory, wherein one or more application programs execute in conjunction with an operating system. At a first memory usage threshold, the operating system requests at least one of the application programs to limit its use of memory. At a second memory usage threshold that is more critical than the first memory usage threshold, the operating system requests at least one of the application programs to close itself. At a third memory usage threshold that is more critical than the first and second memory usage thresholds, the operating system terminates at least one of the application programs without allowing its further execution.
    Type: Application
    Filed: August 17, 2004
    Publication date: January 27, 2005
    Applicant: Microsoft Corporation
    Inventors: Sharad Mathur, Michael Ginsberg, Thomas Fenwick, Anthony Kitowicz, William Mitchell, Jason Fuller
  • Patent number: 6832381
    Abstract: A set of Application Program Interfaces (APIs) for a resource-limited environment are disclosed. The APIs provide a mechanism for a computer application to interface with various components and modules of an operating system for a resource-limited environment. The APIs further provide a mechanism to interface with input/output devices commonly found in embedded systems running in a resource-limited environment.
    Type: Grant
    Filed: April 28, 2000
    Date of Patent: December 14, 2004
    Assignee: Microsoft Corporation
    Inventors: Sharad Mathur, Gregory Hullender, Mark Miller, Bruce Johnson, Michael Ginsberg
  • Publication number: 20040225694
    Abstract: Systems and methods for synchronizing a device and for ensuring that updates to the device occurring during synchronization are not re-synchronized to the synchronization partner. Generation identifiers (GIDs), which are updated each time a synchronization occurs, are assigned to objects in a store. When synchronization occurs, a sync client uses state information, which is used to indicate which generations have been synchronized, to determine which objects have changed since the last synchronization. The state information includes reserved write GIDs that are only used by a particular sync client that performs writes during a synchronization. Objects having a GID that matches a write GID are not synchronized because they were written by the sync client during the previous synchronization.
    Type: Application
    Filed: June 9, 2004
    Publication date: November 11, 2004
    Inventors: Stephen D. Flanagin, Michael Ginsberg
  • Publication number: 20040155896
    Abstract: In an operating system, a resource handler accepts resource requests from application modules. A resource request identifies a module from which the requested resource is to be obtained. Rather than providing the resource from the identified module, however, the resource handler provides the requested resource from an associated resource module. An association between an executable module and resource modules of different languages is created by a defined file naming convention, optionally using different directories for resource modules of different languages. Some executable modules contain a shared resource reference which can be used to create an association between multiple executable modules and a single set of shared resource modules. A language fallback mechanism allows alternative languages to be used where resource modules of the appropriate language are not available.
    Type: Application
    Filed: January 21, 2004
    Publication date: August 12, 2004
    Inventors: Edward S. Miller, Bjorn C. Rettig, Gregory Wilson, Shan Xu, Arul A. Menezes, Michael J. Thomson, Sharad Mathur, Roberto Cazzaro, Michael Ginsberg
  • Patent number: 6717588
    Abstract: In an operating system, a resource handler accepts resource requests from application modules. A resource request identifies a module from which the requested resource is to be obtained. Rather than providing the resource from the identified module, however, the resource handler provides the requested resource from an associated resource module. An association between an executable module and resource modules of different languages is created by a defined file naming convention, optionally using different directories for resource modules of different languages. Some executable modules contain a shared resource reference which can be used to create an association between multiple executable modules and a single set of shared resource modules. A language fallback mechanism allows alternative languages to be used where resource modules of the appropriate language are not available.
    Type: Grant
    Filed: June 13, 2000
    Date of Patent: April 6, 2004
    Assignee: Microsoft Corporation
    Inventors: Edward S. Miller, Bjorn C. Retting, Gregory Wilson, Shan Xu, Arul A. Meneze, Michael J. Thomson, Sharad Mathur, Roberto Cazzaro, Michael Ginsberg
  • Patent number: 6704807
    Abstract: A set of Application Program Interfaces (APIs) for a resource-limited environment are disclosed. The APIs provide a mechanism for a computer application to interface with various components and modules of an operating system for a resource-limited environment. The APIs further provide a mechanism to interface with input/output devices commonly found in embedded systems running in a resource-limited environment.
    Type: Grant
    Filed: April 28, 2000
    Date of Patent: March 9, 2004
    Assignee: Microsoft Corporation
    Inventors: Sharad Mathur, Gregory Hullender, Mark Miller, Bruce Johnson, Michael Ginsberg
  • Patent number: 6671745
    Abstract: A set of Application Program Interfaces (APIs) for a resource-limited environment are disclosed. The APIs provide a mechanism for a computer application to interface with various components and modules of an operating system for a resource-limited environment. The APIs further provide a mechanism to interface with input/output devices commonly found in embedded systems running in a resource-limited environment.
    Type: Grant
    Filed: March 22, 1999
    Date of Patent: December 30, 2003
    Assignee: Microsoft Corporation
    Inventors: Sharad Mathur, Gregory Hullender, Mark Miller, Bruce Johnson, Michael Ginsberg
  • Patent number: 6637023
    Abstract: A method and system are described for updating software modules bundled in a read-only device of a computer. According to the invention, when a software module is to be executed from the read-only device, the operating system identifies any other software modules stored within the read-only device on which the application depends. After identifying all of the dependencies, the operating determines whether a newer version of any of the identified software modules has been installed on the computer. The operating system copies into a read/write device a portion of the software module that references the old software modules. After copying the portion, the operating system modifies all references to point to the new versions of the software module. The invention allows software modules to be primarily executed from the read-only device with only a small updated portion being executed from a read/write device.
    Type: Grant
    Filed: March 3, 1999
    Date of Patent: October 21, 2003
    Assignee: Microsoft Corporation
    Inventor: Michael Ginsberg
  • Patent number: 6574747
    Abstract: A system implementing an execute-in-place (XIP) architecture is presented comprising a plurality of XIP regions. To facilitate execute-in-place functionality across the multiple XIP regions, a virtual address table (VAT) is generated to store pointers to the objects stored in the non-volatile memory hosting the multiple XIP regions.
    Type: Grant
    Filed: December 5, 2000
    Date of Patent: June 3, 2003
    Assignee: Microsoft Corporation
    Inventor: Michael Ginsberg
  • Publication number: 20020069342
    Abstract: A system implementing an execute-in-place (XIP) architecture is presented comprising a plurality of XIP regions. To facilitate execute-in-place functionality across the multiple XIP regions, a virtual address table (VAT) is generated to store pointers to the objects stored in the non-volatile memory hosting the multiple XIP regions.
    Type: Application
    Filed: December 5, 2000
    Publication date: June 6, 2002
    Inventor: Michael Ginsberg
  • Publication number: 20020040445
    Abstract: Systems and methods for synchronizing a device and for ensuring that updates to the device occurring during synchronization are not re-synchronized to the synchronization partner. Generation identifiers (GIDs), which are updated each time a synchronization occurs, are assigned to objects in a store. When synchronization occurs, a sync client uses state information, which is used to indicate which generations have been synchronized, to determine which objects have changed since the last synchronization. The state information includes reserved write GIDs that are only used by a particular sync client that performs writes during a synchronization. Objects having a GID that matches a write GID are not synchronized because they were written by the sync client during the previous synchronization.
    Type: Application
    Filed: June 12, 2001
    Publication date: April 4, 2002
    Inventors: Stephen D. Flanagin, Michael Ginsberg
  • Publication number: 20020007387
    Abstract: The subject matter provides dynamically variable idle time thread scheduling in a device with a high system tick rate. A device based on the subject matter includes an operating system, a set of application program modules, and one or more hardware elements. A thread scheduling mechanism in the operating system schedules threads at a periodic rate. Upon determining that there are no threads to execute, at least a subset of components are deactivated for a dynamic variable amount of time before they are is re-activated. The at least one subset of components are selected from the hardware elements, one or more program modules comprising the operating system, and the like. The dynamic variable amount of time is independent of the periodic rate and based on a sleep state of a set of threads in a sleep queue.
    Type: Application
    Filed: April 25, 2001
    Publication date: January 17, 2002
    Inventor: Michael Ginsberg
  • Patent number: 6175916
    Abstract: The invention includes a method of making a call from one process to another. The method includes executing a jump instruction from a first process, while specifying an invalid destination address such as an odd virtual memory address. The invalid address causes a memory fault, which in turn results in the invocation of a memory fault handler. The memory fault handler is configured to recognize certain specified invalid addresses, and to call different system functions depending on the particular values of the addresses. The thread of the calling process is used to execute both the fault handler and the called system functions.
    Type: Grant
    Filed: May 6, 1997
    Date of Patent: January 16, 2001
    Assignee: Microsoft Corporation
    Inventors: Michael Ginsberg, Thomas Fenwick
  • Patent number: 5621894
    Abstract: A system and method for exchanging data processing capabilities between computers. The computers exchange capabilities so that data transfer between the computers may be made in the most efficient data format possible for the two computers. A first computer, which will receive a data file, sends a list of data processing capabilities to a second computer, which will transmit the data file to the first computer. The transmitting computer examines the capabilities list of the receiving computer as well as its own capabilities list and determines the most efficient data format for the transfer. The transmitting computer may process the data file into an intermediate format for efficient data transfer so that the receiving computer will process the intermediate data file into the desired data format. The capabilities list can be cached for future communication between the computers. The system can update the capabilities list and inform other computers whether their cached capabilities list is current.
    Type: Grant
    Filed: August 9, 1995
    Date of Patent: April 15, 1997
    Assignee: Microsoft Corporation
    Inventors: Arul Menezes, Sharad Mathur, Michael Ginsberg
  • Patent number: 5473691
    Abstract: The system of the present invention processes data for communication between first and second computers by linearizing the communications message. The message comprises a linear header portion, an extended header portion, and a message body. The linear header portion identifies the number of message recipients and message types. The extended header contains detailed information about the message recipients, such as recipient name and address. The extended header may also contain message subject information, polling information, and password data. The header information is used by the receiving computer to prepare to process the expected data type. The message body may be transferred in a form that takes advantage of the data processing capabilities of the first and second computers. The computers may exchange data processing capabilities so that the most efficient transfer form may be selected. The extended header and message body are encoded using a well-known ASN-1 data encoding process.
    Type: Grant
    Filed: November 5, 1993
    Date of Patent: December 5, 1995
    Assignee: Microsoft Corporation
    Inventors: Arul Menezes, Sharad Mathur, Michael Ginsberg