Jump to content

System resource

From Wikipedia, the free encyclopedia

A computer system resource is any hardware or software aspect of limited availability that is accessible to a computer system. Like any resource, computer system resources can be exhausted, and issues arise due to scarcity.

Resource management, a key aspect of designing hardware and software, includes preventing resource leaks (not releasing a resource done with it) and handling resource contention (when multiple processes want to access the same resource). Computing resources are used in cloud computing to provide services through networks.

Fragmentation

[edit]

A linearly addressable resource, such as memory and storage, can be used for an allocation that is either contiguous or non-contiguous. For example, dynamic memory is generally allocated as a contiguous block that consists of a portion of memory from a starting address and running for a certain length. On the other hand, storage space is typically allocated by a file system as non-contiguous blocks throughout the storage device even though consumers of a file can treat it as a linear sequence; logically contiguous. The resource has an overall capacity as well as the capacity to support an allocation of a certain size. For example, RAM might have enough free space to support allocating 1024 1MB blocks although not enough contiguous free space to support allocating a single 1GB block even though the sum of the smaller blocks equals the size of the large block. Fragmentation describes the amount to which linear resources are stored non-contiguously, and a highly fragmented resource may degrade performance.

Compression

[edit]

One can also distinguish compressible from incompressible resources.[1] Compressible resources, such as CPU and network bandwidth, can be throttled benignly. The user will be slowed proportionally to the throttling, but will otherwise proceed normally. Other resources, such as memory, cannot be throttled without either causing failure (inability to allocate memory typically causes failure) or performance degradation, such as due to thrashing (paging slows processing throughput). The distinction is not always clear. For example, a paging system can allow main memory (primary storage) to be compressed (by paging to secondary storage), and some systems allow discardable memory for caches, which is compressible without disastrous performance impact.

Electrical power may be compressible. Without sufficiant power an electrical device cannot run, and will stop or crash. But, some devices, such as mobile phones, support degraded operation at reduced power. Some devices allow for suspending operations (without loss of data) until power is restored.

Examples

[edit]

The types of resources and issues that arise due to their scarcity is vast.

For example, memory is a resource since a computer has a fixed amount. For many applications, the amount is so large compared to its needs that the resource is essentially unlimited. But, if many application with modest requirements are running concurrently, of if an application does require large amounts of memory, then runtime issues occur as the amount of free memory approaches zero. Applications are no longer able to allocate memory and will probably fail.

Another well-known resource is the processor. It differs from memory in that it is not reserved. None-the-less, as the processor becomes more loaded with work, the time waiting for the processor increases, and processing throughput degrades. This often leads to inferior user experience or in a time-critical application, loss of critical system functionality.

Resources can be layered and intertwined. For example, a file is a resource since each file is unique. A file consumes storage space which has a fixed size. When a file is opened, generally memory is allocated for the purpose of accessing the file. This file object is both a unique resource and consumes memory (a resource).

Some resources are accessed via a handle such as a lookup table key or pointer. Although the handle my consume memory, the handle itself is not considered a resource since it can be duplicated at little cost.

Notable resources include:

See also

[edit]

References

[edit]
  1. ^ The Kubernetes resource model: "Some resources, such as CPU and network bandwidth, are compressible, meaning that their usage can potentially be throttled in a relatively benign manner."