Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Королев, Л. Н. Структуры ЭВМ и их математическое обеспечение учебное пособие

.pdf
Скачиваний:
25
Добавлен:
21.10.2023
Размер:
10.26 Mб
Скачать

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

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

Входошпрерывания

УпряшыВшшв

Нет

Естьли единица ВГРП?

ТМ

Вычисление номера старшейединицы и переход на соотоетс/пдунпцую про

 

грамму реакций

 

~ 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 продолжает совершен­ ствоваться и развиваться. Его объем составляет больше миллиона команд. Оно является одной из наболее раз­ витых систем математического обеспечения в мире.

Соседние файлы в папке книги из ГПНТБ