Resource Library Python
This module in python provides basic mechanisms for measuring and controlling system resources utilized by a program. And symbolic constants are used to specify particular system resources and to request usage information about either the current process or its children. If there is a syscall failure, the OSError is raised.
Any program can be converted to a process when it is executed. Thus a program becomes a process when it is executed. A process can have threads. A thread is a lightweight of process and is a basic unit of CPU utilization which consists of a program counter, a stack, and a set of registers. Thread has the ability to share an address space and all of its data among themselves.
A process contains a number of resources like address space, open files, accounting information, etc. In addition to these resources, a process is also having a thread of control. For example, program counter, register contents, stack.
The idea of threads is to allow multiple threads of control to execute within one process. This is often called multithreading and threads are also known as lightweight processes.
Since threads in the same process share state and stack, switching between them is less expensive than switching between separate processes.
Individual threads within the same process are not completely independent but they are cooperating and all are from the same process.
The shared resources make it easier between threads to use each other’s resources. A new thread in the same process is created by a library routine like thread_create. Similarly, thread_exit terminates a thread.
The following symbols are useful in using the resource library resource usage functions, which provides the resource usage information about the processes. These will help to know about the resources used by the process and its child processes.
resource.RUSAGE_SELF:
This is passed to getrusage() to request the resources consumed by the calling process which is the sum of the resources used by all the threads in the process.
resource.RUSAGE_CHILDREN:
This is passed to getrusage() to request the resources consumed by the child processes, which have been terminated and waited for.
resource.RUSAGE_BOTH:
This is passed to getrusage() to request the resources consumed by both the current process and the child processes. This may or may not be available on the systems.
resource.RUSAGE_THREAD:
This is passed to getrusage() to request the resources consumed by the current thread. Again this may or may not be available on the systems.
Comments