Method and system for tracking kernel resource usage
AssigneeMicrosoft Corporation
InventorRanjan K. Sen
Life of this patent
Estimating the term…
Abstract
A method and computer system for tracking kernel resource usage is disclosed that tracks kernel resources allocated to user processes called from the user level of the operating system. A tag of the user processes is generated, which allows a way to identify the user processes and associate allocated kernel resources to the user process. As a result, the user processes can be charged for kernel resources.
Claims9
A method for tracking kernel resource usage comprising:
- generating a tag to charge a process allocated with kernel resources wherein generating a tag further comprises:
- determining whether a request for kernel resources is passed from an intermediate function using a worker thread;
- finding at least one link between the worker thread and the process;
- and,
- identifying the process that originated the request according to the found link between the worker thread and the process;
- determining whether the process is a kernel process;
- determining whether the process is a user process;
- flagging the tag with a kernel flag to indicate whether the process has been determined to be a kernel process, the flagging further comprising:
- generating a tag value to identify kernel resources allocated to a user process;
- saving a type of kernel resources allocated to the tag;
- and,
- saving a user process identifier to the tag to identify the process;
- flagging the tag with a user flag to indicate whether the process has been determined to be a user process based upon the determination step wherein the tag value and the type of kernel resources are saved in a first word of the tag, and the user process identifier is saved in a second word of the tag;
- determining whether the process is a first predefined process or a second predefined process;
- saving an identifier to the tag to identify whether the process is a first predefined process or a second predefined process based upon the determination step;
- determining whether the process has used more kernel usage than a threshold;
- and
- if the process kernel usage is above a threshold, aborting the process.
A computer storage medium having computer-executable instructions to be executed by a processor for performing a method for tracking kernel resource usage comprising:
- generating a tag to charge a process allocated with kernel resources wherein generating a tag further comprises:
- determining whether a request for kernel resources is passed from an intermediate function using a worker thread;
- finding at least one link between the worker thread and the process;
- and,
- identifying the process that originated the request according to the found link between the worker thread and the process;
- determining whether the process is a kernel process;
- determining whether the process is a user process;
- flagging the tag with a kernel flag to indicate whether the process has been determined to be a kernel process, the flagging further comprising:
- generating a tag value to identify kernel resources allocated to a user process;
- saving a type of kernel resources allocated to the tag;
- and,
- saving a user process identifier to the tag to identify the process;
- flagging the tag with a user flag to indicate whether the process has been determined to be a user process based upon the determination step wherein the tag value and the type of kernel resources are saved in a first word of the tag, and the user process identifier is saved in a second word of the tag;
- determining whether the process is a first predefined process or a second predefined process;
- saving an identifier to the tag to identify whether the process is a first predefined process or a second predefined process based upon the determination step;
- determining whether the process has used more kernel usage than a threshold;
- and
- if the process kernel usage is above a threshold, aborting the process.
Dependencies are inferred from the claim text.