Функциональная схема ОС. Модули загрузки NLM

В NetWare 2.х VAP-модули (аналоги NLM-модулей) загружаются в ОП только один раз вместе с операционной системой. Начиная с NetWare 3.х, NLM-модули могут загружаться в ОП и выгружаться из неё с консоли файлового сервера в динамическом режиме. NLM-модули - это программы, в которых используется API-интерфейс для связи со службами NetWare. Они разрабатываются, как правило, с помощью компилятора Watcom C.

Компилятор Watcom C генерирует код, использующий преимущества архитектуры процессоров 80386 и 80486. Он использует 32-битовые ближайшие указатели (near pointers) и 4-байтовые целые числа. Использование 32-битовых указателей делает концепцию моделей памяти во многом ненужной. NLM-модули компилируются для непрерывной модели памяти с абсолютной адресацией ("плоской" модели), в которой сегментация памяти гораздо менее важна, чем в других. Одного 32-битового указателя достаточно для адресации всей доступной памяти. Кроме того, компилятор генерирует код, выполняемый в виртуальном режиме.

Все NLM-модули условно можно разделить на две группы: основные (без которых не может функционировать NetWare) и дополнительные (рисунок 2.3).

Как видно из рисунка, в качестве NLM-модулей выступают программы с расширениями *.DSK, *.LAN, *.NAM, *.NLM. При загрузке NLM-модулей в ОП автоматически создаётся нить (задача), связанная с этим модулем. Нить может динамически порождать другие нити. Нити выполняются на сервере независимо друг от друга. Синхронизация между ними осуществляется с помощью семафоров.

Предыдущая глава || Оглавление || Следующая глава