Использование памяти в 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.