~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 96B16EC2ACD975087FCF1D722EC00570__1715215800 ✰
Заголовок документа оригинал.:
✰ Runtime system - Wikipedia ✰
Заголовок документа перевод.:
✰ Система выполнения — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Runtime_environment ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/96/70/96b16ec2acd975087fcf1d722ec00570.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/96/70/96b16ec2acd975087fcf1d722ec00570__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 09:16:22 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 9 May 2024, at 03:50 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Система выполнения — Википедия Jump to content

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

Из Википедии, бесплатной энциклопедии
(Перенаправлено из среды выполнения )

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

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

Обзор [ править ]

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

Согласно этому определению, практически каждый язык имеет систему времени выполнения, включая компилируемые языки , интерпретируемые языки и встроенные предметно-ориентированные языки . Даже API автономные модели выполнения, вызываемые , такие как Pthreads ( POSIX потоки ), имеют систему времени выполнения, которая реализует поведение модели выполнения.

Большинство научных статей по системам времени выполнения сосредоточено на деталях реализации параллельных систем времени выполнения. Ярким примером системы параллельного выполнения является Cilk , популярная модель параллельного программирования. [2] Инструментарий прототипа среды выполнения был создан для упрощения создания параллельных систем времени выполнения. [3]

Помимо поведения модели выполнения, система времени выполнения может также выполнять вспомогательные услуги, такие как проверка типов , отладка или кода генерация и оптимизация . [4]

сравнение концепций, аналогичных системе времени выполнения
Тип Описание Примеры
Среда выполнения Программная платформа , предоставляющая среду для выполнения кода. Node.js , .NET Framework
Двигатель Компонент среды выполнения, который выполняет код путем его компиляции или интерпретации. Движок JavaScript в веб-браузерах, виртуальная машина Java
Устный переводчик Тип движка, который читает и выполняет код построчно, без предварительной компиляции всей программы. CPython Интерпретатор , Ruby MRI , JavaScript (в некоторых случаях)
JIT-интерпретатор Тип интерпретатора, который динамически компилирует код в машинные инструкции во время выполнения, оптимизируя код для более быстрого выполнения. V8 , PyPy интерпретатор

Связь со средами выполнения [ править ]

Система выполнения также является шлюзом, через который работающая программа взаимодействует со средой выполнения . Среда выполнения включает в себя не только доступные значения состояния, но и активные сущности, с которыми программа может взаимодействовать во время выполнения. Например, переменные среды являются функциями многих операционных систем и являются частью среды выполнения; работающая программа может получить к ним доступ через систему времени выполнения. Аналогичным образом, аппаратные устройства, такие как диски или приводы DVD, являются активными объектами, с которыми программа может взаимодействовать через систему выполнения.

Одним из уникальных применений среды выполнения является ее использование в операционной системе, которая позволяет только ей работать. Другими словами, от загрузки до выключения вся ОС предназначена только для приложений, работающих в этой среде выполнения. Любой другой код, который попытается запустить, или любые сбои в приложениях приведут к нарушению среды выполнения. Нарушение среды выполнения, в свою очередь, приводит к выходу из строя ОС, останавливая всю обработку и требуя перезагрузки. Если загрузка осуществляется из постоянной памяти, создается чрезвычайно безопасная, простая система с одной задачей.

Примеры таких непосредственно связанных систем выполнения включают в себя:

Примеры [ править ]

Система времени выполнения языка C представляет собой особый набор инструкций, вставляемых компилятором в исполняемый образ. Помимо прочего, эти инструкции управляют стеком процесса, создают место для локальных переменных и копируют параметры вызова функции на вершину стека.

Часто не существует четких критериев для определения того, какое языковое поведение является частью самой системы выполнения, а какое может определяться какой-либо конкретной исходной программой. Например, в C настройка стека является частью системы времени выполнения. Оно не определяется семантикой отдельной программы, поскольку поведение глобально инвариантно: оно сохраняется при всех выполнениях. Такое систематическое поведение реализует модель выполнения языка, а не реализацию семантики конкретной программы (в которой текст напрямую преобразуется в код, вычисляющий результаты).

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

