Подтвердить что ты не робот

Почему 32-разрядная ОС поддерживает 4 ГБ ОЗУ?

Просто прочитав несколько заметок в лекции

4b9b3361

Ответ 1

Поскольку 32 бита могут представлять числа до 2 32 - 1 = 4294967295 = 4 GiB - 1 и, следовательно, адресовать до 2 32 отдельных байтов, которые будут 4 GiB затем.

Есть способы обойти это. Например, используя PAE, даже 32-разрядная операционная система может поддерживать больше памяти. Исторически это чаще всего использовалось на серверах. Кроме того, не серверные Windows SKU не поддерживают его. В настоящее время все это спорный вопрос, хотя, учитывая, что 64-битные процессоры, операционные системы и поддержка драйверов являются обычным явлением.

Ответ 2

Потому что каждый байт памяти должен иметь адрес. В 32-разрядной операционной системе адрес имеет длину 32 бита; Таким образом, существует 2 ^ 32 возможных адреса, что означает, что существует 2 ^ 32 байта = 4 ГБ.

Ответ 3

Все говорят 2 ^ 32 = 4GiB, что правильно. На всякий случай, вот как мы добрались туда:

32-разрядная машина использует 32 бита для адресной памяти. Каждый бит имеет значение 0 или 1. Если у вас 1 бит, у вас есть два возможных адреса: 0 или 1. Двухбитовая система (штраф в сторону) имеет четыре возможных адреса: 00 = 0, 01 = 1, 10 = 2, 11 = 3. 2 ^ 2 = 4. Три бита имеют 8 возможных адресов: 000 = 0, 001 = 1, 010 = 2, 011 = 3, 100 = 4, 101 = 5, 110 = 6 и 111 = 7.

Каждый бит удваивает потенциальное адресное пространство, поэтому 2 ^ n сообщает вам, сколько адресов вы используете для заданного количества бит. 2 ^ 1 = 2, 2 ^ 2 = 2 * 2 = 4, 2 ^ 3 = 2 * 2 * 2 = 8 и т.д.

К тому времени, когда вы доберетесь до 32 бит, вы достигнете 4GiB.

Ответ 4

4 ГБ = 2 ^ 32 байта.

Ответ 5

Если у вас есть 4-битная система, это означает, что адрес для каждого байта равен 4 двоичным цифрам, вероятность того, что ваш адрес будет в диапазоне от 0000 до 1111 что равно 2^4 = 16 (2, потому что есть либо 0, либо 1)., с четырьмя битами можно создать 16 различных значений нулей и единиц, если у вас есть 16 различных адресов. каждый представляет byte тогда вы можете иметь максимум 16 bytes

4-битная система будет выглядеть так:

enter image description here

Для 32-битной системы ваш максимум составляет 2^32 = 4294967292 bytes

Ответ 6

2 ^ 32 = 4 * 1024 * 1024 * 1024

Это, в байтах, определение 4 ГБ. Другими словами, 32-разрядный регистр в качестве указателя памяти может адресовать 4 ГБ памяти и не более.

Ответ 7

Собственно, это не так просто, как 2 ^ 32 = 4294967296 байт. Вы видите в защищенном режиме x86, с включенным пейджингом (то есть тем, что вы получаете, когда используете какую-либо современную ОС), вы не адресуете места памяти напрямую, даже если механизм перевода поискового вызова прозрачен для клиентских приложений.

Из логического 32-битного адреса памяти при использовании страниц 4K:

  • биты 22-31 относятся к каталогу страниц
  • биты 12-21 относятся к таблице страниц
  • бит 11-0 ссылаются на смещение на странице 4096 байт

Как вы можете видеть, у вас есть каталоги на 2 ^ 10 (1024) страниц, в каждом каталоге страниц у вас есть 2 ^ 10 таблиц страниц, а каждая страница составляет 2 ^ 12 (4096) байтов, следовательно 2 ^ 32 = 4294967296 байт. Ширина шины памяти обычно такая же, как длина слова процессора, но совсем необязательно быть таким. Фактически, более современные процессоры x86 поддерживают PAE, который позволяет адресовать более 4 ГБ (или GiB) даже в 32-битном режиме.

Ответ 8

Потому что количество различных адресов памяти (в байтах), которые могут быть сохранены в Word.

Но на самом деле это не всегда верно (в большинстве случаев это не так), ОС может обрабатывать больше физической памяти, чем это (с PAE), и приложения могут использовать менее 4 ГБ виртуальной памяти (поскольку часть этой виртуальной памяти сопоставляется с ОС, 1 ГБ в Linux и 2 ГБ в Windows, например).

Другой сценарий, когда это не применяется, - это то, что память была адресована словами вместо байтов, тогда общая адресуемая память будет 16GB, например.

Ответ 9

В основном из-за 32-битной ОС, поддерживающей только адреса 2 ^ 32-1.

Если у ЦП имеется более 32 адресных строк на FSB, 32-разрядная ОС может выбрать механизм пейджинга для доступа к более чем 4GiB. (Например, выпуски Windows 2000 Advanced Server/Data Center на PAE поддерживали чипы Intel/AMD)

Ответ 10

  1. 32 бита s могут представлять числа 0..2^32= 0..4,294,967,296
  2. 32 бит с может адресовать до 2 ^ 32 B ytes (предполагается, что блоки Байт размера)
  3. 2 ^ 32 B ytes это максимальный размер

2 ^ 32 B= 4 194 304 КиБ= 4 194 МиБ= 4 ГиБ

Ответ 11

4 ГБ = 2 ^ 32 байта. Но помните его максимальный 4gb, выделенный 32-битной ОС. В действительности, ОС будет видеть меньше, например, после размещения VRAM.

Ответ 12

Как уже отмечалось другими пользователями, 32-разрядные ОС Windows используют 32-разрядные слова для хранения адресов памяти.

На самом деле, большинство 32-битных чипов в наши дни используют 36-битную адресацию, используя модель расширения физического адреса Intel (PAE). Некоторые операционные системы поддерживают это напрямую (например, Linux).

Как отмечает Раймонд Чен, в Windows 32-разрядное приложение может выделять более 4 ГБ памяти, и вам не нужны 64-битные Windows для этого. Или даже PAE.

В этом случае 64-разрядные чипы не поддерживают все 64-битное пространство памяти. Я считаю, что в настоящее время они ограничены 42-битным пространством... 36-битное пространство, которое использует PAE, плюс верхние 8-битные адреса,