Фоновая дисковая операционная система. Часть 3.

Форматы выполняемых программ. Программа должна быть подготовлена в одном из двух форматов:

  • абсолютном (SAV) — для однопрограммного варианта и фоновой программы в двухпрограммном варианте;
  • перемещаемом (REL) — для оперативной программы.

Оба формата могут быть получены при компоновке программ из объектных модулей. В программе формата SAV все адреса имеют определенные значения, т. е. программа может быть размещена только в одном определенном месте оперативной памяти (по умолчанию — с адреса 10008). В программе формата REL привязка откладывается до момента загрузки. Поэтому модуль программы в этом формате кроме самой программы и ее стартового адреса должен содержать словарь перемещений. Соответственно изменяется и процедура загрузки (выполнения) программы. Для формата SAV это обеспечение загрузки с внешней памяти в оперативную, передача управления программе и обеспечение возврата управления интерпретатору директив; эти функции выполняются директивой RUN (либо парой GET-START). Для формата REL требуется еще модификация программы (настройка ее адресов) в соответствии со словарем перемещений; эти функции выполняются директивой FRUN.

Кроме указанных форматов система осуществляет преобразование абсолютного перфоленточного формата (утилита LDA) в формат SAV для обеспечения совместимости с ПЛОС.

Начальная загрузка. Производится с системного устройства внешней памяти. Эта программа реализована аппаратно (т. е. защита в ПЗУ) в области адресов внешних устройств. Если в качестве системного устройства используется НГМД, программа начальной загрузки (стартовый адрес 1730008) физически размещена в интерфейсной плате этого устройства, что обеспечивает эффективность процедуры загрузки. После считывания нулевого блока в оперативную память производится передача управления этой программе, а затем интерпретатору директив, который ждет дальнейших указаний пользователя. При генерации можно задать ряд действий, выполняемых системой перед передачей управления интерпретатору директив (выдачу определенного текста на терминал, сообщения фамилии пользователя и пароля с их взаимной проверкой, ввода даты и времени и т. д.), в виде командного файла.

Управление ресурсами. Управление ресурсами (памятью, процессорами, устройствами и информацией) осуществляется сравнительно простыми средствами, так как система является однопользовательской.

Управление памятью является одиночным непрерывным. Адресное пространство заполняется с обоих концов навстречу друг другу. В начальной области заполнение производится с адреса 5008 (диапазон 0 ... 5008 занят постоянно распределенными адресами: векторами прерываний и областью системных связей), в конечной области — с адреса 56К в сторону уменьшения (последние 8К заняты регистрами внешних устройств, начальными загрузчиками и т. д.). С адреса 10008 загружается программа пользователя или системная программа. Область 5008 ... 10008 отводится под стек загруженной программы; эта же область служит областью связи при цепочечной передаче управления от программы к программе. Если программа производит обмен информацией с устройствами, отличными от системного (например, магнитными лентами, перфолентами и т. д.), выше ее динамически загружаются соответствующие драйверы. Таким образом, размер программы может изменяться в процессе ее выполнения. Со старшего адреса оперативной памяти загружается резидентная часть ядра ОС, драйвер системного устройства, резидентный монитор RMON и его стек.