автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Принципы построения и реализации базового уровня кластерной операционной системы КЛОС

кандидата физико-математических наук
Копытов, Герман Васильевич
город
Москва
год
1992
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Принципы построения и реализации базового уровня кластерной операционной системы КЛОС»

Автореферат диссертации по теме "Принципы построения и реализации базового уровня кластерной операционной системы КЛОС"

российская академия наук

институт проблем кибернетики

На правах рукописи УДК 681.3.03

КОПЫТОВ Герман Васильевич

ПРИНЦИПЫ ПОСТРОЕНИЯ И РЕАЛИЗАЦИЯ БАЗОВОГО УРОВНЯ КЛАСТЕРНОЙ ОПЕРАЦИОННОЙ СИСТЕМЫ КЛОС.

Специальность 05.13.11 - "Математическое м программное обеспечение вычислительных дшшин, комплексов, систем и сетей".

Автореферат дпссертацап па сопсканпс упепоЙ стспепп капдпдата фпзико-матсматнческтс паук

Москпа 1992

РсЛоть сиполпеиа о Институте Проблей Кибсркгтшш РАН.

Научпьш руиоаодптель : кандидат фнзико-иатеиатвческих наук

A.С.Косачев

Официальные оппоненты : доктор фнзико-ыатеиатнческнх наук

B.А.Крюков

кандидат фнзико-иатеыатнческшс наук И.В.Машечкнн

Ведущая организация : Институт точной механики о вычислительной техники им. С.А.Лебедева РАН.

Защита состоится " р ^ 1992 г. в /4 часов на

заседании специализированного совета К.003.78.01 Института Проблем Кибернетики РАН.

Адрсс:117312, Москва, ул. Вавилова дои 37

Автореферат разослан

»'1

чз. i^i992 г.

Ученый секретарь специализированного совета К.003.78.01 и.ф.-и.и. ti I J . А.3.Ишыухаиетов

..... " •

3Ji''Sit'ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Лптуальпссть темы.

Признанной п многообещающей основой позых техпологпа прогрг-**-япроваппя, призванных повысить производительность труда прогриг! гнетов при разработке программных коиплгнссз" "сотого уровня споппо-стп, является объектно-орпснтггрозашгое прогр' Тмпрозаппа. Огрогпшл поток работ, появившихся п этой области за последнее премз, ггг.сгггся, n основном, языков программировали?, ;:ота "фундаментальные идеи gGt>-ехтного подхода могут быть применены п Г' сферах, з том т'с.тз

п при построении операционных систем.

Кластерная операцнонпая система KJIOC является примером раэпп-тпа объсктпо-орпентпропанного подхода и его применения для созд?.пгп операционных систем. Но в отличие от большинства разрабатыпгемы:: объектно-ориентированных операционных систем, которые организуется над традиционными операционными системами, KJ10C орпептпре-а-па па прямое использопатю аппаратуры.

Цела работы.

1. Исследование принципов построения и методов функционально:! структуризации базового уровня операционной системы на основе гслр.-стерной модели с учетом требований мобильности.

2. Разработка базового уровня мобильной кластерной операцпел-нон системы KJ10C и создание вспомогательного инструментария ixpocc-отладкн KJIOC а среде операционной системы UNIX.

3. Реализация программ базового уровня KJIOC и апробация переноса с одной ЭВМ на другую.

Научная ноппзиа.

Новая архитектура ОС.

В отличие от традиционных операционных систем, где функции ОС реализуются в ядре, система KJIOC имеет совершенно другую структуру. Большинство функций ОС выполняются а системе KJIOC вне ядра з защищенных друг от друга кластерах, которые обмениваются мехеду собой сообщениями. Кластеры KJIOC инкапсулируют некоторые данные п предоставляют иовне набор операций для работы с этими данными. Кластеры не имеют общих данных и работают независимо друг от друга. Ядро выполняет, а основном, поддерику межкластерных взаимодействий.

Такая архитектура опсрапчоипой системы имеет рад достоиксто.

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

Данные операционной системы рассредоточены по кластерам и защищены от неконтролируемого доступа. Инкапсуляция данных в кластерах гарантирует целостность данных, поскольку к данных» применяются только допустимые операции. Инкапсуляция данных также даст возможность модифицировать различные части системы, ие затрагивая при этом остальные части.

