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: 10089119Abstract: 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: GrantFiled: March 3, 2010Date of Patent: October 2, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Arun Kishan, Karthik Thirumalai, Richard A. Pletcher, Bryan W. Fagan
-
Patent number: 8910192Abstract: 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: GrantFiled: August 8, 2007Date of Patent: December 9, 2014Assignee: Microsoft CorporationInventors: Dana Groff, Jonathan Cargille, Surendra Verma, Andrew Herron, Dragos Sambotin, Christian Allred, William R. Tipton, Karthik Thirumalai
-
Demand-based processor cycle allocation subsequent to equal group-based processor cycle distribution
Patent number: 8640131Abstract: 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: GrantFiled: January 18, 2008Date of Patent: January 28, 2014Assignee: Microsoft CorporationInventors: Ara Bernardi, Costin Hagiu, Nelamangal Krishnaswamy Srinivas, Ashwin Palekar, Arun U. Kishan, Karthik Thirumalai -
Publication number: 20130097001Abstract: 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: ApplicationFiled: October 14, 2011Publication date: April 18, 2013Applicant: Microsoft CorporationInventors: Matthew Graham Dyor, David Raskino, Karthik Thirumalai
-
Patent number: 8074288Abstract: 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: GrantFiled: November 15, 2005Date of Patent: December 6, 2011Assignee: Microsoft CorporationInventors: Dragos Sambotin, Karthik Thirumalai, Richard B Ward
-
Publication number: 20110154378Abstract: 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: ApplicationFiled: March 3, 2010Publication date: June 23, 2011Applicant: Microsoft CorporationInventors: Arun Kishan, Karthik Thirumalai, Richard A. Pletcher, Bryan W. Fagan
-
Publication number: 20090187784Abstract: 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: ApplicationFiled: January 18, 2008Publication date: July 23, 2009Applicant: MICROSOFT CORPORATIONInventors: Ara Bernardi, Costin Hagiu, NK Srinivas, Ashwin Palekar, Arun U. Kishan, Karthik Thirumalai
-
Publication number: 20090044204Abstract: 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: ApplicationFiled: August 8, 2007Publication date: February 12, 2009Applicant: Microsoft CorporationInventors: Dana Groff, Jonathan Cargille, Surendra Verma, Andrew Herron, Dragos Sambotin, Christian Allred, William R. Tipton, Karthik Thirumalai
-
Publication number: 20070033638Abstract: 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: ApplicationFiled: November 15, 2005Publication date: February 8, 2007Applicant: Microsoft CorporationInventors: Dragos Sambotin, Karthik Thirumalai, Richard Ward
-
Publication number: 20060277270Abstract: 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: ApplicationFiled: June 3, 2005Publication date: December 7, 2006Applicant: Microsoft CorporationInventors: Owen Lloyd, Eian Counts, Karthik Thirumalai