Архитектура ядра Windows NT 5.0

         

Управление памятью большой емкости


В Windows NT 5.0 добавлено расширение VLM (Very Large Memory), позволяющее непосредственно адресовать 28 Гбайт оперативной памяти компьютеров на платформе Alpha. Сейчас VLM не предназначается для семейства процессоров х86, но в Microsoft готовят единую 64-разрядную версию NT для платформ Alpha AXP и будущей архитектуры Intel IA-64.

В NT 4.0 поддерживалась 64-разрядная адресация в операциях ввода/вывода, но каждый процесс все же ограничивался использованием 2-гигабайтного пространства (3 Гбайт для Windows NT Server Enterprise Edition). В 1997 году Microsoft объявила о своем намерении создать полную 64-разрядную версию NT, имея в виду, что каждый 64-разрядный процесс будет наделен адресным пространством по крайней мере в 512 Гбайт. Причина перехода к 64-разрядной платформе та же, что и для перехода от 16-разрядных систем к 32-разрядным - это постоянно возрастающие требования к хранению и обработке огромных объемов данных в памяти компьютеров.

VLM позволяет использовать в приложениях 64-разрядные указатели, получая, таким образом, прямой доступ к адресному пространству свыше 2 Гбайт. Это необходимо для удовлетворения нужд приложений, работающих с большими объемами информации (например, СУБД), для которых ограничение адресного пространства цифрой 2-3 Гбайт неприемлемо. Для адресации 28 Гбайт памяти и использования 64-разрядных указателей на системах Alpha в версию языка Visual C++ 5.0 добавлены указатели _ptr64 и небольшой набор новых интерфейсов Win32 API для работы с ними. В 64-разрядной версии NT будет использоваться программный интерфейс Win64, обеспечивающий перенос приложений с Win32 и компиляцию исходного кода в двоичный как в 32-разрядном, так и в 64-разрядном режимах. Предполагается, что "младший" режим будет использоваться для выполнения существующих 32-разрядных приложений на платформах Alpha и Merced, а новые 64-разрядные приложения будут выполняться уже в "родном" 64-разрядном режиме. Однако одновременная смесь двух режимов в одном процессе допускаться не будет.

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




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