-1

Я знаю, что 32-разрядные машины не могут использовать более 4 ГБ ОЗУ, поскольку они не могут адресовать столько адресов памяти.

Однако я не понимаю, почему почти все 32-разрядные операционные системы, включая Windows 7, не могут использовать более 3,25 ГБ

2 ^ 32 = 4294967296 бит, что составляет 4 ГБ ОЗУ. Однако на моей машине указано, что можно использовать только 3,25 ГБ. Почему нельзя использовать остальную часть ПАМЯТИ?

Я не спрашиваю, как это можно сделать. Я хочу знать, почему именно 3,25 ГБ. Как рассчитывается это значение? Откуда это взялось ?

1 ответ1

1

32-разрядная клиентская версия Windows имеет физическое адресное пространство 4 ГБ. Было бы хорошо, если бы все это пространство можно было использовать для оперативной памяти, но это не так. Часть этого адресного пространства используется для аппаратных устройств с отображенной памятью. Процессор может обмениваться данными с этими устройствами, читая или записывая их адресное пространство так же, как это происходит с оперативной памятью. Существуют и другие доступные методы, но оборудование с отображением памяти работает намного быстрее, что важно для высокопроизводительных устройств, таких как видеосистемы. Обычно устройства с отображенной памятью потребляют от 0,5 до 1 ГБ, но в некоторых случаях могут быть более или менее.

Вы не можете иметь 4 ГБ ОЗУ и устройства с отображением от 0,5 до 1 ГБ в одном и том же 4 ГБ адресном пространстве. Это просто не подходит. Таким образом, все пространство, используемое для аппаратных устройств, не доступно для оперативной памяти. Если у вас 3 ГБ или меньше ОЗУ, обычно есть свободное адресное пространство, и ОЗУ не теряется.

Если адресное пространство, используемое для аппаратных устройств, вычитается из 4 ГБ, то для оперативной памяти остается от 3 до 3,5 места. 3,25 ГБ просто типично, а число часто цитируется.

Я полагаю, что все это можно было бы сделать по-другому, но это усложнило бы дизайн, а адресное пространство в 4 ГБ в то время было огромным. Изменение его сейчас будет иметь серьезные проблемы с совместимостью. И у нас уже есть намного лучшее решение в использовании 64-битной ОС. 64-битная ОС имеет гораздо большее адресное пространство, поэтому здесь достаточно места для всего.

PAE часто предлагается в качестве решения. Это особая настройка, которая позволяет значительно увеличить физическое адресное пространство. Конфликтующее ОЗУ может быть адресовано выше 4 ГБ, где оно может быть адресовано. Эта опция поддерживается 32-битными серверными операционными системами. Проблема заключалась в том, что многие драйверы устройств вели себя очень плохо в такой среде с очень печальными результатами, такими как сбои или повреждение данных. По этой причине клиентские системы просто игнорируют объем оперативной памяти выше 4 ГБ. Это стало лицензионным ограничением и применяется в ядре.

Поскольку PAE не работает в клиентских системах, а 32-битные серверы практически устарели, это, по сути, мертвая проблема.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .