Операционная система NetWare



"Плоская" модель основной памяти


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

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

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

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

В NetWare 4.х внесены следующие улучшения:

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




    Содержание  Назад  Вперед