Использование памяти в NetWare
                                                                        

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

            Когда процесс запрашивает память, ему выделяется пул памяти.
       Этот  пул может быть освобожден,  но оставаться в пуле процессов,
       либо освобождаться и возвращаться в системный пул.

            Когда запрашивается  память,  NetWare использует три массива
       указателей, которые она может определить, где находится доступная
       память.  Эти  массивы  отслеживают узлы доступной памяти.  Первый
       массив отслеживает узлы с 16-байтовыми приращениями от 16 байт до
       1024 байт каждый.  Второй массив отслеживает узлы с 256-байтовыми
       приращениями. Третий массив отслеживает узлы, превышающие 4К. Ос-
       новываясь на размере запрошенной памяти,  NetWare выполняет поиск
       в соответствующем массиве,  пока не находит  затребованный  объем
       памяти.

            Когда память выделяется и освобождается снова и  снова,  это
       может  привести к ее фрагментации,  и некоторые блоки будут оста-
       ваться неиспользуемыми. В таких случаях выполняет некоторую рабо-
       ту  по  очистке.  Такая  "сборка мусора" (это улучшение внесено в
       версию 4) обеспечивает использование ранее недоступных блоков па-
       мяти.

            Предыдущие версии  NetWare  имели несколько пулов памяти,  с
       которыми должен был работать программист,  пишущий NLM. Теперь вы
       можете  работать  с одним системным пулом.  После того как память
       будет получена из системного пула,  каждый NLM работает со  своим
       собственным пулом памяти, пока память не возвращается в системный
       пул.

            NetWare 4.0 управляет памятью в двух режимах.  Первый -  это
       режим  операционной  системы (OS),  а второй - ориентированный на
       домены защищенный режим,  который называется защищенным  доменным
       режимом операционной системы (OSP).

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

            Когда NetWare работает в режиме памяти OS, то никаких много-
       уровневых ограничений не накладывается.  Все NLM могут обращаться
       к большей части памяти, за исключением ее критических фрагментов,
       таких как нулевая страница. В таком режиме NLM работают на уровне
       0. При работе в режиме OSP NLM, которым назначены уровни 1, 3 или
       3, проверяются на попытки перехода и подвергаются ограничениям. С
       консоли NetWare-сервера вы можете переключаться между режимами OS
       и OSP.