Execution in
computer
A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as C ...
and software engineering is the process by which a
computer
A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as C ...
or
virtual machine reads and acts on the instructions of a
computer program. Each instruction of a program is a description of a particular action which must be carried out, in order for a specific problem to be solved. Execution involves repeatedly following a '
fetch–decode–execute' cycle for each instruction done by
control unit. As the executing machine follows the instructions, specific effects are produced in accordance with the
semantics of those instructions.
Programs for a computer may be executed in a
batch process without human interaction or a
user
Ancient Egyptian roles
* User (ancient Egyptian official), an ancient Egyptian nomarch (governor) of the Eighth Dynasty
* Useramen, an ancient Egyptian vizier also called "User"
Other uses
* User (computing), a person (or software) using an ...
may type
commands
Command may refer to:
Computing
* Command (computing), a statement in a computer language
* COMMAND.COM, the default operating system shell and command-line interpreter for DOS
* Command key, a modifier key on Apple Macintosh computer keyboards
* ...
in an
interactive session of an
interpreter. In this case, the "commands" are simply program instructions, whose execution is chained together.
The term run is used almost synonymously. A related meaning of both "to run" and "to execute" refers to the specific action of a user starting (or ''launching'' or ''invoking'') a program, as in "Please run the application."
Process
Prior to execution, a program must first be written. This is generally done in
source code, which is then compiled at
compile time (and statically linked at
link time
In computer science, link time refers to the period of time, during the creation of a computer program, in which a linker is being applied to that program. Link time occurs after compile time and before runtime (when a program is executed).
It i ...
) to produce an executable. This executable is then invoked, most often by an operating system, which loads the program into memory (
load time), possibly performs
dynamic linking, and then begins execution by moving control to the
entry point of the program; all these steps depend on the
Application Binary Interface of the operating system. At this point execution begins and the program enters
run time. The program then runs until it ends, either normal
termination
Termination may refer to:
Science
*Termination (geomorphology), the period of time of relatively rapid change from cold, glacial conditions to warm interglacial condition
*Termination factor, in genetics, part of the process of transcribing RNA ...
or a
crash.
Executable
''Executable code'', an ''executable file'', or an ''executable program'', sometimes simply referred to as an ''executable'' or
''binary'', is a list of instructions and data to cause a computer "to perform indicated tasks according to encoded
instructions
Instruction or instructions may refer to:
Computing
* Instruction, one operation of a processor within a computer architecture instruction set
* Computer program, a collection of instructions
Music
* Instruction (band), a 2002 rock band from Ne ...
", as opposed to a
data file that must be interpreted (
parsed) by a program to be meaningful.
The exact interpretation depends upon the use. "Instructions" is traditionally taken to mean
machine code instructions for a physical
CPU
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
. In some contexts, a file containing scripting instructions (such as
bytecode
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (norma ...
) may also be considered executable.
Context of execution
The context in which execution takes place is crucial. Very few programs execute on a
bare machine
In computer science, bare machine (or bare metal) refers to a computer executing instructions directly on logic hardware without an intervening operating system. Modern operating systems evolved through various stages, from elementary to the pre ...
. Programs usually contain implicit and explicit assumptions about resources available at the time of execution. Most programs execute within
multitasking operating system and
run-time libraries specific to the source language that provide crucial services not supplied directly by the computer itself. This supportive environment, for instance, usually decouples a program from direct manipulation of the computer peripherals, providing more general, abstract services instead.
Context switching
In order for programs and
interrupt handlers to work without interference and share the same hardware memory and access to the I/O system, in a
multitasking operating systems running on a digital system with a single CPU/MCU it is required to have some sort of software and hardware facilities to keep track of an executing processes data (memory page addresses, registers etc.) and to save and recover them back to the state they were in before they were suspended. This is achieved by a context switching.
The running programs are often assigned a
Process Context IDentifiers (PCID).
In Linux-based operating systems, a set of data stored in
registers is usually saved into a process descriptor in memory to implement switching of context.
PCIDs are also used.
Runtime system
A ''runtime system'', also called ''runtime environment'', primarily implements portions of an
execution model
A programming language consists of a grammar/syntax plus an execution model. The execution model specifies the behavior of elements of the language. By applying the execution model, one can derive the behavior of a program that was written in term ...
. This is not to be confused with the
runtime lifecycle phase of a program, during which the runtime system is in operation. When treating the ''runtime system'' as distinct from the ''runtime environment'' (RTE), the first may be defined as a specific part of the
application software (IDE) used for programming, a piece of software that provides the programmer a more convenient environment for running programs during their production (
testing
An examination (exam or evaluation) or test is an educational assessment intended to measure a test-taker's knowledge, skill, aptitude, physical fitness, or classification in many other topics (e.g., beliefs). A test may be administered verba ...
and similar), while the second (RTE) would be the very
instance
Instantiation or instance may refer to:
Philosophy
* A modern concept similar to ''participation'' in classical Platonism; see the Theory of Forms
* The instantiation principle, the idea that in order for a property to exist, it must be had by ...
of an execution model being applied to the developed program which is itself then run in the aforementioned ''runtime system''.
Most
programming languages have some form of runtime system that provides an environment in which programs run. This environment may address a number of issues including the
management of application
memory, how the program accesses
variable
Variable may refer to:
* Variable (computer science), a symbolic name associated with a value and whose associated value may be changed
* Variable (mathematics), a symbol that represents a quantity in a mathematical expression, as used in many ...
s, mechanisms for passing parameters between
procedure
Procedure may refer to:
* Medical procedure
* Instructions or recipes, a set of commands that show how to achieve some result, such as to prepare or make something
* Procedure (business), specifying parts of a business process
* Standard operat ...
s, interfacing with the
operating system, and otherwise. The
compiler makes assumptions depending on the specific runtime system to generate correct code. Typically the runtime system will have some responsibility for setting up and managing the
stack
Stack may refer to:
Places
* Stack Island, an island game reserve in Bass Strait, south-eastern Australia, in Tasmania’s Hunter Island Group
* Blue Stack Mountains, in Co. Donegal, Ireland
People
* Stack (surname) (including a list of people ...
and
heap
Heap or HEAP may refer to:
Computing and mathematics
* Heap (data structure), a data structure commonly used to implement a priority queue
* Heap (mathematics), a generalization of a group
* Heap (programming) (or free store), an area of memory f ...
, and may include features such as
garbage collection,
thread
Thread may refer to:
Objects
* Thread (yarn), a kind of thin yarn used for sewing
** Thread (unit of measurement), a cotton yarn measure
* Screw thread, a helical ridge on a cylindrical fastener
Arts and entertainment
* ''Thread'' (film), 2016 ...
s or other
dynamic features built into the language.
Instruction cycle
The ''instruction cycle'' (also known as the ''fetch–decode–execute cycle'', or simply the ''fetch-execute cycle'') is the cycle that the
central processing unit (CPU) follows from
boot-up
In computing, booting is the process of starting a computer as initiated via hardware such as a button or by a software command. After it is switched on, a computer's central processing unit (CPU) has no software in its main memory, so some ...
until the computer has shut down in order to process instructions. It is composed of three main stages: the fetch stage, the decode stage, and the execute stage.

In simpler CPUs, the instruction cycle is executed sequentially, each instruction being processed before the next one is started. In most modern CPUs, the instruction cycles are instead executed
concurrently, and often in
parallel
Parallel is a geometric term of location which may refer to:
Computing
* Parallel algorithm
* Parallel computing
* Parallel metaheuristic
* Parallel (software), a UNIX utility for running programs in parallel
* Parallel Sysplex, a cluster of IBM ...
, through an
instruction pipeline: the next instruction starts being processed before the previous instruction has finished, which is possible because the cycle is broken up into separate steps.
Interpreter
A system that executes a program is called an
interpreter of the program. Loosely speaking, an interpreter directly executes a program. This contrasts with a language
translator that converts a program from one language to another before it is executed.
Virtual machine
A ''virtual machine'' (''VM'') is the
virtualization/
emulation of a
computer system. Virtual machines are based on
computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination.
Virtual machines differ and are organized by their function, shown here:
*
System virtual machine
In computing, a system virtual machine is a virtual machine that provides a complete system platform and supports the execution of a complete operating system (OS). These usually Emulator, emulate an existing architecture, and are built with the ...
s (also termed
full virtualization VMs) provide a substitute for a real machine. They provide functionality needed to execute entire
operating systems. A
hypervisor uses
native execution to share and manage hardware, allowing for multiple environments which are isolated from one another, yet exist on the same physical machine. Modern hypervisors use
hardware-assisted virtualization, virtualization-specific hardware, primarily from the host CPUs.
* Process virtual machines are designed to execute computer programs in a platform-independent environment.
Some virtual machine emulators, such as
QEMU and
video game console emulators, are designed to also emulate (or "virtually imitate") different system architectures thus allowing execution of software applications and operating systems written for another
CPU
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
or architecture.
Operating-system-level virtualization allows the resources of a computer to be partitioned via the
kernel. The terms are not universally interchangeable.
References
See also
*
Executable
In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instruction (computer science), instructi ...
*
Run-time system
In computer programming, a runtime system or runtime environment is a sub-system that exists both in the computer where a program is created, as well as in the computers where the program is intended to be run. The name comes from the compile t ...
*
Runtime program phase
*
Program counter
The program counter (PC), commonly called the instruction pointer (IP) in Intel x86 and Itanium microprocessors, and sometimes called the instruction address register (IAR), the instruction counter, or just part of the instruction sequencer, is ...
{{DEFAULTSORT:Execution (Computing)
Computing terminology