Развитие методов объединения и загрузки программ в операционных системах векторных ЭВМ
О. Л. Казарицкая
Рассмотрены принципы работы системы редактирования связей, опирающиеся на организацию виртуальной памяти векторных ЭВМ.
Одной из отличительных особенностей мощных многопроцессорных векторных ЭВМ, к которым относится М-10, является наличие развитого механизма виртуальной памяти [1]. Виртуальной адресацией охвачены два уровня блочно-страничной памяти: оперативная и большая. Пользователь имеет возможность работать в терминах виртуальной адресации. Предоставление физической памяти, необходимый обмен между уровнями памяти осуществляются системой управления памятью операционной системы ОС М-10 [2].
При создании программных систем важное значение имеет возможность объединения в единую программу большого числа модулей, в том числе написанных на различных языках программирования. Указанную функцию выполняет особый компонент операционной системы — редактор связей. Результатом работы любого из входящих в состав операционной системы трансляторов является объектный модуль, состоящий из совокупности машинных команд и служебной информации, необходимой для работы редактора связей. Модули хранятся в библиотеке, откуда могут выбираться по имени или любому из псевдонимов, отраженных в каталоге библиотеки.
Для редактора связей ОС М-10 характерно, что при объединении и загрузке модулей он оперирует с виртуальной памятью, а предоставление физической памяти и обмен между уровнями осуществляются через сопряжение с системой управления памятью.
Такой подход позволил сосредоточить внимание на разработке структуры компонента: реализованы рекурсивная схема редактирования внешних связей, средства динамического редактирования связей и загрузки модулей во время исполнения [3]. Таким образом, наличие развитых аппаратных и программных средств поддержки виртуальной памяти позволило создать в ОС М-10 весьма эффективную схему объединения и загрузки программ.
В перспективных векторных ЭВМ концепции виртуальной памяти получили дальнейшее развитие. Память имеет сегментно-страничную организацию, виртуальной адресацией охвачены три уровня памяти, включая магнитные диски. Защита памяти гарантируется замковым механизмом, причем отдельно контролируется доступ по чтению, записи и исполнению. Такие возможности позволяют предоставить средства совместного использования сегментов данных без создания дополнительных копий.
Все файлы-сегменты в системе хранятся в библиотеках. С целью регламентации прав доступа к сегментам различаются системная, групповые и личные библиотеки. Системная библиотека доступна всем пользователям (по чтению и исполнению), личная библиотека доступна только ее владельцу. Групповая библиотека порождается привилегированным пользователем, который определяет права доступа совладельцев к сегментам библиотеки.
Объектные модули, образующиеся при трансляции, являются частным видом файлов-сегментов. Объектный модуль характеризуется паспортом, который хранится в служебном сегменте-каталоге библиотеки и содержит информацию для редактирования связей. Текст программы на машинном языке оформляется в виде отдельного сегмента и содержит адресные константы, подлежащие обработке редактором связей. Значения адресных констант определяются расположением комплекса программ в виртуальной памяти и заносятся редактором связей перед выполнением.
Отличительная особенность редактора связей — изменение в процессе его работы только значений адресных констант в текстах программ. Загрузка в обычном смысле не требуется, так как к этапу редактирования связей все необходимые библиотеки активизированы файловой системой и объектные модули уже существуют в виртуальной памяти.
Все сегменты одной библиотеки характеризуются одним номером задания пользователя. При обработке редактором связей адресных констант, относящихся к внешним объектам из групповой и системной библиотек, в тексте программы появляется виртуальный адрес с номером задания, отличным от собственного. Тем самым обеспечивается совместное использование несколькими пользователями единственной физической копии общего сегмента. При выполнении программы обращение к сегментам контролируется аппаратно с помощью механизма замковой защиты. Замок сегмента формируется операционной системой на основании пароля, который назначает файлу-сегменту пользователь.
В пределах библиотеки имена сегментов уникальны, однако допускается повторение имен входов. Это позволяет хранить в одной библиотеке под разными именами сегментов несколько версий подпрограммы с совпадающими именами входов, что значительно облегчает пользователю процесс отладки. При поиске внешнего объекта в каталоге библиотеки выбирается первое встреченное имя входа. Таким образом, набор объединяемых объектных модулей определяется их расположением в каталоге. Существует операция, позволяющая упорядочить каталог библиотеки необходимым образом.
Объединенная в результате редактирования связей программа представляет собой множество сегментов, возможно, разбросанных в поле виртуальной памяти. При необходимости (например, перед записью в постоянную память) объектные модули можно объединить в новый единый сегмент с помощью операции объединения.
Основные функции по организации библиотек объектных модулей выполняет подсистема “библиотекарь”, которая осуществляет включение паспортов новых объектных модулей в каталог библиотеки, исключение паспортов уничтожаемых сегментов, упорядочение каталога. Во всех этих операциях “библиотекарь” работает только со служебным сегментом — каталогом библиотеки и не обращается к сегментам с текстами программ. Редактор связей модифицирует только тексты объектных программ, а к каталогу библиотеки имеет доступ только по чтению. Такое разделение функций подсистем облегчает решение вопросов синхронизации процессов, представляющих наибольшую трудность в мультипрограммной операционной системе разделения времени.
Заключение. Рассмотренные концепции, функции и возможности системы редактирования связей существенным образом опираются на организацию виртуальной памяти векторных ЭВМ и принципы реализации системы управления памятью и файловой системы операционных систем векторных ЭВМ.
Литература
- Карцев М. А. Вычислительная машина М-10. — Доклады АН СССР, т. 245, 1979, № 2.
- Казарицкая О. Л., Репкина Л. К. Возможности операционной системы многопроцессорной ЭВМ М-10 в сфере научных исследований. — Вопросы радиоэлектроники, сер. ЭВТ, 1982, вып. 6.
- Казарицкая О. Л. Некоторые особенности редактирования связей в системе программирования ЭВМ М-10. — Вопросы радиоэлектроники, сер. ЭВТ, 1981, вып. 10.
Статья опубликована в сборнике “Вопросы радиоэлектроники”, серия “Электронная вычислительная техника”, вып. 9, 1984 г., стр. 13.