Другим примером является использование интерфейса прикладного программирования (API) для взаимодействия с системой выполнения. Вызовы этого API выглядят так же, как вызовы обычной программной библиотеки , однако в какой-то момент во время вызова модель выполнения меняется. Система времени выполнения реализует модель выполнения, отличную от модели языка, на котором написана библиотека. Человек, читающий код обычной библиотеки, сможет понять поведение библиотеки, просто зная язык, на котором она написана. Однако человек, читающий код API, который вызывает систему времени выполнения, не сможет понять поведение вызова API, просто зная язык, на котором был написан вызов. В какой-то момент, с помощью некоторого механизма, модель выполнения перестает быть моделью языка, на котором написан вызов, и переключается на модель выполнения, реализуемую средой выполнения. система. Например, инструкция ловушки — это один из методов переключения моделей выполнения. Именно это отличие отличает модель выполнения, вызываемую API, например Pthreads, от обычной программной библиотеки. И вызовы Pthreads, и вызовы программной библиотеки вызываются через API, но поведение Pthreads невозможно понять с точки зрения языка вызова. Скорее, вызовы Pthreads приводят в действие внешнюю модель выполнения, которая реализуется системой времени выполнения Pthreads (этой системой времени выполнения часто является ядро ​​ОС).

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

Расширенные возможности [ править ]

Некоторые компилируемые или интерпретируемые языки предоставляют интерфейс, который позволяет коду приложения напрямую взаимодействовать с системой времени выполнения. Примером является Threadкласс на языке Java . Класс позволяет коду (анимированному одним потоком) выполнять такие действия, как запуск и остановка других потоков. Обычно основные аспекты поведения языка, такие как планирование задач и управление ресурсами, недоступны таким образом.

Поведения более высокого уровня, реализуемые системой выполнения, могут включать в себя такие задачи, как рисование текста на экране или подключение к Интернету. Часто операционные системы также обеспечивают такое поведение, и, если это возможно, система времени выполнения реализуется как уровень абстракции , который преобразует вызов системы времени выполнения в вызов операционной системы. Это скрывает сложность или различия в услугах, предлагаемых разными операционными системами. Это также означает, что ядро ​​ОС само по себе можно рассматривать как систему времени выполнения, а набор вызовов ОС, вызывающих поведение ОС, можно рассматривать как взаимодействие с системой времени выполнения.

В пределе система времени выполнения может предоставлять такие службы, как машина с P-кодом или виртуальная машина процессора , которые скрывают даже набор команд . Этому подходу следуют многие интерпретируемые языки, такие как AWK , и некоторые языки, такие как Java , которые предназначены для компиляции в некоторый машинно-независимый промежуточный код представления (например, байт-код ). Такое расположение упрощает задачу реализации языка и его адаптации к различным машинам, а также повышает эффективность сложных функций языка, таких как рефлексивное программирование . Это также позволяет выполнять одну и ту же программу на любой машине без явного этапа перекомпиляции — функция, которая стала очень важной с момента распространения Всемирной паутины . Чтобы ускорить выполнение, в некоторых системах времени выполнения предусмотрена своевременная компиляция в машинный код.

Современный аспект систем времени выполнения — это поведение параллельного выполнения, такое как поведение, демонстрируемое конструкциями мьютексов в Pthreads и конструкциями параллельных секций в OpenMP . Система времени выполнения с таким поведением параллельного выполнения может быть модульной в соответствии с подходом прото-среды выполнения.

История [ править ]

Яркими ранними примерами систем времени выполнения являются интерпретаторы BASIC и Lisp . Эти среды также включали сборщик мусора . Форт — ранний пример языка, предназначенного для компиляции в код промежуточного представления; его система времени выполнения представляла собой виртуальную машину, интерпретировавшую этот код. Другой популярный, хотя и теоретический, пример — Дональда Кнута компьютер MIX .