Мобильность операционной системы с рассматриваемой архитектурой имеет две стороны. Одна касается мобильности ядра ОС, а другая — мобильности кластеров операционной системы, работающих на базе ядра. При сохранении неизменным интерфейса между ядром и кластерами операционной системы, проблемы переноса касаются, в основиом, ядра ОС. Поскольку основные функции операционной систем вынесены за пределы ядра, то оно становится небольшим и довольио мобильным.

При данной архитектуре функциональные возможности ОС опреде-пяются не яд|н>м, а набором системных кластеров, работающих на базе этого ядра. 0 принципе, это позволяет иметь несколько различных операционных систем, работающих над одним и тем же ядром. Если говорить об одной операционной системе, то рассматриваемая архитектура позволяет в иш[я)к11х пределах варьировать возможности ОС, исхода из щш;тических потребностей или ограничений аппаратуры.

Ирн проектировании и (к-ализащш программных комплексов важную роль играет понятие составного объекта (подсистемы). КЛОС поддерживает понятие иоагнетемы сверх) донизу — от уровня конечного пользователя до ядра ОС, котики: непосредственно поддерживает понятие Подсистемы и использует его при управлении процессором, управлении памятью, а также при порождении/лнкпкдашш компонентов системы.

Яд[ю КЛОС обеспечивает заишту межкластерных взаимодействий. В каждый момент времени кластер может обращаться лишь к тем кластерам, к которым он легально получил доступ н может пользоваться лишь теми операциями, которые ему разрешены кластером-реализатором.

Кластеры КЛОС имеют сегментированную виртуальную память.

Сггаепты позползют эффективно перэдапать большпз jr'.ccnnn лглил тя прп взаимодействии клгстерсэ.

В работе получены следующие попыз результаты:

1. Разработала позаз архитектура ОС. Выделеа мшпшалыш:! уровень ядра ОС, обеспечивающий реализацию ссех остальных фугшхлй m уровне базопых объектез — кластерсз. Такая архитектура сбеспечттгг.зт: асппхроппость работы п защиту данных ессх компонентов ОС; тгсбпль-пость ОС; масштабируемость ОС.

2. Спроектировала п реализована поддерга системой KJIOC структурированных составных объектов-подсистем па псех ур озиsix. ' j ¿гсцг.э-пировалпя ОС: з^рузна, управление процессором и памятью.

3. Архитектурой KJIOC обеспечепа защищенность доступа к операциям d кластере.

4. Разработаны механизмы динамической организации памяти при параллельной и распределенной работе подсистем — сегменты KJIOC.

Практическая цаппость.

1. Реализовано ядро KJIOC п пшхннй уровень операционной спсте:*л па ЭВМ "Электроника-85" п рабочей стал пли "Беста-83".

2. Разработана п апробиропана технология переноса базопого уровня операцнонпой системы с одпой ЭВМ на другую.

3. Созданное программное обеспечение ггалгетез основой далъпеЛших работ по развитию кластерной технологии создалил програ! гмпт п: "ом-пленсоз.

4. Результаты исследования могут быть использованы п других работах по созданию операционных систем с указанной архитектурой.

Апробация работы.

Результаты диссертации доло::сены па копферонщш Советской сссо-циашга пользователей ОС UNIX — SUUG э 1990 году.

Публикации.

По теме диссертации опубликовано 8 печатных работ.

Объем и структура работы.

Диссертационная работа состоит из введения, 6 глав, заключения о списка литературы.

Содержание работы.

В первой глам дается общая характеристика объектного подхода и его применение при создании операционных систем. Под объектным подходом в данной диссертации подразумевается инкапсуляция данных в объекте и предоставление вовне набора операции для работы с этими данными.

Возникнув первоначально в области языков программирования, объектный подход оказался применим также и для создания операционных систем. В первой главе перечисляются наиболее важные из известных автору объектных операционных систем, как старые и уже завершившие свое существование (ОС HYDRA, Eden), так и современные активно развивающиеся системы (Mach, Chorus).

Сфера операционных систем, как особая сфера применения объектного подхода, виосит свою специфику в общие проблемы организации взаимодействия объектив. Специфика заключается, как правило, в toxi, что объекты в операционной системе могут выполняться независимо друг от друга и, следовательно, возиикает проблема синхронизации операций в объекте.

Объсктиыс системы (ие только операционные) распадаются на два больших класса -- системы с пассивными и с активными объектами. Неформально можно считать, что активный объект объединяет в себе понятия процесса и объекта и обладает активностью независимо от других объектов и от вызова операций в next. Пассивный объект, напротив, активизируется только в рамках вызова операции и теряет свою активность после возврата из операции. ■

Эта характеристика объектной системы является определяющей когда мы рассматриваем способы вызова операций в объекте н способы реализации операций, а также в вощюсе параллельности в объектной системе.

Вощюсы доступа к объекту в операционных системах решаются, как правило одинаково — на осиовс мандатов. Мандат является динамической ссылкой на объект в сочетании с некоторыми правами. Правом,

обычио является возможность вызывать операцию в объекте. Мандат не-

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

Мандаты обеспечивают корректный доступ к объекту, причем корректность понимается как выполнение следующих условий:

1) объект имеет доступ только к тем объектам й операциям, которые ему разрешены.

