Jump to content

Исполнение (вычисление)

(Перенаправлено из ошибок времени выполнения )

Исполнение в компьютерной и программной инженерии — это процесс, посредством которого компьютер или виртуальная машина интерпретирует инструкции компьютерной программы и действует в соответствии с ними . Каждая инструкция программы представляет собой описание конкретного действия, которое необходимо выполнить для решения конкретной задачи. Выполнение включает в себя многократное выполнение цикла « выборка-декодирование-выполнение » для каждой инструкции, выполняемой блоком управления . Поскольку исполняющая машина следует инструкциям, определенные эффекты производятся в соответствии с семантикой этих инструкций.

Программы для компьютера могут выполняться в пакетном режиме участия человека, или пользователь может вводить команды в интерактивном сеансе интерпретатора без . В этом случае «команды» — это просто программные инструкции, выполнение которых связано в цепочку.

Термин «бег» используется почти как синоним. Связанное значение слов «запустить» и «выполнить» относится к конкретному действию пользователя, запускающему (или запускающему или вызывающему ) программу, например «Пожалуйста, запустите приложение».

Перед выполнением программу необходимо сначала написать. Обычно это делается в исходном коде , который затем компилируется во время компиляции (и статически компонуется во время компоновки ) для создания исполняемого файла. Затем этот исполняемый файл вызывается, чаще всего операционной системой, которая загружает программу в память ( время загрузки ), возможно, выполняет динамическое связывание , а затем начинает выполнение путем перемещения управления к точке входа программы; все эти шаги зависят от двоичного интерфейса приложения операционной системы. В этот момент начинается выполнение и программа переходит в режим выполнения . Затем программа работает до тех пор, пока не завершится: либо при обычном завершении , либо при аварийном завершении .

Исполняемый файл

[ редактировать ]

Исполняемый код , исполняемый файл или исполняемая программа , иногда называемые просто исполняемым файлом или двоичный файл — это список инструкций и данных, которые заставляют компьютер «выполнять указанные задачи в соответствии с закодированными инструкциями ». [1] в отличие от файла данных , который должен быть интерпретирован ( анализирован ) программой, чтобы иметь смысл.

Точная интерпретация зависит от использования. Под «инструкциями» традиционно понимаются инструкции машинного кода для физического процессора . [2] В некоторых контекстах файл, содержащий инструкции сценария (например, байт-код ), также может считаться исполняемым.

Контекст исполнения

[ редактировать ]

Решающее значение имеет контекст, в котором происходит исполнение. Очень немногие программы выполняются на «голом» компьютере . Программы обычно содержат неявные и явные предположения о ресурсах, доступных на момент выполнения. Большинство программ выполняются в рамках многозадачной операционной системы и библиотек времени выполнения, специфичных для исходного языка, которые предоставляют важные услуги, не предоставляемые непосредственно самим компьютером. Например, эта вспомогательная среда обычно отделяет программу от прямого манипулирования компьютерной периферией, предоставляя вместо этого более общие, абстрактные услуги.

Переключение контекста

[ редактировать ]

Чтобы программы и обработчики прерываний работали без помех и использовали одну и ту же аппаратную память и доступ к системе ввода-вывода, в многозадачных операционных системах, работающих в цифровой системе с одним ЦП/МК, необходимо иметь своего рода программные и аппаратные средства для отслеживания данных выполняющихся процессов (адресов страниц памяти, регистров и т. д.), а также для их сохранения и восстановления в состояние, в котором они находились до приостановки. Это достигается переключением контекста. [3] : 3.3  [4] Запущенным программам часто присваиваются идентификаторы контекста процесса (PCID).

В операционных системах на базе Linux набор данных, хранящихся в регистрах , обычно сохраняется в дескрипторе процесса в памяти для реализации переключения контекста. [3] PCID также используются.

Время выполнения

[ редактировать ]

Время выполнения , время выполнения или время выполнения — это заключительная фаза программы , компьютерной жизненного цикла в которой код выполняется на центральном процессоре компьютера (ЦП) как машинный код . Другими словами, «время выполнения» — это фаза выполнения программы.

Ошибка времени выполнения обнаруживается после или во время выполнения (состояния выполнения) программы, тогда как ошибка времени компиляции обнаруживается компилятором до того, как программа когда-либо будет выполнена. Проверка типов , выделение регистров , генерация кода и оптимизация кода обычно выполняются во время компиляции, но могут выполняться и во время выполнения в зависимости от конкретного языка и компилятора. Существует множество других ошибок времени выполнения, которые по-разному обрабатываются разными языками программирования , например, деления на ноль ошибки , ошибки домена, ошибки индекса массива за пределами границ , арифметические ошибки переполнения, несколько типов ошибок переполнения и переполнения и многие другие ошибки времени выполнения, которые обычно считаются как программные ошибки, которые могут или не могут быть обнаружены и обработаны каким-либо конкретным компьютерным языком.

Детали реализации

[ редактировать ]

Когда программа должна быть выполнена, загрузчик сначала выполняет необходимую настройку памяти и связывает программу с любыми необходимыми динамически подключаемыми библиотеками программы , а затем выполнение начинается с точки входа . В некоторых случаях в языке или реализации эти задачи будут выполняться средой выполнения языка, хотя это необычно для основных языков в распространенных потребительских операционных системах.

Некоторая отладка программы может выполняться (или более эффективна и точна, если она выполняется) во время выполнения. логические ошибки и проверка границ массива Примерами являются . По этой причине некоторые программные ошибки не обнаруживаются до тех пор, пока программа не будет протестирована в производственной среде с реальными данными, несмотря на сложную проверку во время компиляции и предварительное тестирование. В этом случае конечный пользователь может столкнуться с сообщением об «ошибке выполнения».

