Patents by Inventor Arun Kishan

Arun Kishan 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: 20150039869
    Abstract: In one embodiment, the present invention includes a method for receiving control in a kernel mode via a ring transition from a user thread during execution of an unbounded transactional memory (UTM) transaction, updating a state of a transaction status register (TSR) associated with the user thread and storing the TSR with a context of the user thread, and later restoring the context during a transition from the kernel mode to the user thread. In this way, the UTM transaction may continue on resumption of the user thread. Other embodiments are described and claimed.
    Type: Application
    Filed: August 1, 2013
    Publication date: February 5, 2015
    Inventors: Koichi Yamada, GAD SHEAFFER, JAN GRAY, LANDY WANG, MARTIN TAILLEFER, ARUN KISHAN, ALI-REZA ADL-TABATABAI, DAVID CALLAHAN
  • Publication number: 20140373021
    Abstract: An operating system provides a pool of worker threads servicing multiple queues of requests at different priority levels. A concurrency controller limits the number of currently executing threads. The system tracks the number of currently executing threads above each priority level, and preempts operations of lower priority worker threads in favor of higher priority worker threads. A system can have multiple pools of worker threads, with each pool having its own priority queues and concurrency controller. A thread also can change its priority mid-operation. If a thread becomes lower priority and is currently active, then steps are taken to ensure priority inversion does not occur. In particular, the current thread for the now lower priority item can be preempted by a thread for a higher priority item and the preempted item is placed in the lower priority queue.
    Type: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: Pedro Teixeira, Arun Kishan
  • Publication number: 20140373032
    Abstract: Systems and methods of pre-fetching data for applications in a computer system that are terminated or suspended and may be pre-launched by the computer system are disclosed. The applications may employ data that is remote from the computer system and available from a third party content resource. A method for pre-fetching such remote data comprises associating a set of application with such data and/or its location; determining a set of pre-fetching conditions, determining which applications may be pre-fetched and pre-fetching the data, if pre-fetch conditions meet a desired pre-fetch policy. A predictive module or technique may be used to identify those applications which may be pre-launched. The present system may comprise a pre-fetch success module capable of measuring the success data for a current pre-fetch and associating such success data with an application to improve future pre-fetches.
    Type: Application
    Filed: June 12, 2013
    Publication date: December 18, 2014
    Inventors: Matthew Merry, Mehmet Iyigun, Jonathan Eldridge, Milos Kralj, Lawrence Osterman, Cody Miller, Sriram Sarda, Zachary Brown, Arun Kishan
  • Publication number: 20140372356
    Abstract: Systems and methods of pre-launching applications in a computer system, said applications being likely to be activated by a user from a terminated and/or suspended process state, are disclosed. The pre-launching of an application may be based on the assessed probability of the application being activated—as well as the level of availability of system resources to affect such pre-launching. Applications may be pre-launched based on these and other conditions/considerations, designed to improve the user's experience of a quick launch of applications in the background. Several prediction models are presented to provide a good estimate of the likelihood of an application being activated by a user. Such prediction models may comprise an adaptive predictor (based on past application usage situations) and/or a switch rate predictor (based on historic data of an application being switched and, possibly, having a decay rate applied to such switch rate measure).
    Type: Application
    Filed: June 12, 2013
    Publication date: December 18, 2014
    Inventors: Ahmad Bilal, Mehmet Iyigun, Milos Kralj, Christopher Kleynhans, Hari Pulapaka, Arun Kishan, Asela Gunawardana, Paul Koch, Christopher Meek, Eric Horvitz, Rich Caruana, Michael Fortin
  • Publication number: 20140366045
    Abstract: Systems and methods for composing a dynamic runtime API set schema employing a base API set schema and a set of API set schema extensions are disclosed. A base API set schema may be loaded into system memory at boot time with an associated set of host base binaries. A set of API set schema extensions binaries may also be loaded into system memory at boot time. At a second time, the API set schema extensions may be merged into the base API set schema on a dynamic as-needed basis.
    Type: Application
    Filed: June 7, 2013
    Publication date: December 11, 2014
    Inventors: Steven West, Philippe Joubert, Dragos Sambotin, Thomas Getzinger, Arun Kishan
  • Patent number: 8707283
    Abstract: A parallel processing method and apparatus for initializing libraries is disclosed. Libraries for an application are identified, an initialization order for the libraries is determined, and the libraries are initialized in asynchronous stages. The initialization order is determined by forming a library tree of the libraries' references and determining a load order for the references according to the levels of the references in the library tree. The asynchronous stages comprise a loading stage that includes a load queue, a snapping stage that includes a snap queue, and an initializing stage that includes an initialize queue.
    Type: Grant
    Filed: March 29, 2007
    Date of Patent: April 22, 2014
    Assignee: Microsoft Corporation
    Inventors: Kenneth M. Jung, Arun Kishan, Neill M. Clift
  • Patent number: 8688951
    Abstract: Operating system virtual memory management for hardware transactional memory. A system includes an operating system deciding to unmap a first virtual page. As a result, the operating system removes the mapping of the first virtual page to the first physical page from the virtual memory page table. As a result, the operating system performs an action to discard transactional memory hardware state for at least the first physical page. Embodiments may further suspend hardware transactions in kernel mode. Embodiments may further perform soft page fault handling without aborting a hardware transaction, resuming the hardware transaction upon return to user mode, and even successfully committing the hardware transaction.
    Type: Grant
    Filed: July 20, 2012
    Date of Patent: April 1, 2014
    Assignee: Microsoft Corporation
    Inventors: Koichi Yamada, Gad Sheaffer, Ali-Reza Adl-Tabatabai, Landy Wang, Martin Taillefer, Arun Kishan, David Callahan, Jan Gray, Vadim Bassin
  • Patent number: 8621494
    Abstract: One or more techniques and/or systems are provided for suspending logically related processes associated with an application, determining whether to resume a suspended process based upon a wake policy, and/or managing an application state of an application, such as timer and/or system message data. That is, logically related processes associated with an application, such as child processes, may be identified and suspended based upon logical relationships between the processes (e.g., a logical container hierarchy may be traversed to identify logically related processes). A suspended process may be resumed based upon a wake policy. For example, a suspended process may be resumed based upon an inter-process communication call policy that may be triggered by an application attempting to communicate with the suspended process. Application data may be managed while an application is suspended so that the application may be resumed in a current and/or relevant state.
    Type: Grant
    Filed: September 12, 2011
    Date of Patent: December 31, 2013
    Assignee: Microsoft Corporation
    Inventors: Neeraj Kumar Singh, Hari Pulapaka, Arun Kishan
  • Patent number: 8521995
    Abstract: A method includes receiving control in a kernel mode via a ring transition from a user thread during execution of an unbounded transactional memory (UTM) transaction, updating a state of a transaction status register (TSR) associated with the user thread and storing the TSR with a context of the user thread, and later restoring the context during a transition from the kernel mode to the user thread. In this way, the UTM transaction may continue on resumption of the user thread.
    Type: Grant
    Filed: December 15, 2009
    Date of Patent: August 27, 2013
    Assignee: Intel Corporation
    Inventors: Koichi Yamada, Gad Sheaffer, Jan Gray, Landy Wang, Martin Taillefer, Arun Kishan, Ali-Reza Adl-Tabatabai, David Callahan
  • Publication number: 20130191541
    Abstract: Among other things, one or more techniques and/or systems are provided for controlling resource access for background tasks. For example, a background task created by an application may utilize a resource (e.g., CPU cycles, bandwidth usage, etc.) by consuming resource allotment units from an application resource pool. Once the application resource pool is exhausted, the background task is generally restricted from utilizing the resource. However, the background task may also utilize global resource allotment units from a global resource pool shared by a plurality of applications to access the resource. Once the global resource pool is exhausted, unless the background task is a guaranteed background task which can consume resources regardless of resource allotment states of resource pools, the background task may be restricted from utilizing the resource until global resource allotment units within the global resource pool and/or resource allotment units within the application resource pool are replenished.
    Type: Application
    Filed: January 20, 2012
    Publication date: July 25, 2013
    Applicant: Microsoft Corporation
    Inventors: Arun Kishan, Hari Pulapaka, Alain Geffaut, Alex Bendetov, Pedro Miguel Sequeira de Justo Teixeira
  • Publication number: 20130067495
    Abstract: One or more techniques and/or systems are provided for suspending logically related processes associated with an application, determining whether to resume a suspended process based upon one or more wake policies, and/or managing an application state of an application, such as timer and/or system message data. That is, logically related processes associated with an application, such as child processes, may be identified and suspended based upon logical relationships between the processes (e.g., a logical container hierarchy may be traversed to identify logically related processes). A suspended process may be resumed based upon a set of wake policies. For example, a suspended process may be resumed based upon an inter-process communication call policy that may be triggered by an application attempting to communicate with the suspended process. Application data may be managed while an application is suspended so that the application may be resumed in a current and/or relevant state.
    Type: Application
    Filed: September 12, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Neeraj Kumar Singh, Hari Pulapaka, Arun Kishan, James A. Schwartz, JR.
  • Publication number: 20130067475
    Abstract: One or more techniques and/or systems are provided for suspending logically related processes associated with an application, determining whether to resume a suspended process based upon a wake policy, and/or managing an application state of an application, such as timer and/or system message data. That is, logically related processes associated with an application, such as child processes, may be identified and suspended based upon logical relationships between the processes (e.g., a logical container hierarchy may be traversed to identify logically related processes). A suspended process may be resumed based upon a wake policy. For example, a suspended process may be resumed based upon an inter-process communication call policy that may be triggered by an application attempting to communicate with the suspended process. Application data may be managed while an application is suspended so that the application may be resumed in a current and/or relevant state.
    Type: Application
    Filed: September 12, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Neeraj Kumar Singh, Hari Pulapaka, Arun Kishan
  • Publication number: 20130067490
    Abstract: One or more techniques and/or systems are provided for suspending logically related processes associated with an application, determining whether to resume a suspended process based upon one or more wake policies, and/or managing an application state of an application, such as timer and/or system message data. That is, logically related processes associated with an application, such as child processes, may be identified and suspended based upon logical relationships between the processes (e.g., a logical container hierarchy may be traversed to identify logically related processes). A suspended process may be resumed based upon a set of wake policies. For example, a suspended process may be resumed based upon an inter-process communication call policy that may be triggered by an application attempting to communicate with the suspended process. Application data may be managed while an application is suspended so that the application may be resumed in a current and/or relevant state.
    Type: Application
    Filed: September 12, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Neeraj Kumar Singh, Hari Pulapaka, Arun Kishan
  • Publication number: 20120284485
    Abstract: Operating system virtual memory management for hardware transactional memory. A system includes an operating system deciding to unmap a first virtual page. As a result, the operating system removes the mapping of the first virtual page to the first physical page from the virtual memory page table. As a result, the operating system performs an action to discard transactional memory hardware state for at least the first physical page. Embodiments may further suspend hardware transactions in kernel mode. Embodiments may further perform soft page fault handling without aborting a hardware transaction, resuming the hardware transaction upon return to user mode, and even successfully committing the hardware transaction.
    Type: Application
    Filed: July 20, 2012
    Publication date: November 8, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Koichi Yamada, Gad Sheaffer, Ali-Reza Adl-Tabatabai, Landy Wang, Martin Taillefer, Arun Kishan, David Callahan, Jan Gray, Vadim Bassin
  • Patent number: 8250331
    Abstract: Operating system virtual memory management for hardware transactional memory. A method may be performed in a computing environment where an application running on a first hardware thread has been in a hardware transaction, with transactional memory hardware state in cache entries correlated by memory hardware when data is read from or written to data cache entries. The data cache entries are correlated to physical addresses in a first physical page mapped from a first virtual page in a virtual memory page table. The method includes an operating system deciding to unmap the first virtual page. As a result, the operating system removes the mapping of the first virtual page to the first physical page from the virtual memory page table. As a result, the operating system performs an action to discard transactional memory hardware state for at least the first physical page. Embodiments may further suspend hardware transactions in kernel mode.
    Type: Grant
    Filed: June 26, 2009
    Date of Patent: August 21, 2012
    Assignee: Microsoft Corporation
    Inventors: Koichi Yamada, Gad Sheaffer, Ali-Reza Adl-Tabatabai, Landy Wang, Martin Taillefer, Arun Kishan, David Callahan, Jan Gray, Vadim Bassin
  • Patent number: 8091088
    Abstract: The present invention manages resources in a computing device to facilitate the allocation of resources amongst competing clients operating on the device. A hierarchy of budgets is constructed to encode restrictions on the aggregated use of a resource allocated by a resource provider to one or more clients. A resource manager validates and arbitrates requests to allocate resources to the one or more clients by resource providers in accordance with the budgets comprising the hierarchy. The resource manager notifies clients of availability and shortages of resources to promote compliance with the restrictions encoded in the budgets of the hierarchy.
    Type: Grant
    Filed: February 22, 2005
    Date of Patent: January 3, 2012
    Assignee: Microsoft Corporation
    Inventors: Arun Kishan, David B Probert
  • Publication number: 20110219379
    Abstract: Aspects of the present invention are directed at providing safe and efficient ways for a program to perform a one-time initialization of a data item in a multi-threaded environment. In accordance with one embodiment, a method is provided that allows a program to perform a synchronized initialization of a data item that may be accessed by multiple threads. More specifically, the method includes receiving a request to initialize the data item from a current thread. In response to receiving the request, the method determines whether the current thread is the first thread to attempt to initialize the data item. If the current thread is the first thread to attempt to initialize the data item, the method enforces mutual exclusion and blocks other attempts to initialize the data item made by concurrent threads. Then, the current thread is allowed to execute program code provided by the program to initialize the data item.
    Type: Application
    Filed: May 12, 2011
    Publication date: September 8, 2011
    Applicant: Microsoft Corporation
    Inventors: Arun Kishan, Neill M. Clift
  • Publication number: 20110214128
    Abstract: Aspects of the present invention are directed at providing safe and efficient ways for a program to perform a one-time initialization of a data item in a multi-threaded environment. In accordance with one embodiment, a method is provided that allows a program to perform a synchronized initialization of a data item that may be accessed by multiple threads. More specifically, the method includes receiving a request to initialize the data item from a current thread. In response to receiving the request, the method determines whether the current thread is the first thread to attempt to initialize the data item. If the current thread is the first thread to attempt to initialize the data item, the method enforces mutual exclusion and blocks other attempts to initialize the data item made by concurrent threads. Then, the current thread is allowed to execute program code provided by the program to initialize the data item.
    Type: Application
    Filed: May 12, 2011
    Publication date: September 1, 2011
    Applicant: Microsoft Corporation
    Inventors: Arun Kishan, Neill M. Clift
  • 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: 20110145552
    Abstract: In one embodiment, the present invention includes a method for receiving control in a kernel mode via a ring transition from a user thread during execution of an unbounded transactional memory (UTM) transaction, updating a state of a transaction status register (TSR) associated with the user thread and storing the TSR with a context of the user thread, and later restoring the context during a transition from the kernel mode to the user thread. In this way, the UTM transaction may continue on resumption of the user thread. Other embodiments are described and claimed.
    Type: Application
    Filed: December 15, 2009
    Publication date: June 16, 2011
    Inventors: Koichi Yamada, Gad Sheaffer, Jan Gray, Landy Wang, Martin Taillefer, Arun Kishan, Ali-Reza Adl-Tabatabai, David Callahan