A resource or system resource is any physical or virtual component of limited availability within a computer system. Every device connected to a computer system is a resource as is every internal system component. Virtual system resources include files, network connections, and memory areas.
The four major types of resources include:
* CPU Time The time is takes for the central processing unit to interpret and executed instructions input into the machine.
* Random Access Memory The storage unit in the computer’s CPU
* Virtual Memory Allows the RAM to be accessed at different points in time managing the tasks asked of the system.
* Hard Disk Space Where computer programs and applications are stored.
* Network Throughput Management of a connection to a network or the Internet.
A resource handle is an identifier for a resource that is currently being accessed. Resource handles can be opaque in which case, they are often numbers or they can be pointers that allow access to further information. Common resource handles are file descriptors a key for accessing a file and sockets which are communication end points that make it possible to connect with the Internet.
Resource tracking is the ability of an operating system, virtual machine, or other computer program to terminate the access to a resource that has been allocated by a program but has not been de-allocated immediately after use. When implemented by a virtual machine, this is often done in the form of garbage collection.
Access to memory areas is often controlled by semaphores which allow a pathological situation called a deadlock that occurs when different threads or processes try to allocate resources already allocated by each other. A deadlock usually leads to a program becoming partially or completely unresponsive.
Access to resources is also sometimes regulated by queuing or placing tasks in a line to be executed in a specific order. In the case of computing time on a CPU, the controlling algorithm of the task queue is called a scheduler.
Your computer resources are essential to effective operation of your computer itself. They run in the background without you even really knowing it. When your computer resources are overloaded, however, you can be sure that the system will alert you to it.
System resources help you not only use your system, but also to store information and retrieve that information at a different time. They are the tools you need to effectively run programs as well as your computer system in general.