Cтраница 2
Следовательно, программы могут пользоваться макрокомандами среды выполнения, служащими для запросов дополнительных областей памяти, обращения к независимым модулям, не присоединенным к основным программам ни при компиляции, ни при редактировании связей, ни при загрузке, а также для динамического распределения и последующего освобождения устройств и наборов данных. [16]
В последние 10 лет вопросам структуры среды выполнения уделялось серьезное внимание. В основном это было связано с появлением понятия структурного программирования и созданием языков высокого уровня, ориентированных на написание системных программ. Довольно значительная группа разработчиков поставила себе целью показать, что понятия, относящиеся к операционной системе, могут быть строго регуляризованы и структурированы, а сама система собрана по фиксированным правилам из достаточно простых алгоритмов. [17]
При определении состава и содержания макрокоманд среды выполнения приходится решать не только вопросы о том, какие функции следует помещать в системные области, в области прикладных программ и в специальные общие области памяти. Требуют своего решения и проблемы, напоминающие те, которые были рассмотрены при обсуждении командных языков. [18]
Какие же функции следует включать в среду выполнения, а какие - непосредственно в программу. В общем, в среду выполнения разумно включать лишь те функции, которые с наибольшей вероятностью, а значит, и частотой будут использоваться более чем одной программой из числа входящих в смесь. Функции, позволяющие координировать совместное использование ресурсов независимыми программами, конечно, тоже должны включаться в среду выполнения. [19]
Последним из представляющих интерес способов классификации функций среды выполнения мы рассмотрим здесь классификацию в соответствии с источником. [20]
![]() |
Описания в Модуле-2. [21] |
Переменные модуля создаются всякий раз, как активируется среда выполнения модуля. [22]
Подсистема же в нашем представлении есть некоторое расширение среды выполнения, предоставляющее полный комплекс высокоуровневых услуг программам, выполняющимся под ее управлением. Кроме того, подсистема может распределять ресурсы, выделенные ей и ее заданиям основной системой. Вполне вероятно, что подсистема в состоянии брать на себя ответственность за предоставление подчиненным ей заданиям областей памяти, процессорного времени и наборов данных. Она может иметь свой командный язык, поддерживать несколько языков программирования, а также снабжать пользователей специальными утилитами, выполняющимися только в ее пределах. [23]
Определенные функции предварительной обработки могут быть перенесены в среду выполнения для вызова с помощью макрокоманд, напоминающих GETMAIN. Но в отличие от GETMAIN, запускающей примитив, эти макрокоманды используются для запуска обслуживающих процессов. [24]
Для программ, которые передают специальные указания о среде выполнения процесса ( см. гл. [25]
Решение вопроса о том, какие функции следует включать в среду выполнения, а какие нет, во многом зависит от назначения и структуры операционных систем. В интерактивных системах реального времени различия между этапами обработки программ значительно менее ярко выражены, чем в пакетных, и функции предварительной обработки, постобработки и среды выполнения почти сливаются. В будущем, вероятно, все программисты смогут работать за отдельными терминалами, что позволит им в произвольные моменты времени выдавать заказы на сервисное обслуживание и требовать выполнения определенных прикладных программ. Уже сегодня Multics и некоторые другие системы обеспечивают существенное сходство между машинным языком, языком макрокоманд среды выполнения, командным языком и языками программирования. Программисты все более склоняются к мысли о том, что командные языки должны в соответствии с потребностями пользователей допускать как интерпретацию, так и компиляцию. [26]
Мы уже много раз обращали внимание читателяна ( тх, что среда выполнения фактически является реализацией мегамашиньт, предоставляющей пользователям помимо системы стандартных машинных команд специальные макрокоманды. Независимо от структуры поддержки среды выполнения прикладная программа всегда может обратиться к системе с конкретными запросами с помощью макрокоманд, переводящих машину в режим управления, что позволяет использовать некоторые, обычно защищенные, области памяти и выполнять некоторые, обычно недоступные, команды. [27]
Значение очередей для координации выполнения программ настолько велико, что в среду выполнения операционных систем нередко включается функция, позволяющая создавать очереди обращений к программам, в том числе и прикладным. Многим механизмам операционной системы самим приходится вставать в очереди на обслуживание другими ее механизмами. [28]
Для явного обращения к элементам файловой системы в Multics предусмотрен специальный язык среды выполнения, основанный на описанной иерархической структуре. [29]
В целом по мере повышения производительности вычислительных машин естественно ожидать возрастания удельного веса среды выполнения, а массовый переход к работе в интерактивном режиме должен привести к созданию единого и более последовательного взгляда на языки программирования в самом широком смысле этого слова. [30]