Введение
Выполнение программы компьютером. Исполнение в компьютерной и программной инженерии — это процесс, посредством которого компьютер или виртуальная машина интерпретирует и выполняет инструкции компьютерной программы. Каждая инструкция программы представляет собой описание конкретного действия, которое необходимо выполнить для решения определенной задачи. Исполнение включает в себя многократное повторение цикла "выборка-декодирование-исполнение" для каждой инструкции, выполняемой блоком управления. По мере выполнения инструкций машиной, создаются определенные эффекты в соответствии с семантикой этих инструкций. Программы для компьютера могут выполняться пакетно, без участия человека, или пользователь может вводить команды в интерактивной сессии интерпретатора. В этом случае "команды" — это просто инструкции программы, последовательное выполнение которых связано между собой. Термин "запуск" используется почти как синоним. Связанное значение слов "запускать" и "выполнять" относится к конкретному действию пользователя по старту (или запуску, или вызову) программы, например: "Пожалуйста, запустите приложение".
Execution in computer and software engineering is the process by which a computer or virtual machine interpret 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 may type commands 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."
Контекст исполнения
Контекст, в котором происходит выполнение, имеет решающее значение. Очень мало программ выполняются непосредственно на аппаратном обеспечении. Программы обычно содержат как неявные, так и явные предположения о ресурсах, доступных во время выполнения. Большинство программ выполняются в многозадачной операционной системе и используют библиотеки времени выполнения, специфичные для языка программирования, которые предоставляют критически важные сервисы, не предоставляемые непосредственно компьютером. Эта поддерживающая среда, например, обычно отвязывает программу от непосредственного управления компьютерными периферийными устройствами, предоставляя вместо этого более общие и абстрактные сервисы.
Переключение контекста
Для того чтобы программы и обработчики прерываний работали без взаимных помех и совместно использовали общую аппаратную память и доступ к системе ввода-вывода, в многозадачных операционных системах, работающих на цифровой системе с одним ЦП/МЦП, необходимо наличие программных и аппаратных средств для отслеживания данных выполняющихся процессов (адреса страниц памяти, регистры и т.д.) и сохранения этих данных с последующим восстановлением в состояние, в котором они находились до приостановки. Это достигается посредством переключения контекста. Работающим программам часто присваиваются идентификаторы контекста процесса (PCID). В операционных системах на базе Linux набор данных, хранящихся в регистрах, обычно сохраняется в дескрипторе процесса в памяти для реализации переключения контекста.
Переводчик
Система, выполняющая программу, называется интерпретатором этой программы. Говоря упрощенно, интерпретатор выполняет программу напрямую. Это отличается от транслятора, который преобразует программу из одного языка в другой перед её выполнением.