Patents by Inventor Karthik Thirumalai

Karthik Thirumalai 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: 10089119
    Abstract: A computer operating system with a map that relates API namespaces to components that implement an interface contracts for the namespaces. When an API namespace is to be used, a loader within the operating system uses the map to load components based on the map. An application can reference an API namespace in the same way as it references a dynamically linked library, but the implementation of the interface contract for the API namespace is not tied to a single file or to a static collection of files. The map may identify versions of the API namespace or values of runtime parameters that may be used to select appropriate files to implement an interface contract in scenarios that may depend on factors such as hardware in the execution environment, a version of the API namespace against which an application was developed or the application accessing the API namespace.
    Type: Grant
    Filed: March 3, 2010
    Date of Patent: October 2, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Arun Kishan, Karthik Thirumalai, Richard A. Pletcher, Bryan W. Fagan
  • Patent number: 8910192
    Abstract: A set of application programming interfaces (“APIs”) is provided that enables an application to perform operations on multiple system resources as a single logical unit of work through a transaction. The application can then commit or roll back the entire group of changes as a single unit in a coordinated manner. The APIs expose functions and methods that take a reference to a transaction context, such as a handle, name, or pointer, as one of their parameters so that the application can manipulate the resource as a transacted operation. The transaction is bound to all created handles so that all operations on the resource using those handles are also transacted. In an illustrative example, the set of APIs are transacted name-based WIN32 APIs that take a transaction handle. The transacted APIs expose transacted operations to the application for durable system resources in the OS kernel, including the NTFS file system (New Technology File System) and registry.
    Type: Grant
    Filed: August 8, 2007
    Date of Patent: December 9, 2014
    Assignee: Microsoft Corporation
    Inventors: Dana Groff, Jonathan Cargille, Surendra Verma, Andrew Herron, Dragos Sambotin, Christian Allred, William R. Tipton, Karthik Thirumalai
  • Patent number: 8640131
    Abstract: Embodiments that facilitate the fair and dynamic distribution of central processing unit (CPU) time are disclosed. In accordance with one embodiment, a method includes organizing one or more processes into one or more groups. The method further includes allocating a CPU time interval for each group. The allocation of a CPU time interval for each group is accomplished by equally distributing a CPU cycle based on the number of groups. The method also includes adjusting the allocated CPU time intervals based on a change in the quantity of the one or more groups.
    Type: Grant
    Filed: January 18, 2008
    Date of Patent: January 28, 2014
    Assignee: Microsoft Corporation
    Inventors: Ara Bernardi, Costin Hagiu, Nelamangal Krishnaswamy Srinivas, Ashwin Palekar, Arun U. Kishan, Karthik Thirumalai
  • Publication number: 20130097001
    Abstract: A dynamic loyalty service system allows a product provider to create a demand plan that identifies anticipated demand for a service over a number of time segments. The dynamic loyalty service system generates the demand plan using information about historic commercial data about the service and historic patterns of usage of the product by the provider's loyalty program participants. The dynamic loyalty service system allows a user to identify targets for the various time segments, wherein the targets specify desired adjustments to the demand during the respective time segment. The dynamic loyalty service system uses the demand plan and the adjustment targets to generate a communication plan that specifies the messages to be sent to the provider's loyalty program participants and the communication modality for delivering the messages.
    Type: Application
    Filed: October 14, 2011
    Publication date: April 18, 2013
    Applicant: Microsoft Corporation
    Inventors: Matthew Graham Dyor, David Raskino, Karthik Thirumalai
  • Patent number: 8074288
    Abstract: A mechanism is provided for isolating application-specific data in an environment where multiple applications share a same user account. This mechanism enables data specific to an application to be accessed only by the application. When an application requests application-specific data, the data is loaded and a handle to the data is returned to the application. Access to the data is allowed only though the handle. Therefore, only the application possessing the handle can access the data. A counter may be associated with the loaded data. The counter's value is incremented whenever a handle is created for the data and decremented whenever a handle for the data is terminated. When the value of the counter reaches zero, the data is automatically unloaded.
    Type: Grant
    Filed: November 15, 2005
    Date of Patent: December 6, 2011
    Assignee: Microsoft Corporation
    Inventors: Dragos Sambotin, Karthik Thirumalai, Richard B Ward
  • Publication number: 20110154378
    Abstract: A computer operating system with a map that relates API namespaces to components that implement an interface contracts for the namespaces. When an API namespace is to be used, a loader within the operating system uses the map to load components based on the map. An application can reference an API namespace in the same way as it references a dynamically linked library, but the implementation of the interface contract for the API namespace is not tied to a single file or to a static collection of files. The map may identify versions of the API namespace or values of runtime parameters that may be used to select appropriate files to implement an interface contract in scenarios that may depend on factors such as hardware in the execution environment, a version of the API namespace against which an application was developed or the application accessing the API namespace.
    Type: Application
    Filed: March 3, 2010
    Publication date: June 23, 2011
    Applicant: Microsoft Corporation
    Inventors: Arun Kishan, Karthik Thirumalai, Richard A. Pletcher, Bryan W. Fagan
  • Publication number: 20090187784
    Abstract: Embodiments that facilitate the fair and dynamic distribution of central processing unit (CPU) time are disclosed. In accordance with one embodiment, a method includes organizing one or more processes into one or more groups. The method further includes allocating a CPU time interval for each group. The allocation of a CPU time interval for each group is accomplished by equally distributing a CPU cycle based on the number of groups. The method also includes adjusting the allocated CPU time intervals based on a change in the quantity of the one or more groups.
    Type: Application
    Filed: January 18, 2008
    Publication date: July 23, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Ara Bernardi, Costin Hagiu, NK Srinivas, Ashwin Palekar, Arun U. Kishan, Karthik Thirumalai
  • Publication number: 20090044204
    Abstract: A set of application programming interfaces (“APIs”) is provided that enables an application to perform operations on multiple system resources as a single logical unit of work through a transaction. The application can then commit or roll back the entire group of changes as a single unit in a coordinated manner. The APIs expose functions and methods that take a reference to a transaction context, such as a handle, name, or pointer, as one of their parameters so that the application can manipulate the resource as a transacted operation. The transaction is bound to all created handles so that all operations on the resource using those handles are also transacted. In an illustrative example, the set of APIs are transacted name-based WIN32 APIs that take a transaction handle. The transacted APIs expose transacted operations to the application for durable system resources in the OS kernel, including the NTFS file system (New Technology File System) and registry.
    Type: Application
    Filed: August 8, 2007
    Publication date: February 12, 2009
    Applicant: Microsoft Corporation
    Inventors: Dana Groff, Jonathan Cargille, Surendra Verma, Andrew Herron, Dragos Sambotin, Christian Allred, William R. Tipton, Karthik Thirumalai
  • Publication number: 20070033638
    Abstract: A mechanism is provided for isolating application-specific data in an environment where multiple applications share a same user account. This mechanism enables data specific to an application to be accessed only by the application. When an application requests application-specific data, the data is loaded and a handle to the data is returned to the application. Access to the data is allowed only though the handle. Therefore, only the application possessing the handle can access the data. A counter may be associated with the loaded data. The counter's value is incremented whenever a handle is created for the data and decremented whenever a handle for the data is terminated. When the value of the counter reaches zero, the data is automatically unloaded.
    Type: Application
    Filed: November 15, 2005
    Publication date: February 8, 2007
    Applicant: Microsoft Corporation
    Inventors: Dragos Sambotin, Karthik Thirumalai, Richard Ward
  • Publication number: 20060277270
    Abstract: The subject invention provides a system and/or a method that facilitates the recording of server/device communications on a device and playback of such recorded conversations from the device. Playback from the device can be implemented without a network connection and simulates a real server that has previously interacted with the device. The system provides for a device to communicate with at least one server, and a module integrated with device to playback at least one recorded server response to the device. Further, the system provides for a component integrated with the device to record server responses and device responses on the device and to store the recorded responses in a memory of the device. Upon staging the device to a state equal to when the conversation record log was created, the recorded server responses can be matched to corresponding device responses and played back to the device.
    Type: Application
    Filed: June 3, 2005
    Publication date: December 7, 2006
    Applicant: Microsoft Corporation
    Inventors: Owen Lloyd, Eian Counts, Karthik Thirumalai