Cтраница 3
В настоящее время подавляющее большинство универсальных вычислительных машин, или машин общего, назначения, объединены в семейства типов маШин разной производительности, объединенных единым принципом построения системы команд, единым способом связи с внешними устройствами и, следовательно, общим для всего семейства набором внешних устройств. Хорошо известны такие семейства машин общего назначения как IBM-360 / 370, ЕС ЭВМ ( Единая Система Электронных Вычислительных Машин), созданная содружеством социалистических стран, семейство машин высокой производительности фирмы CDC ( Контрол Дейта Корпо-рейшен), семейство машин фирмы Барроуз, семейство Система 4 английской фирмы ICL и ряд других семейств. Дальнейшее содержание этой книги как раз и будет посвящено рассказу о характерных особенностях перечисленных выше семейств. Поэтому сейчас мы остановимся лишь на самых общих характеристиках этих классов. [31]
В предыдущем параграфе мы видели, что, согласно серберовской теории реакций срыва, при высоких энергиях протоны и нейтроны должны вылетать преимущественно в направлении вперед. Появление 6 обусловлено импульсным распределением протонов или нейтронов в дейтроне. Барроуз, Гибсон и Ротблатт [ 188J измерили угловое распределение протонов, получающихся в реакции Ole ( d, p) О17 при энергии дейтронов 8 Мэв. Угловое распределение группы протонов, отвечающей первому возбужденному состоянию О17, имеет предсказываемый вид: интенсивность увеличивается с уменьшением угла. В угловом распределении группы протонов, отвечающей основному состоянию, наблюдается резкое уменьшение интенсивности вблизи направления вперед. [32]
Другой важный эффект работы ОС обусловлен наличием полного набора высокоуровневых языков программирования. Компиляторы, входящие теперь в состав некоторых ОС, обладают эффективностью, которая прежде могла быть достигнута только при программировании на символических компонующих языках. Фирма Барроуз, например, пишет свои ОС, компиляторы и фактически все системные программы на компиляторном языке - расширенном Алголе. Использование компиляторов значительно повышает производительность труда программиста и ускоряет разработку новых приложений. [33]
Система команд центрального процессора базируется на принципе магазинного обращения к памяти, на аппаратной реализации стека. В вершине стека могут находиться также не сами операнды, а ссылки на них или даже ссылки на процедуры, вычисляющие значения требуемого операнда. По принципам своего построения система команд центрального процессора близка к системе команд таких машин, как KDF-9 и Барроуз, структуру которых принято считать нетрадиционной. [34]
Такой способ записи был несовершенен и в дальнейшем не применялся. Барроуз ( США) получил патент на суммирующую записывающую клавишную машину, которую он построил в 1892 г. В это время начинается переход на клавишный набор чисел. [35]
Кобол-Барроуз является сильно развитой версией стандартного кобола-65. В эту версию языка включены средства для отладки программ и ряд других средств, учитывающих возможности аппаратуры, а именно: средства управления мультипроцессированием, динамическим распределением памяти, средства сегментирования программ и ряд других средств. Программа, записанная на входном языке высокого уровня, перфорируется и вводится в систему для последующей трансляции и исполнения. Математическое обеспечение машин Барроуз допускает несколько режимов: ввод, трансляцию и непосредственное исполнение; ввод программ и запись их в исходной символике для последующей трансляции и исполнения; ввод, трансляцию и запись оттранслированных программ, в библиотеку на дисках для последующего исполнения в динамике работы. [36]
Принципу стековой организации подчинена вся структура центрального процессора и система программирования. Система команд этих машин эквивалентна инверсной бесскобочной польской записи. Если арифметическое выражение записать в этой бесскобочной записи, то для того, чтобы его запрограммировать в системе команд машин Барроуз, достаточно имена операндов заменить на адреса их расположения в памяти, а символы операций - на коды соответствующих команд машины. Таким образом, выражение, развернутое в бесскобочную инверсную запись, по существу, является последовательностью команд для этих машин. [37]
Эта формула получена при допущении, что испарению не препятствуют молекулы другого вещества. Поскольку в реальных процессах испарившиеся молекулы при движении к поверхности конденсации сталкиваются с молекулами другого газа, значение D в большинстве случаев не достигается. С целью его коррекции вводят коэффициент испарения а, который учитывает остаточное давление другого газа. Очевидно, что значение а будет тем ближе к 1, чем ниже остаточное давление в дистилляторе. Барроуз [143] исследовал применимость формулы ( 181) и получил ряд полуэмпирических уравнений, которые лучше соответствуют различным условиям процесса молекулярной дистилляции. [38]
В машине всегда работает одна задача - главная управляющая программа. В соответствующие моменты времени, сообразуясь с внешней ситуацией и потоком поступающей информации, эта главная программа порождает параллельные вычислительные процессы - рабочие программы. Оканчиваясь, эти процессы передают управление снова главной управляющей программе. В структуре машин Барроуз предусмотрены соответствующие достаточно универсальные средства организации ветвления и параллельных процессов, которые обеспечивают прежде всего работу в режиме мультипрограммирования, организуемого главной управляющей программой. Эти же средства позволяют и сами рабочие программы организовывать в виде дерева параллельно исполняемых ветвей. [39]
В системе имеется небольшое дополнительное оборудование для периферии и памяти, связанное с основной стойкой. Главная память размера в 8К слов по 64 разряда в слове представляет собой ферритовую память с циклом в 2 5 мксек. Она разбита на 32 страницы по 256 слов в странице. Оперативная страничная память находится на малом диске с фиксированными головками фирмы Барроуз и разделена на 500 страниц. Массовая память страниц находится на большом диске фирмы Дейта Продактс и разбита на 50000 страниц. [40]
Стоит упомянуть и небольшую паузу в этой масштабной разработке. Новая IBM-360 предлагала только ассемблер и, естественно, Фортран. Ни то, ни другое ни у меня, ни у моих студентов не вызывало особой симпатии как инструмент для создания компилятора. Поэтому я набрался храбрости ввести еще один новый язык, на котором мог бы быть описан компилятор Алгола: некий компромисс между Алголом и возможностями, предоставляемыми ассемблером, он должен был служить машинным языком, структура операторов и описание команд которого напоминают Алгол. Примечательно, что описание языка было подготовлено за пару недель; я написал кросскомпилятор для компьютера Барроуз В-5000 за четыре месяца, а один прилежный студент примерно за такой же отрезок времени переписал его для IBM-360. [41]
Всякое прерывание программы, связанное с запросом к операционной системе или возникшее в результате появления внешних событий, интерпретируется в машинах Барроуз как обращение к некой подпрограмме, чаще всего работающей от имени прерванной программы. Соответственно в оперативной памяти всегда присутствует стек управляющей программы и словарь ее программных сегментов. Очень важной функцией механизма стека является хранение истории переходов от выполнения одних процедур к другим, точнее, хранение истории вложенности одних процедур или блоков в другие. Блочная структура алгола предполагает, что внутренний блок может пользоваться переменными, описанными во внешних блоках, и может передавать управление на метку, локализованную во внешнем блоке, причем эти переменные или метки могут находиться в блоках, отстоящих по уровню вложенности на несколько ступеней. В транслирующих системах традиционных машин функции управления доступом к данным и меткам блоков внешних уровней возлагаются на административные системы. В машинах Барроуз эти функции административных систем переложены, главным образом, на аппаратуру. [42]