В языках C и более поздних версиях, поддерживающих динамическое распределение памяти, система времени выполнения также включала библиотеку, которая управляла пулом памяти программы.

В объектно-ориентированных языках программирования система времени выполнения часто также отвечала за динамическую проверку типов и разрешение ссылок на методы.

См. также [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б Ахо, Альфред В .; Лам, Моника Син-Линг ; Сетхи, Рави ; Уллман, Джеффри Дэвид (2007). Составители: принципы, методы и инструменты (2-е изд.). Бостон, Массачусетс, США: Pearson Education . п. 427 . ISBN  978-0-321-48681-3 . Компилятор должен взаимодействовать с операционной системой и другим системным программным обеспечением для поддержки этих абстракций на целевой машине.
  2. ^ Блюмофе, Роберт Дэвид [на немецком языке] ; Йорг, Кристофер Ф.; Кушмаул, Брэдли С.; Лейзерсон, Чарльз Э.; Рэндалл, Кейт Х.; Чжоу, Юли (август 1995 г.). «Cilk: эффективная многопоточная система выполнения». Материалы пятого симпозиума ACM SIGPLAN «Принципы и практика параллельного программирования» . Ассоциация вычислительной техники (ACM). стр. 207–216. дои : 10.1145/209936.209958 . ISBN  9780897917001 . S2CID   221936412 .
  3. ^ Институт исследований открытого исходного кода (2011). «Добро пожаловать на домашнюю страницу набора инструментов Proto-Runtime Toolkit» . Набор инструментов Proto-Runtime Toolkit (PRT) . Архивировано из оригинала 11 февраля 2020 г. Проверено 11 января 2020 г.
  4. ^ Аппель, Эндрю Уилсон (май 1989 г.). «Система выполнения» (PDF) . Университет Принстон . Архивировано из оригинала (PDF) 30 декабря 2013 г. Проверено 30 декабря 2013 г.
  5. ^ «Посмотрите, что нового в библиотеке приложений CP/M для IBM PC — предложение экономии времени — получите Concurrent CP/M бесплатно» (PDF) (флаер о продукте). Пасифик Гроув, Калифорния, США: Digital Research, Inc., 1983. Архивировано (PDF) из оригинала 11 февраля 2020 г. Проверено 11 февраля 2020 г. […] SpeedStart упрощает использование нашего программного обеспечения. Все программное обеспечение в библиотеке приложений CP/M содержит новую версию операционной системы CP/M SpeedStart , встроенную прямо на диск с программой. Все, что вам нужно сделать, чтобы использовать эти приложения, — это вставить диск в ваш IBM PC , включить систему, и все готово. Это избавляет от необходимости загружать отдельную операционную систему, менять диски и загружать прикладные программы. Программное обеспечение SpeedStart из библиотеки приложений CP/M также: […] Предоставляет вам бесплатную рабочую версию CP/M […] Устраняет необходимость установки каждой новой прикладной программы […] Обеспечивает совместимость с программами Research Digital мощная 16-битная операционная система CP/M-86 и современная многозадачная система. CP/M Параллельная операционная система . […]
  6. ^ «DRI поставляет 128-тысячную версию логотипа Dr. Logo» (PDF) . Micro Notes — Техническая информация о продуктах Digital Research . Том. 2, нет. 2. Пасифик Гроув, Калифорния, США: Digital Research, Inc., май 1984 г., с. 4. СЗВ-106-002. Архивировано (PDF) из оригинала 11 февраля 2020 г. Проверено 11 февраля 2020 г. […] Dr. Logo впервые появился на розничном рынке осенью 1983 года для IBM PC и поднялся на вершину Hot List Softsel . Розничная версия включала SpeedStart CP/M , сокращенную версию CP/M , которая загружается автоматически при включении системы. […] [1]
  7. ^ Digital Research Inc. (February 1984). "Introducing software for the IBM PC with a $350 bonus!". BYTE (Advertisement). Vol. 9, no. 2. pp. 216–217. Retrieved 2013-10-22. [2][3]
  8. ^ Digital Research Inc. (7 февраля 1984 г.). «Представляем программное обеспечение для IBM PC с бонусом в 350 долларов!» . Журнал ПК (реклама). Том. 3, нет. 2. PC Communications Corp., стр. 50–51. ISSN   0745-2500 . Архивировано из оригинала 11 февраля 2020 г. Проверено 11 февраля 2020 г.
  9. ^ Digital Research Inc. (декабрь 1983 г.). «Представляем программное обеспечение для IBM PC с бонусом в 350 долларов!» . Журнал ПК (реклама). Том. 2, нет. 7. PC Communications Corp., стр. 306–307. ISSN   0745-2500 . Архивировано из оригинала 11 февраля 2020 г. […] Представляем SpeedStart — эксклюзивную программную систему для загрузки и запуска. Библиотека приложений CP/M предлагает больше, чем просто лучшее IBM PC в отрасли программное обеспечение . Каждое из наших приложений обеспечивает непревзойденное удобство нашей эксклюзивной однодисковой системы SpeedStart. SpeedStart — это специальная версия мощной операционной системы CP/M-86 , встроенная в каждый из наших дисков с программным обеспечением. Когда вы будете готовы к работе, просто загрузите диск, включите свой IBM PC и вперед! SpeedStart устраняет трудоемкую задачу загрузки отдельного рабочего диска и последующей «установки» программного обеспечения. Фактически, система SpeedStart позволяет вам работать быстрее и проще, чем любое другое программное обеспечение, доступное сегодня. И самое главное, это ваше без каких-либо дополнительных затрат. Более того, SpeedStart можно обойти и запустить программное обеспечение под управлением операционной системы IBM PC будущего — замечательной многозадачной системы. Параллельный CP/M . […]
  10. ^ Перейти обратно: а б с Крауттер, Томас; Барнс, Крис Дж. (14 июня 2006 г.) [29 декабря 1999 г.]. «ГЕМ/4» . Разработка ГЕМ . Архивировано из оригинала 16 марта 2013 г. Проверено 12 января 2020 г. […] Операционная система Artline 2 называлась GEM/4 […] все изменения в GEM/4 были внесены в сотрудничестве с Ли Лоренценом и Доном Хейскеллом, чтобы сохранить совместимость с VenturaPublisher . […]
  11. ^ Эллиотт, Джон К. (9 мая 1999 г.). «Сравнение GEM и ViewMAX» . Seasip.info . Архивировано из оригинала 07.11.2016 . Проверено 7 ноября 2016 г.
  12. ^ Пол, Матиас Р. (13 апреля 1997 г.) [1993]. DRDOS6UN.TXT - Краткое изложение документированных и недокументированных возможностей DR DOS 6.0 (на немецком языке) (60-е изд.). Архивировано из оригинала 07.11.2016 . Проверено 7 ноября 2016 г. {{cite book}}: |work= игнорируется ( помогите )
  13. ^ Пол, Маттиас Р. (07.06.1997) [1994]. NWDOS7UN.TXT - Краткое изложение документированных и недокументированных возможностей Novell DOS 7 (на немецком языке) (85-е изд.). Архивировано из оригинала 07.11.2016 . Проверено 7 ноября 2016 г. {{cite book}}: |work= игнорируется ( помогите )
  14. ^ Георгиев, Лучезар И. (2 ноября 2008 г.). «Рабочая версия 4DOS, BATCOMP и пакетное шифрование файлов» . Архив группы новостей Narkive . Группа новостей : comp.os.msdos.4dos . Архивировано из оригинала 11 января 2020 г. Проверено 11 января 2020 г.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 96B16EC2ACD975087FCF1D722EC00570__1715215800
URL1:https://en.wikipedia.org/wiki/Runtime_environment
Заголовок, (Title) документа по адресу, URL1:
Runtime system - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)