Overhead (computing)

Overhead (computing)

In computer science, overhead is generally considered any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to attain a particular goal. It is a special case of engineering overhead.

Contents

Examples

Computer Programming

  • Invoking a function.

Communications

  • Sending a payload of data (reliably) over a communications network requires sending more than just the desired payload data, itself. It also involves sending various control and signalling data (TCP) required to achieve the reliable transmission of the desired data in question. The control signalling is overhead.
    • A simplified version is the need and time to dial a number to establish a phone call, before the call can take place. Dialing the number and establishing the call are overhead.
    • Another simplified scenario is in the use of 2-way (but half-duplex) radios. Overhead would be the use of “over” and other signalling needed to avoid collisions, as extra traffic to that of the actual message(s) to be conveyed.


Conceptual

Vehicles & travel

  • Travel using a vehicle involves the overhead of transporting the vehicle (plus payload) to the destination, rather than just the payload. Energy must be used to move the mass of the vehicle, in addition to the passengers and/or cargo.
  • Time to complete a journey always includes a fixed amount of time needed to make preparations in order to actually begin travelling. Imagine boarding a shared vehicle (a train, or aircraft), or dressing warmly to leave the building and get into a car. This fixed ‘setup’ time is overhead to the journey itself.

Choice of algorithm

A programmer/software engineer may have a choice of several algorithms, each of which have known characteristics. When choosing among them, their respective overhead should also be considered.

Tradeoffs

In software engineering, overhead can influence the decision whether or not to include features in new products, or indeed whether to fix bugs. A feature that has a high overhead may not be included – or needs a big financial incentive to do so. Often, even though software providers are well aware of bugs in their products, the payoff of fixing them is not worth the reward, because of the overhead.

Complexity

Algorithmic complexity is generally specified using Big O Notation. This makes no comment on how long something takes to run or how much memory it uses, but how its increase depends on the size of the input. Overhead is deliberately not part of this calculation, since it varies from one machine to another, whereas the fundamental running time of an algorithm does not.[citation needed]

This should be contrasted with efficiency, which takes into account all kinds of resources – a combination (though not a trivial one) of complexity and overhead.[citation needed]

See also

Algorithmic efficiency


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Computing with Memory — refers to computing platforms where function response is stored in memory array, either one or two dimensional, in the form of lookup tables (LUTs) and functions are evaluated by retrieving the values from the LUTs. These computing platforms can… …   Wikipedia

  • Overhead projector — in operation during a classroom lesson An overhead projector is a variant of slide projector that is used to display images to an audience. Contents 1 Mechanism …   Wikipedia

  • computing — noun 1. the procedure of calculating; determining something by mathematical or logical methods • Syn: ↑calculation, ↑computation • Derivationally related forms: ↑computational (for: ↑computation), ↑compute …   Useful english dictionary

  • Kernel (computing) — A kernel connects the application software to the hardware of a computer In computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware… …   Wikipedia

  • Concurrent computing — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent c …   Wikipedia

  • Scheduling (computing) — This article is about processes assignment in operating systems. For other uses, see Scheduling (disambiguation). Scheduling is a key concept in computer multitasking, multiprocessing operating system and real time operating system designs.… …   Wikipedia

  • Fragmentation (computing) — In computer storage, fragmentation is a phenomenon in which storage space is used inefficiently, reducing storage capacity and in most cases reducing the performance. The term is also used to denote the wasted space itself. There are three… …   Wikipedia

  • Interpreter (computing) — In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language. An interpreter may be a program that either executes the source code directly translates source… …   Wikipedia

  • Parallel computing — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Data Intensive Computing — is a class of parallel computing applications which use a data parallel approach to processing large volumes of data typically terabytes or petabytes in size and typically referred to as Big Data. Computing applications which devote most of their …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”