Почему OSs на 32 бита не может обратиться к больше, чем 3.2/3.2 ГБ памяти?

Не знайте - ли это правильное место для задавания этого вопроса.

Я читал, что OSs на 32 бита (как Ubuntu, которую я запускаю прямо сейчас) не может адресовать больше чем 3.2 ГБ или 3.3 ГБ Оперативной памяти.

Я помню за свой старый курс Архитектуры ЭВМ, что ограничение памяти было 2^32 "указатели" (не помните правильное слово). Я имею в виду, память была представлена как массив, где ЦП может получить доступ к ней непосредственно, но до его предела. Если ЦП составляет 32 бита, то он может обратиться 2^32 слова, если это - 64 бита 2^64 и т.д.

Так, если то, что я сказал прежде, правильно, затем, моя ОС должна смочь обратиться 2^32 = 4294967296 = 4 ГБ.

Я думаю, возможно, что своего рода пространство резервируется к конкретному использованию Ядра, кэша, буферизуя или подкачивая. Но не имейте корректного ответа.

Можно ли дать мне подсказку?

7
задан 20.11.2010, 10:04

5 ответов

Windows использует некоторые аппаратные адреса, предназначенные для обращения к памяти, для других аппаратных средств (как USB, SATA, Дисковые контроллеры, безотносительно). Таким образом, некоторые из тех аппаратных адресов не могут использоваться для Вашей памяти. Следовательно предел.

К моему знанию, Unix/Linux адрес CAN немного больше, чем предел на 3.2 ГБ Windows. Это вызвано тем, что Linux использует другую схему адресации.

Существует также функция под названием PAE (Расширение физического адреса), которое заставляет 32-разрядные Ose использовать больше чем 4 ГБ.

10
ответ дан 07.12.2019, 14:31

Это имеет отношение к памяти, которую BIOS должен зарезервировать для базовых процессов как передача данных устройствам и видеопамяти. Память выше приблизительно 3.2 ГБ (это варьируется от системы до системы, я видел 3.6 ГБ, и 3.1 ГБ) повторно отображается по границе на 4 ГБ, где PAE требуется, чтобы получать доступ к нему. Различные системы обрабатывают этот случай по-другому. Некоторые системы не потрудились получать доступ к нему, давая только 3.2ish ГБ RAM для процессов. Другие просто беспрепятственно используют PAE, который медленнее для процессов.

5
ответ дан 07.12.2019, 14:31

PAE не является стандартным в 2,6 ядрах Linux.. Но это поддерживается выше 2.3.23 ядер..

PAE позволяет использование также 64 ГБ поршня в системе на 32 бита, Однако ограничивающей единственный процесс 32 битами пространства.. и неисправность производительности полный / не только для использования выше 4 ГБ..

Я должен был изменить некоторые растущие операционные системы баз данных на 64 бита, таким образом, MySQL мог использовать в своих интересах установленную RAM.. Различие в скорости было примечательно :D

Смотрите здесь http://en.wikipedia.org/wiki/Physical_Address_Extension#Linux

3
ответ дан 07.12.2019, 14:31

Ваша 32-разрядная ОС может обратиться к 4 ГБ RAM однако, архитектура ПК означает, что Видеопамять и много других ресурсов с отображенной памятью так не, все то адресное пространство является бесплатным для использования в качестве обычной RAM.

1
ответ дан 07.12.2019, 14:31

== Вне темы ==

Это напоминает мне о старости DOS, где компьютер мог только видеть 640k RAM даже при том, что больше могло бы быть установлено. Даже при том, что архитектурно 2^20 байты (1024k), где доступный вершина 384k (верхняя область памяти) могла только быть обращена с приемами.

0
ответ дан 07.12.2019, 14:31

Теги

Похожие вопросы