64-разрядные операционные системы MS Windows

Содержание

Слайд 2

Архитектура AMD64


40-разрядные физические адреса, 48-разрядные виртуальные адреса;
шестнадцать 64-разрядных целочисленных регистров;
шестнадцать 128-разрядных регистров

Архитектура AMD64 … 40-разрядные физические адреса, 48-разрядные виртуальные адреса; шестнадцать 64-разрядных целочисленных
SSE/SSE2/SSE3;

Слайд 3

Адресное пространство Windows для архитектуры x64

Теоретически 64-разрядные процессы используют 64-битные указатели, так

Адресное пространство Windows для архитектуры x64 Теоретически 64-разрядные процессы используют 64-битные указатели,
что их максимальное ВАП равно 264 = 16 экзабайтам.
Однако в текущих реализациях архитектуры x64 размер виртуальных адресов ограничен 48 битами.
Windows не делит ВАП равномерно между активными процессами и системой, а вместо этого определяет область в адресном пространстве для процессов и других системных ресурсов памяти, таких как системные записи таблицы страниц (PTE), файловые кэши, резидентный и нерезидентный (paged и non-paged) пулы.

Слайд 4

Достоинства и недостатки 64-разрядных приложений

Главное достоинство 64-разрядной архитектуры является предоставление процессу возможности

Достоинства и недостатки 64-разрядных приложений Главное достоинство 64-разрядной архитектуры является предоставление процессу
адресации до 8 Тб ВАП.
Приложение может воспользоваться новыми регистрами процессора.
Работа с 64-разрядными числами напрямую и поддержка обработки 128-разрядных чисел по частям.

Главным недостатком 64-разрядной архитектуры является то, что одни и те же данные (и код) будут занимать больше места в памяти и на диске (из-за увеличения размера указателей, других аналогичных типов и выравнивания).
Это увеличивает размер необходимой процессу памяти, снижая эффективность кэш-памяти.

Слайд 5

Поддержка 32-разрядных приложений в 64-разрядной среде Windows

WoW64 (Windows-on-Windows 64-bit) – подсистема операционной

Поддержка 32-разрядных приложений в 64-разрядной среде Windows WoW64 (Windows-on-Windows 64-bit) – подсистема
системы Windows, позволяющая запускать 32-разрядные приложения на всех 64-разрядных версиях Windows.
Из-за наличия прослойки WoW64 32-разрядные программы работают менее эффективно в 64-разрядной среде, чем в 32-разрядной .
Однако 32-разрядные приложения могут получить одно преимущество от их запуска в 64-разрядной среде. 32-разрядная программа, запущенная на 64-разрядной системе, может адресовать почти 4 GB памяти (на практике около 3.5 GB).
WoW64 не поддерживает работу 16-разрядных приложений в 64-разрядных версиях Windows.

Слайд 6

Необходимость написания 64-разрядных приложений

Очень большие объемы обрабатываемых данных.
Необходимость поддержки совместимости (64-разрядные приложения

Необходимость написания 64-разрядных приложений Очень большие объемы обрабатываемых данных. Необходимость поддержки совместимости
работают только с 64-разрядными DLL и наоборот).
Повышение производительности приложения.

Слайд 7

Повышение производительности 64-разрядного приложения

Перекомпиляция программы для 64-разрядной системы позволит ей использовать

Повышение производительности 64-разрядного приложения Перекомпиляция программы для 64-разрядной системы позволит ей использовать
огромные объемы оперативной памяти, а также повысит скорость ее работы на 5-15%.
Повышение скорости работы на 5-10% произойдет за счет использования архитектурных возможностей 64-разрядного процессора, например большего количества регистров.
Еще 1-5% прироста скорости обуславливается отсутствием прослойки WoW64, которая транслирует вызовы API между 32-разрядным приложениями и 64-разрядной операционной системой.
Например, компания Adobe заявляет, что 64-разрядный Photoshop CS4 на 12% быстрее его 32-разрядной версии.

Слайд 8

Виртуальный адрес на платформе x64

64-разрядная Windows на платформе x64 в общем случае

Виртуальный адрес на платформе x64 64-разрядная Windows на платформе x64 в общем
применяет 4-х уровневую схему таблиц страниц.
У каждого процесса имеется расширенный каталог страниц верхнего уровня (называемый картой страниц уровня 4), содержащий 512 указателей на структуру третьего уровня – родительский каталог страниц.
Каждый родительский каталог страниц хранит 512 указателей на каталоги страниц второго уровня, а те содержат по 512 указателей на индивидуальные таблицы страниц.
Таблицы страниц (в каждой из которых 512 PTE) указывают на 4-х Кбайтовые страницы в памяти.

Слайд 9

Трансляция виртуальных адресов в x64-системах

Трансляция виртуальных адресов в x64-системах

Слайд 10

Адресация «больших» страниц на платформе x64

Если используются «большие» 2 Мегабайтовые страницы, то

Адресация «больших» страниц на платформе x64 Если используются «большие» 2 Мегабайтовые страницы,
в виртуальном адресе структура первого уровня не используется, а смещение внутри страницы занимает разряды с 0 по 20.
Кроме того, архитектура x64 позволяет использовать «сверхбольшие» страницы размером 1 Гбайт (Windows пока не поддерживает), в этом случае в виртуальном адресе структуры первого и второго уровня не используются, а смещение внутри страницы занимает разряды с 0 по 29.