3. Третий уровень пирамиды — это "предбанник", который должен компенсировать существенный недостаток библиотечного набора данных — возможность гибели при записи в него. В предбанник — библиотеку небольших размеров — свои модули записывают сами программисты-пользователи. После записи в такую библиотеку модуль оказывается включенным в эксплуатацию. При этом, в основной библиотеке еще существует "вытесненный" из эксплуатации одноименный модуль, который еще не поздно снова задействовать, уничтожив одноименный ему модуль в предбаннике. По просьбе пользователей или периодически, либо все содержимое предбанника, либо часть его "выливается" в основную библиотеку. Одновременно с этим (в той же процедуре) содержимое этого предбанника "выливается" еще в одну библиотеку, где все такие "добавки" накапливаются до следующего страхового копирования. Ответственность за правильность записи в предбанник несут пользователи. Предбанник невелик по размерам. Пользователям предписано хранить у себя экземпляры своих модулей до тех пор, пока они не получат официальное уведомление (в виде листинга, а не "испорченного телефона") о том, что их модуль "вылит" в основную библиотеку.
4. Четвертый уровень пирамиды состоит из следующих составных частей: — Основные библиотеки; — "Копилки предбанников", по одной на каждую основную библиотеку; — Группы поколений резерва, по одной группе на каждую основную библиотеку. Каждая группа поколений резерва — это несколько томов мл, одинаковых по структуре и содержащих следующие наборы данных: — Копия основной библиотеки; — Копия "копилки предбанников", в которой накоплено то, чем эта копия основной библиотеки отличается от предыдущей; — Копия следующей "копилки предбанников". Все это хозяйство защищено от несанкционированного доступа. За него отвечает системный программист. Смена поколений резерва (новое поколение резерва на МЛ самого старого) выполняется автоматически. Создание нового поколения резерва и опустошение "копилки предбанников" воможно лишь при успешном завершении формирования нового тома мл. Опишем подробнее алгоритм выполнения процедуры REZAPAS, которая создает новые поколения резерва.
В приведенном ниже алгоритме каждый пункт выполняется лишь при правильном выполнении всех предыдущих.
— Прочесть старую копию копилки и основной библиотеки на последнем поколении резерва;
— Записать в конец последнего поколения резерва новую копию копилки;
— Проверить записанное чтением;
— Найти через каталог том МЛ с самым старым поколением резерва и распределить его под новое поколение;
— Записать на новое поколение (опять) копию новой копилки;
— Записать следом копию новой (текущей) основной библиотеки;
— Проверить чтением новое поколение резерва;
— Закаталогизировать новое поколение резерва (закаталогизировав якобы находящийся на нем фиктивный набор данных из группы поколений). Только теперь новое поколение резерва перешло из кандидатов в "настоящие";
— Опустошить копилку.
Таким образом, в ведении системного программиста (и только в его) находятся всегда как минимум два экземпляра любого модуля. Вся эта система, кроме того, поддерживает пары библиотек, обеспечивая их взаимо-однозначное соответствие. Из вышеприведенного этюда можно заметить, что такая система может облегчить жизнь подразделению системных программистов. Защищеность ее от ошибок и гибкость базируемых на ней программных систем значительно выше, чем у традиционной. Несчастье заключено лишь в том, что в полном объеме такой системы нет. Ос ЕС ЭВМ не обеспечивает автоматически ни предбанника, ни поколения раздела библиотеки (или хотя бы "призрака" раздела библиотеки). Организация такой системы в рамках ОС ЕС требует от ее пользователя выдерживания такого большого количества дополнительных ограничений на способ организации програмных систем, базирующихся на "пирамиде", что легче, наверное, заставить всех пассажиров трамвая сортироваться по номеру своей остановки, а всех покупателей называть у кассы сначала номер отдела, а потом сумму. Как видно из описанного выше, "пирамида" базируется практически на следующих идеях: разделение ответственности; локализация во времени и пространстве процессов модификации крупного файла (слияние с "предбанником"); автоматизация рутинной работы по ведению поколений резерва. А в результате, все могут спать спокойно, болеть, когда им хочется и — чего уж лицемерить — даже попадать под трамвай.
Читать дальше