2) над объектом могут выполняться только допустимые операции.

3) должен соблюдаться порадей и хронология доступа к операциям объекта.

Способы взаилюдейстаид объектов.

Как правило, объекты в операционных системах взаимодействуют с помощью передачи сообщений. Но это только основа, на базе которой строятся механизмы более высокого уровня — синхронный и аеппхроп-ный вызов операции. Пассивные объекты, могут использовать только синхронный вызов операции, а активные объекты — и тот и другой.

Часто синхронный вызов операции имеет форму вызова удалеппой процедуры — наиболее привычную (синтаксически и семантически) форму для программиста.

При асинхронном вызове операции возникает проблема приема обратных параметров и необходимость определять какому прямому вызову соответствуют обратные параметры.

Способы реализации операций в объекте.

Операция в объекте может быть реализована двумя способами — либо процедурой, либо оператором приема. Пассивные объекты могут использовать только процедурную декларацию. Активные объекты могут использовать оба способа.

Параллельность а объектных системах.

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

Нужна ли при этом внутренняя параллельность в объекте? Этот вопрос является дискуссионным. Объектные системы демонстрируют большое разнообразие в этом вопросе.

В диссертации утверждается, что пассивные объекты неизбежно будут иметь внутреннюю параллельность. Активные объекты могут иметь внутренний параллелизм, а могут и не иметь.

Со стсраЗ глгса онпсикаютсс оскоииие попстпс КЛОС — понятно слоггсрй, входа, группы входов, подключения н сегмента.

Кластер КЛОС является активным объектом, который содеркшт пе-потсрис данные и предоставлает набор операций для работы с этими данными. Операшш в кластере реализуются входами ц кластер. Входы объединяются и группы, которые и КЛОС считаются единицей доступа. Группы входов могут быть статическими п динамическими. Операции в статических группах являются открытыми для общего использования, а доступ к операциЕМ динамических групп возможен только под контролем цластсра-ргализатора. Доступ к г(>уппе входов обеспечивают подключения. Имев подключение к груши: входов, кластер может послать сообщение любому входу в этой группе. Подключения могут передаваться как параметры мехеду кластерами!. Для образовании подключения к соб-стсенкой группе входов нуг.ио выполнить примитив ПОДКЛЮЧИТЬ.

Обращение ко входу кластера (примитив КЛОС ПОСЛАТЬ) приводит к тому, что сообщение ставится и очередь ко входу, которая поддер-пиьлется ядром в х]ч>иологическом порядке.

Чтобы получить сообщение, кластер-реализатор долка-н выполнить примитив ПРИПЯТЬ.

На основе примитивов ПОСЛАТЬ и ПРИНЯТЬ'о КЛОС реализуются синхронный и асинхронный вызовы операций. В главе 2 приводятся примеры вызова удаленной гцюцедуры в КЛОС, асинхронного вызова операцш: в кластере и параллельной работы вызывающего кластера до получения обратных параметров и другие примеры.

Для эффективной передачи ме^лу кластерами больших массивов данных и КЛОС введено ныитис сегмента. Сегмент является массивом данных, который мо^ет бы п. открыт в виртуальной памяти кластера (примитив КЛОС ОТКРЫТ!)) н закрыт в виртуальной памяти (примитив ЗАКРЫТЬ). Каждый пимент в КЛОС имеет уникальный идентификатор, который моамт бить передан в сообщении. При этом сегмент изымается из виртуальной памяти нерс;ыюш"го кластера и может Сыть открыт л памяти принимающего кластера. При лом никакой переписи се!мента не происходит, а пегн-лачл о( ушегтвляетсл простои схнчмй приписки. Реализация тм-нпт в КЛОС существенно опирается па страничную орышплнию памяти ЭВМ.

К лап еры и К Л ОС нмеит входной и выходной интерфейс, которые описываются с использованием классов операций. Класс операций содср-

25шт определение группы операций. Кахсдая операция хшеет имя и па-бор формальных параметров. • Класс операции в целом также имеет имя. Входной интерфейс кластера описывается набором входных разъемоз, каждый из которых типизирован классом операций. Выходной интерфейс кластера описывается набором выходных разъемов также типизированных классом операций. Входные разъемы, реализуются статическими группами входов кластера. Каждая статическая группа входов реализует одни из входных разъемоз.

Из кластеров, как элементарных объектов, могут быть образованы составные объекты, которые в КЛОС называются подсистемами. Подсистема состоит из некоторого набора компонентов со статически уста-: повленнымн между ними связями. Компонентом подсистемы может служить кластер, либо другая подсистема. Каждый компонент имеет локальный приоритет о-рамках подсистемы. Этот приоритет учитывается ядром КЛОС при распределении процессорного времени.

Также как и кластер, подсистема имеет набор входных и выходных разъемов, которые определяют ее нптерфейс. Связи в подсистеме образуются в результате соединения входных и выходных разъемов компонентов. Каждый выходной разъем может быть замкнут на один и только один входной разъем компонента подсистемы, либо на один из выходных разъемов подсистемы. На каждый входной разъем может быть замкнуто несколько выходных разъемоа компонентов. Процесс замыкания связей называется компоновкой подсистемы.

Подсистема является основным структурирующим элементом КЛОС. Все прикладные программы, а также сама операционная система КЛОС являются подсистемами.

В тргтьей главе описываются примитивы ядра КЛОС, а также внутренняя организация ядра. Ядро КЛОС выполняется б привилегированном режиме при закрытых внешних прерываниях. Таким образом каждых; примитив КЛОС является атомарным.

Данные в ядре можно условно разделить на глобальные и локальные. И те и другие данные находятся в едином адресном пространстве ядра п имеют между собой перекрестные ссылки. Однако доступ к локальным данным возможен только со стороны ядра КЛОС, а доступ к глобальным данным возможен также и со стороны привилегированных кластеров. Глобальные данные образуют четыре предопределенных сегмента, в которых находятся дескрипторы кластеров, подсистем, сегментов и под-

идачспий. Сегменты предопределены в той смысле, что ох пдептпфика-торы известны до начала работы системы. Любой привилегированный кластер может открыть предопределенный сегмент о своей виртуальной памяти.

Основной структурой данных в ядре является дерево системы. Листьями d этом дереве являются дескрипторы кластеров, а промежуточными вершинами — дескрипторы подсистем. Дерево системы описывает все подсистемы и кластеры, работающие на данной ЭВМ, включая кластеры операционной системы КЛОС. Взаимодействие кластеров операционной системы между собой ничем не отличается от взаимодействия с прикладными кластерами/ В этом смысле понятие операционной системы в КЛОС несколько условно.

Дескриптор подсистемы содержит ссылки иа дескрипторы компонентов и информацию о состоянии подсистемы. Дескриптор кластера содержит описание входов, групп входов, очередей кластера, а также всю необходимую информацию для ядра, требующуюся в процессе работы кластера.

Ядро КЛОС выполняет семь общих примитивов — ПОСЛАТЬ, ПРИПЯТЬ, ПОДКЛЮЧИТЬ, ОТКЛЮЧИТЬ, ДУБЛИРОВАТЬ, ОТКРЫТЬ, ЗАКРЫТЬ, а также иесколько привилегированных — MAC-. КИРОВАТЬ, ПРИСОЕДИНИТЬ, ОТСОЕДИНИТЬ. В третьей главе описаны параметры примитивов и возвращаемые значения.

Управление процессором в ядре КЛОС основывается на локальных приоритетах подсистем и кластеров. На процессор выбирается кластер с максимальных! иекзор-прноритегом, то есть каждый локальный приоритет роденстемы, встречающейся при движении от вершины дерева к кластеру является максимальным среди множества готовых к выполнению подсистем и кластеров.

Ядро КЛОС реализовано на ЭВМ пЭлектроника-&Г>п и перенесено на рабочую станцию "Бгста-68". Кроме того, в рамках отладочной кросс-системы ядро работает под .управлением ОС liNIX Syatem V на ЭВМ "Беста-88". Удалось так реализовать ядро КЛОС в ОС UNIX, что кластеры, работающие на базе этого ядра могут без не|>еко.мпнляцни работать с ядром КЛОС на "голой" ЭВМ. Это относится ко всем прикладным кластерам и к кластерам операционной системы за исключением драйверов устройств. Таким образом почти вся отладки системы КЛОС может происходить в ОС UNIX.

В четвертой главе описаны бластеры нижнего уровня операционной системы КЛОС, п который входят кластер распределения памяти, загрузчик/ликвидатор подсистем, драйверы устройств п подсистема логических дисков.

Кластер распределения памяти (КРП) является привилегированным кластером, который занимается созданием п уничтожением сегментоз в спстсме. В данной версии КЛОС КРП также занимается распределением физической памяти ЭВМ. КРП выполняет операшга создания, уничтожения, расшпрення а копирования сегментоз.

Функции загрузки п ликвидации подсистем объединены в КЛОС в одном кластере. Это связано с тем, что загрузчик п ликвидатор разделяют общую информацию о загруженных подсистемах, которая сохраняется от момента загрузки до момента ликвидации подсистемы.

Другой особенностью динамического загрузчика КЛОС является то, что он разделен на универсальный и файловый загрузчик. Универсальный загрузчик получает подсистему в виде набора сегментов, в который входят командные сегменты кластеров подсистемы и сегменты локальных даипых, а также сегмент с описательной информацией для загрузчика. Файловый загрузчик получает подсистему в виде файла, в котором находится загрузочиый модуль подсистемы.

Необходимость в разделении загрузчика па универсальный п файловый вызвана тем, что файловая подсистема КЛОС в ответ па открытие файла динамически создает аластср-файл. При этом нельзя пользоваться файловым загрузчиком, ток как он сам пользуется файловой системой. Вместо этого файловая система КЛОС использует универсальный загрузчик.

Ядро КЛОС не обрабатывает самостоятельно прерывания от внешних устройств. При появлении прерывания ядро выполняет примитив ПОСЛАТЬ соответствующему драйверу устройства. Соответствие векторов прерывании и драйверов задастся при конфигурации системы, В настоящее время имеются драйверы дисков, терминала и таймер.

Подсистема логических дисков занимает в КЛОС промежуточное положение между нижнем уровнем и теми слоями системы, которые ужо не зависят от особенностей организации ядра. В подсистему логических дисков входят драйверы накопителей иа внешней памяти и адмшшетра-тор логических дисков, который позволяет разбивать физический том иа некоторое количество именованных логических дисков н осуществля-

ет сщгхрашшщшо захватов с оссобохсденсй логических двскоз. На база ua&cucrciibj логических днскоз построена файловая система KJIOC.

В пато.1 главе описав один цз возможных путей эмуляции ядра ОС UNIX с виде обычной подсистемы KJIOC. Эта подсистема выполняет базовый набор системных вызовов ОС UNIX, включая fork u exec. На базе этой подсистемы работал интерпретатор командного языка shell. Такшд образом осуществляется совместимость с ОС UNIX на уровне исходных текстов.

Шестая главд содерхштЛЬекоторые замечания о мобильности системы KJIOC, исходя из опьгга переноса KJIOC с 1&-тп разрядной ЭВМ "Элсктроника-вЬ" на 32 ¿Разрядную рабочую станцию "Беста-88". Ядро KJIOC оказалось весьма мобильным за исключением примитивов управления виртуальной памятью. Нижний уровень системы также был перенесен очень легко. Заново были написаны только драйверы устройств.

fi

ЗАКЛЮЧЕНИЕ

Основными результатами работы, выносимыми па защиту, являются;

1. Исследованы принципы построения ОС па основе дальнейшего развития объектио-срнептпрозашшго подхода — кластерной тератологии. Базовым объектом п этой технологии является асинхронно тшполпггто-щпнея объект — кластер, со своим неразделяемым адресным пространством, и взаимодействующий с другими кластерами посредством ш-попр. операций. Вызов операции осуществляется путем передачи сообщений.

2. Разработала новая архитектура ОС. Выделен минимальный уровень ядра ОС, обеспечивающий реализацию всех остальных функций ОС па уровне базовых объектов — кластеров. Такая архитектура сбеснсчп-вает: асинхронпость работы, инкапсуляцию данных г.защиту доступа к операциям всех кластеров, в том число и всех компонентов ОС; мобильность ОС; масштабируемость ОС.

3. Разработана поддержка системой КЛОС структурированных составных объектов-подсистем на псех уровнях функционирования ОС: загрузка, управление процессором н памятью. Разработаны механизмы динамической организации памяти (сегменты КЛОС) при параллельной и распределенной работе подсистем.

4. Разработаны и реализованы ядро и компоненты базового уровня ОС КЛОС, работающие как непосредственно на аппаратуре ЭВМ "Электроника 85" и рабочей станции ВЕСТА, так и з инструментальной кросс-системе в среде ОС UNIX па рабочей, станции БЕСТА. Разработана п апробирована технология переноса базового уровня КЛОС с одной ЭВМ па другую.

Основные результаты, диссертации изложены а следующих публикациях:

1. Бурдонов И.Б., Конытов Г.В., Косачев A.C., Кузнецов С.Д., Смирнов Ю.П., Юдин В.И. КЛОС: операционная система н технология программирования. В сб. "Вопросы кибернетики. Программное обеспечение высокопроизводительных систем". М: изд-во ИСК АН СССР, 198G, с.34-57

2. Бурдонов И.Б., Конытов П.В., Кузнецов С.Д. Структуризация асинхронных программ в кластерной операционной системе. В си. "Машнино-незавнсимые операционные системы". М: изд-по МЦНТИ, 1987, с.85-87

3. Бурдонов И.Б., Ивашшкоа В.П., Косачео А.С., Копытоа Г.В., Куз-сгдоз С.Д. Пршшшш организащш KJIOC — кластерной опсрадисшЕоа системы. Программирование., 1990, N 6, с.66-80

4. Копытов Г.В. Реализация среды ОС UNIX в кластерной операцц-* oauoi системе KJIOC. Тезисы докладов 1-й Ежегодной конференции Советской ассоциации пользователей операционной системы UNIX, 29 окт — 2 нояб. 1990, Москва, с.28-29

5. Копытов Г.В., Лешко В.И., Смирнов Ю.П. Реализация кластерной операционной системы на ЭВМ Элсктроника-85. В сб. "Вопросы кибернетика. Программное обеспечение высокопроизводительных систем". М: взд-во ИСК АН СССР, 1991, с.45-58

G. Березин Е.Г., Бурдонов И.Б., Гайсарян С.С., Копытов Г.В., Косачей А.С., Кузнецов С.Д. Основные концепции системы программирования КЛОС. В сб. "Вопросы кибернетики. Программное обеспечение высокопроизводительных систем". М: нэд-во ИСК АН СССР, 1991, с.З-24

7. Бсрезни Е.Г., Бурдонов И.Б., Гайсарян С.С., Копытов Г.В., Коса-чев А.С., Кузнецов С.Д. Система программирования КЛОС: язык СИ-КЛОС. Веб. "Воп1>осы кибернетики. Программное обеспечение высокопроизводительных систем". М: нзд-во НСК АН СССР, 1991, с.25-44

8. Burdonov I., Ivannikov V., Kopytov G., Kosachev A., Kuznetsov S. The CLOS Projcct : Towards an Object-Orientcd Environment for Application Development. Lecture Note* in Computer Science, V.504 : "Next Generation Information System Technology"., Springer-Verlag, 1991, pp.422427