Ошибки приложения (исключения)

[ редактировать ]

Обработка исключений — это одна из функций языка, предназначенная для обработки ошибок во время выполнения, обеспечивающая структурированный способ обнаружения совершенно неожиданных ситуаций, а также предсказуемых ошибок или необычных результатов без необходимости встроенной проверки ошибок, необходимой для языков без нее. Более поздние достижения в механизмах выполнения позволяют автоматизировать обработку исключений , которая предоставляет информацию об отладке «основной причины» для каждого интересующего исключения и реализуется независимо от исходного кода путем подключения специального программного продукта к механизму времени выполнения.

Система выполнения

[ редактировать ]

Система времени выполнения , также называемая средой выполнения , в основном реализует части модели выполнения . [ нужны разъяснения ] Это не следует путать с этапом жизненного цикла программы, во время которого работает система времени выполнения. Если рассматривать систему времени выполнения отдельно от среды выполнения (RTE), первую можно определить как определенную часть прикладного программного обеспечения (IDE), используемого для программирования , - часть программного обеспечения, которая предоставляет программисту более удобную среду для запуска программ. во время их производства ( тестирование и тому подобное), тогда как второй (RTE) будет самим экземпляром модели выполнения, применяемой к разработанной программе, которая затем запускается в вышеупомянутой системе времени выполнения .

Большинство языков программирования имеют ту или иную форму системы времени выполнения, которая обеспечивает среду, в которой выполняются программы. Эта среда может решать ряд проблем, включая управление приложения памятью , способ доступа программы к переменным , механизмы передачи параметров между процедурами , взаимодействие с операционной системой и многое другое. Компилятор . делает предположения в зависимости от конкретной системы выполнения для создания правильного кода Обычно система времени выполнения несет некоторую ответственность за настройку и управление стеком и кучей и может включать в себя такие функции, как сбор мусора , потоки или другие динамические функции, встроенные в язык. [5]

Цикл инструкций

[ редактировать ]

Цикл инструкций (также известный как цикл выборки-декодирования-выполнения или просто цикл выборки-выполнения ) — это цикл, которому следует центральный процессор (ЦП) с момента загрузки до момента выключения компьютера для обработки инструкций. . Он состоит из трех основных этапов: этапа выборки, этапа декодирования и этапа выполнения.

Это простая диаграмма, иллюстрирующая отдельные этапы цикла выборки-декодирования-выполнения.

В более простых процессорах цикл инструкций выполняется последовательно, каждая инструкция обрабатывается перед запуском следующей. В большинстве современных процессоров циклы команд вместо этого выполняются одновременно , а часто и параллельно , через конвейер команд : следующая инструкция начинает обрабатываться до того, как завершится предыдущая инструкция, что возможно, поскольку цикл разбит на отдельные шаги. [6]

Устный переводчик

[ редактировать ]

Система, выполняющая программу, называется интерпретатором программы. Грубо говоря, интерпретатор непосредственно выполняет программу. Это контрастирует с языковым переводчиком , который преобразует программу с одного языка на другой перед ее выполнением.

Виртуальная машина

[ редактировать ]

Виртуальная машина ( ВМ ) – это виртуализация / эмуляция компьютерной системы . Виртуальные машины основаны на компьютерной архитектуре и обеспечивают функциональность физического компьютера. Их реализация может включать специализированное оборудование, программное обеспечение или их комбинацию.

Виртуальные машины различаются и организованы по своим функциям, показанным здесь:

Некоторые эмуляторы виртуальных машин, такие как QEMU и эмуляторы игровых консолей , также предназначены для эмуляции (или «виртуальной имитации») различных системных архитектур, что позволяет выполнять программные приложения и операционные системы, написанные для другого процессора или архитектуры. Виртуализация на уровне ОС позволяет разделить ресурсы компьютера через ядро . Эти термины не являются универсально взаимозаменяемыми.

См. также

[ редактировать ]
  1. ^ «исполняемый» . Интернет-словарь Мерриам-Вебстера . Мерриам-Вебстер . Проверено 19 июля 2008 г.
  2. ^ «Машинные инструкции» . Гики для гиков . 03.11.2015 . Проверено 18 сентября 2019 г.
  3. ^ Перейти обратно: а б Бовет, Дэниел П. (2005). Понимание ядра Linux . Марко Чесати (3-е изд.). Севастополь, Калифорния: О'Рейли. ISBN  0-596-00565-2 . OCLC   64549743 .
  4. ^ «Разница между свопингом и переключением контекста» . Гики для гиков . 10.06.2021 . Проверено 10 августа 2022 г.
  5. ^ Ахо, Альфред В .; Лам, Моника Син-Линг ; Сетхи, Рави ; Уллман, Джеффри Дэвид (2007). Составители: принципы, методы и инструменты (2-е изд.). Бостон, Массачусетс, США: Pearson Education . п. 427 . ISBN  978-0-321-48681-3 .
  6. ^ Кристал Чен, Грег Новик и Кирк Шимано (2000). «Трубопровод» . Проверено 26 июня 2019 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: eda7ed521be7e744deef4db8e47f51a7__1720460220
URL1:https://arc.ask3.ru/arc/aa/ed/a7/eda7ed521be7e744deef4db8e47f51a7.html
Заголовок, (Title) документа по адресу, URL1:
Execution (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)