книги из ГПНТБ / Королев, Л. Н. Структуры ЭВМ и их математическое обеспечение учебное пособие
.pdfцентрального процессора в этом режиме с «закрытыми глазами», нужно заботиться о том, чтобы как можно ско рее «открыть» прерывания.
В диспетчере принята следующая логика, уменьшаю щая вероятность потери прерываний. Любая программа, реагирующая на конкретную причину прерываний, со стоит из двух блоков: блока минимально необходимой реакции, идущего с закрытым прерыванием, и блока,
Входошпрерывания
• УпряшыВшшв
Нет
Естьли единица ВГРП?
ТМ
Вычисление номера старшейединицы и переход на соотоетс/пдунпцую про
|
грамму реакций |
|
|
~ 7 |
--------I— 1------ |
1--------- |
V " |
/ |
Блина шнштлышхреакций \ |
||
|
| |
| |
|
* . *__ L
Рис. 7.
который может производить работу с открытым (незапрещенным) прерыванием. После выполнения блоков ми нимально необходимой реакции управление передается на блок поиска старшего разряда, давшего прерывание. В том случае, если не появилось новых прерываний, управление передается блоку реакции, который идет с открытым прерыванием. Блок-схема программы реакции на прерывания представлена на рис. 7.
Из приведенной блок-схемы видно, что блоки мини мальной реакции на соответствующее прерывание завер
80
шают свою работу постановкой в очередь заказа на даль нейшую обработку данного прерывания, которая может идти уже с открытым прерыванием. Чтобы была более понятна разница между блоком минимальной реакции на г-е прерывание и блоком дальнейшей обработки, при ведем следующий пример.
В процессе считывания информации с перфокарт пре рыванием фиксируется момент появления считанной строки (или столбца) на регистре мультиплексного ка нала. Эта информация должна как можно скорее быть снята с этого регистра, чтобы освободить его для даль нейшей работы. Блок минимальной реакции выполняет работу по освобождению входного регистра и записи информации в ячейки ОЗУ. Кроме этой работы блок реакции на прерывания Должен выполнить большой объем работы по семантическому контролю содержания строки, по компоновке символов для засылки их в па мять машины, т. е. выполнить работы по редактированию введенной информации. Эта работа должна быть выпол нена до прихода со считывающего устройства следующей строки информации. Между моментами появления строк проходит сравнительно большой промежуток времени, и эти работы по редактированию на проходе можно выпол нять «не спеша». ' Блок минимального прерывания заканчивается выдачей заказа на работу по редактирова нию, причем этой работе назначается сравнительно не высокий приоритет. Блок выбора работы для продолже ния обслуживании прерываний выбирает на исполнение работу с наивысшим приоритетом, вообще говоря, вне зависимости от того, в какой последовательности реаль но возникли прерывания, поставившие в очередь работы на исполнение.
Для того чтобы лучше пояснить значение аппарата защиты памяти в БЭСМ-6, расскажем о том, как этим аппаратом пользуется операционная система (ОС). Задача, поступающая в систему, снабжается некоторым описанием тех ресурсов, которые она потребует от систе мы в процессе своего решения. Эта информация назы вается паспортом задачи. В частности, в паспорте ука зывается число листов ОЗУ, которое ей потребуется для решения.
На основе описания ресурсов требуемой математиче ской памяти ОС анализирует наличие свободных ресур
ч 81
сов в машине к моменту поступления задачи, и если сво бодных ресурсов достаточно, то задача вводится в реше ние. При этом ОС назначает каждому требуемому мате матическому листу памяти задачи физический лист опе ративного запоминающего устройства либо страницу на магнитном барабане. В результате такого назначения в операционной системе формируется 'таблица соответ ствия математических листов их физическому месторас положению.
В тот момент, когда данная задача начинает решать ся, точнее, в тот момент, когда в ее распоряжение отдает ся центральный процессор, на основе этой таблицы фор мируется содержание аппаратных регистров приписки для тех математических листов, которым выделена в данный момент оперативная физическая память. Тем мате матическим листам, которым выделена память на бара банах или которые вообще не затребовала задача, при писывается признак защиты.
Если в ходе своего решения задача не обращается к листам, отображенным на магнитные барабаны, или к листам, для нее не существующим, то процесс счета происходит нормально. В том случае, если программа задачи обратилась к математическому листу, который находится на барабане, срабатывает прерывание по за щите, и операционная система, анализируя причину прерывания, стремится «перекачать» этот лист с барабана на первый свободный лист оперативной памяти. Иногда для этого ей приходится «сбросить» какой-либо лист на барабан, освободив тем самым лист оперативной памяти. Пока производится «подкачка» листов для того, чтобы можно было продолжить решение задачи, прерванное по защите программы, центральный процессор отдается в распоряжение другой задаче.
Очевидно, стратегия, т. е. методы распрделения листов задач между оперативной памятью и памятью на маг нитном барабане должны быть выбраны так, чтобы мини мизировать число «сбросов» и «подкачек», так как это прямо влияет на эффективность мультипограммной ра боты. Таких методов существует много, и о них должен быть особый разговор, выходящий за рамки данной книги. Итак, система защиты и приписки используется операционной системой для организации динамического распределения ресурсов двухуровневой памяти. Но этой
82
же системой ОС пользуется для того, чтобы совместить вычисления с работой внешних запоминающих и вводныхвыводных устройств. Как только программа задачи обра щается к процедуре вывода (ввода) информации с какоголибо математического листа, этот лист «закрывается» по защите вплоть до окончания процесса вывода (ввода). Теперь задача, задав ОСдирективу выполнить ввод-вывод, может свободно продолжать вычисления, которые не пользуются информацией с листа, находящегося в обмене, и в этом случае работа по вводу-выводу будет совмещена со счетом. Стоит лишь задаче обратиться к листу, нахо дящемуся в процессе обмена, как произойдет прерывание и операционная система заставит эту задачу подождать окончания обмена. Тем самым достигается синхронизация параллельных процессов счета и ввода-вывода. И, на конец, если программа задачи обратилась к незаказанному листу ОЗУ, т. е. совершила попытку обратиться к «чужому» листу, то опять срабатывает прерывание по за щите и операционная система фиксирует ошибку в про грамме и «выбрасывает» задачу из решения, предостав ляя занятые ею ресурсы в распоряжение других задач.
3.6. Математическое обеспечение машины БЭСМ-6 Математическое обеспечение этой машины имеет доста точно большую историю развития. Оно начало созда ваться еще в период конструирования самой машины. К моменту появления первого образца и вводу его в эксплуатацию в состав МО БЭСМ-6 уже входил диспет чер, обеспечивающий управление мультипрограммным режимом, система символьного кодирования автокод, библиотека стандартных программ часто встречающихся вычислительных алгоритмов, система экстракодов обра щения к вводу-выводу и ряд обслуживающих и тестовых программ, необходимых для эксплуатации системы. В скором времени для машины БЭСМ-6 были созданы тран сляторы с языков ФОРТРАН и АЛГОЛ и была значи тельно модернизирована операционная система, разрабо тано несколько трансляторов с машинно-ориентирован ных языков. Усилиями нескольких организаций в 1968 г. было создано типовое математическое обеспечение, ко торое до сих пор поставляется вместе с машиной БЭСМ-6.
Наибольший вклад в развитие математического обес печения БЭСМ-6 внесли сотрудники ИТМ и ВТ АН СССР, создавшие первую типовую операционную систему под
83
названием Д-68 и первый автокод для этой машины. В со здание и внедрение типового математического обеспече ния огромный вклад сделан А. Н. Томилиным и другими специалистами.
Первый в Советском Союзе транслятор с языка ФОРТРАН был разработан для БЭСМ-6 сотрудниками ОЙЯИ под руководством Н. Н. Говоруна, в создании этой системы также принимали участие сотрудники вы числительного центра МГУ.
Система трансляции с полного языка АЛГОЛ-60 была создана под руководством В. М. Курочкина в ВЦ АН СССР, большая заслуга в создании транслятора с АЛГОЛА-60 принадлежит сотруднику ИТМ и ВТ АН
СССР Д. Б. Подшивалову.
Следует отметить, что работы в области математиче ского обеспечения БЭСМ-6 сыграли очень важную роль в развитии этой отрасли знаний в нашей стране. Прежде всего, это .был первый успешный опыт привлечения к разработке столь крупных математических сил. Во-вто рых, начиная с машины БЭСМ-6, математическое обес печение стало поставляться заводом-изготовителем как неотъемлемая часть системы. В-третьих, по своему соста ву математическое обеспечение БЭСМ-6 является доста точно полным и служит образчиком типового МО для других машин.
Все это оказалось возможным в силу того, что струк тура самой машины отвечала основным требованиям, необходимым для создания сложного математического обеспечения. Далее мы приводим краткую характеристи ку МО, поставляемого вместе с машиной.
Система типового МО ЭВМ БЭСМ-6 включает про грамму-диспетчер Д-68 и широкий набор средств авто матизации программирования, объединенных в соответ ствующие системы программирования. В состав этих систем входят трансляторы с алгоритмических языков высокого уровня АЛГОЛ-60 и ФОРТРАН, трансляторы с машинно-ориентированных языков, библиотека про грамм, а также средства отладки программ, записанных в машинных кодах. Система МО позволяет использовать ЭВМ БЭСМ-6 в режиме поточной обработки задач, запи санных на входных языках разного уровня, с автомати ческим переходом от одной системы программирования к другой.
84
Диспетчер Д-68 обеспечивает:
а) Мультипрограммное решение до трех рабочих за дач при условии, что их совокупные требования на физи ческие ресурсы не превосходят ресурсов, имеющихся в данной комплектации машины, за вычетом ресурсов, за нятых диспетчером.
б) Поточный процесс решения пакета задач в рамках одной системы программирования в порядке поступле ния задач в машину.
в) Управление одновременной работой внешних за поминающих устройств ввода-вывода. Совмещена работа по четырем направлениям магнитной ленты, двум на правлениям на магнитных барабанах, двум устройствам печати АЦПУ, двум устройствам вывода на перфокарты ПИ-80, двум устройствам вывода на перфоленту, двум устройствам ввода с перфокарт и по 24 телеграфным каналам.
г) Распределение оперативного запоминающего уст ройства (ОЗУ) и внешних устройств между задачами, управление защитой ОЗУ.
д) Печать на операторском пульте указаний, необхо димых для управления системой в целом, и указаний о неисправности устройств.
Кроме перечисленных выше основных функций, Д-68 обеспечивает вызов трансляторов с АЛГОЛа-60, ФОРТРАНа и автокодов в соответствии с указаниями на спе циально помеченных перфокартах, которые называются системными картами.
В диспетчере Д-68 имеются блоки, упрощающие организацию вызова системных массивов, в частности транспляторов, с магнитных лент и барабанов, имеются экстракоды, позволяющие обращаться к счетчику време ни и другим ячейкам диспетчера, и т. д.
Диспетчер Д-68 обеспечивает возможность независи мого создания и введения в диспетчер различных новых блоков без изменения первоначального варианта, запи санного на магнитном барабане (экстракод«произволь ных диспетчерских действий»).
Система программирования включает библиотеку стан дартных программ и транслятор с автокода ИТМ.
Система стандартных программ состоит из набора свободно перемещаемых программ в машинных кодах. Программы могут вызываться в ОЗУ как один раз (при
85
первом обращении), так и при каждом обращении. В со став библиотеки входят программы численных методов и некоторых процедур обработки информации.
Транслятор с автокода ИТМ обеспечивает трансля цию с машинно-ориентированного языка символического кодирования, предназначенного для получения опти мальных программ, использующих все возможности машинного языка. Транслятор с автокода ИТМ позволяет отлаживать программы в терминах входного языка, вно сить изменения и исправления в автокодпрограммы, по лучать полную распечатку (документацию) исходного текста и оттранслированной программы, объединять автокод-программы с заранее заготовленными частями на машинном языке. Наличие нескольких режимов ра боты позволяет в различных сочетаниях производить трансляцию, распечатку, выполнение и «прокрутку» программ.
Система программирования СОМИ включает тран слятор с автокода СОМИ, который является расширен ным машинно-ориентированным языком символического кодирования включающим:
а) аппарат для организации циклов; б) возможность ветвления программы с помощью
одной псевдокоманды, записи формул с помощью одной псевдокоманды, введения в программу констант раз личного вида;
в) возможность употребления параметрических вы ражений;
г) средства для отладки в терминах входного языка; д) аппарат для внесения различных изменений в псевдопрограмму на различных этапах работы с ней; е) аппарат для объединения при трансляции несколь
ких псевдопрограмм.
Система программирования ФОРТАН включает тран слятор с языка CERN-FORTRAN, транслятор с языка сомволического кодирования MADLEN, монитор, за грузчик и библиотеку подпрограмм. Особенностью си стемы является то, что в качестве внутреннего языка (общего выходного языка трансляторов) выбран язык стандартного массива библиотечной подпрограммы. Это позволяет программировать и вести отладку задачи, состоящей из частей, записанных на различных язы ках.
86
Транслятор с языка MADLEN реализует перевод программ с этого языка на внутренний язык си стемы.
Загрузчик обеспечивает автоматическое распределе ние памяти для задачи, настройку адресов подпрограмм
и организует работу нескольких |
разделов |
(подзадач) |
на одном и том же месте оперативной памяти. |
||
Монитор •— основная ведущая |
программа |
системы. |
В зависимости от наличия тех или иных управляющих карт монитор производит вызов одного или другого транслятора, раздела перфорации стандартного масси ва, раздела записи стандартных массивов в личную биб лиотеку на МЛ и т. п.
Библиотека подпрограмм состоит из двух частей: библиотеки мониторных подпрограмм и библиотеки подпрограмм общего пользования. Библиотека монитор ных подпограмм состоит из подпрограмм, реализующих заложенные в мониторе возможности. Библиотека под программ общего пользования включает разнообразные подпограммы для пользователей.
Система программирования АЛГОЛ включает тран слятор с полного языка АЛГОЛ-60 с незначительными ограничениями, носящими в основном чисто количе ственный характер.
Процедуры ввода (INPUT) и вывода (OUTPUT) взя ты из языка АЛГАМС. Кроме того, в качестве процедуры КОД в состав системы АЛГОЛ введена возможность пользоваться автокодом БЭСМ-6. Это позволяет получать эффективные рабочие программы и в некоторых случаях экономить значительный процент рабочего времени машины.
В состав МО машины БЭСМ-6 включен также интер претатор с языка ЛИСП. Этот язык, изобретенный МакКарти, удобен для программирования сложных логи ческих задач и задач обработки символьной информа ции, связанных с обработкой списков. Теоретическое значение языка ЛИСП очень велико. Мак-Карта уда лось построить этот язык на основе введения некоторых простейших операций над элементами списка, которые могут быть интерпретированы на любой машине. Неболь шой группы операторов достаточно, чтобы конструиро вать новые более сложные операторы и функции на этом же языке, удобные для формального описания таких
87
сложных логических задач, как доказательство теорем, игры в шахматы и т. д.
В 1970 г. на опытную эксплуатацию были поставлены две весьма развитые операционные системы для БЗСМ-6. Это ОС ИПМ разработки Института прикладной мате матики и НД-70, ядро которой разработано Институтом точной механики и вычислительной техники. По своим возможностям обе системы достаточно близки, и если в ОС ИПМ основной упор сделан в направлении достиже
ния максимальной универсализации |
системы, |
иногда |
||
за счет |
эффективности |
использования машины, то в |
||
системе НД-70 главное |
внимание уделено |
повыше |
||
нию |
эффективности |
использования |
оборудования |
БЭСМ-6 и предоставлению удобных средств расширения и приспособления операционной системы для конкрет ных условий ее эксплуатации. В НД-70 многое сделано для того, чтобы обеспечить хорошее использование БЭСМ-6 в режимах реального масштаба времени, в ре жиме разделения времени, в режиме управления поточ ной обработкой с отнесенных пультов.
Кроме того, в этих двух операционных системах орга низована система автоматической подкачки' активных листов с внешних запоминающих устройств в оператив ное запоминающее устройство и обратно. Такая система упрощает решение проблемы распределения ресурсов виртуальной памяти между задачами. Каждой задаче система предоставляет полный объем виртуальной па мяти, вне зависимости от реально доступных ресурсов физической оперативной памяти. В обеих системах, по существу, снято ограничение на число одновременно ре шаемых рабочих программ.
В 1971 г. под руководством В. Ф. Тюрина была раз работана дисковая операционная система для БЭСМ-6, известная под названием ДИСПАК. Эта система ориен тирована на пакетную обработку с использованием дис ков и по своим эксплуатационным характеристикам, повидимому, занимает первое место. Достаточно сказать, что коэффициент полезного времени процессора, т. е. отно шение времени, затрачиваемого на вычисления по ра бочим программам, к общему календарному времени работы машины равен 0,91 и достигает величины 0,96.
Коэффициент мультипрограммности, т. е. отношение времени последовательного решения задач пакета ко вре-
88
i мени |
их мультипрограммного решения, равен 1,59. |
Это |
очень высокий показатель. |
Следует отметить также прекрасно организованный в ДИСПАКе аппарат сбора статистики. Данные получен ные на основе эксплуатации ДИСПАКа, позволяют де лать обоснованные выводы о характере потока задач, идущих в вычислительных центрах широкой ориентации.
В настоящее время МО БЭСМ-6 продолжает совершен ствоваться и развиваться. Его объем составляет больше миллиона команд. Оно является одной из наболее раз витых систем математического обеспечения в мире.