#operating-system #ram #32-bit
#операционная система #ОЗУ #32-разрядная
Вопрос:
Почему операционная система из 32 бит имеет ограничение в 4 ГБ ОЗУ ?. Я знаю, что у процессора есть регистр, ПК (счетчик программ), где находится адрес инструкции, и если этот регистр имеет 32 бита, это аппаратное ограничение из-за размера регистра. Но почему операционная система из 32 бит имеет это ограничение? В его ядре закодировано, что максимальная доступная оперативная память может составлять 2 экспоненциальных 32 бита?
Спасибо
Комментарии:
1. Да, для 32-разрядной операционной системы это жестко запрограммировано в ядре.
Ответ №1:
Почему операционная система из 32 бит имеет ограничение в 4 ГБ ОЗУ?
Вероятно, это не так.
«32-разрядный» обычно относится к размеру регистров общего назначения и может не иметь ничего общего с размером любого адреса. Например, для современных 64-разрядных операционных систем адреса часто имеют только 48 бит.
Кроме того; большинство операционных систем используют некоторую форму подкачки, где размер виртуального адреса может не иметь ничего общего с размером физического адреса. Например; для 32-разрядной версии 80×86 с использованием PAE (расширения физических адресов); виртуальные адреса ограничены 32-разрядными (в результате чего каждый процесс ограничен 4 гигабайтами «виртуального пространства», за вычетом резервов ядра для себя); но физические адреса равны / были 36 бит (что дает ограничениеиз «до 64 ГБ ОЗУ, минус пространство, используемое для устройств, ПЗУ и т. Д.»).
Даже когда размер физического адреса 32-разрядный, существуют другие аппаратные ограничения — например, некоторые из этих битов могут игнорироваться аппаратным обеспечением и / или использоваться для других целей (например, один бит используется в качестве флага «шифровать ОЗУ или нет») и / или не поддерживается контроллером ОЗУ; и часть физического адресного пространства должна использоваться вещами, которые не являются ОЗУ (ПЗУ, устройствами и т. Д.); Поэтому крайне маловероятно, что «32-разрядные физические адреса» будут означать «максимум 4 ГБ ОЗУ».
Наконец, аппаратное обеспечение может поддерживать переключение банков, когда ОЗУ разделяется на банки, и некоторые банки отображаются в физическое адресное пространство, а другие — нет; и где «какие банки выбраны» контролируется ОС с помощью специального оборудования. Это было очень распространено для 8-разрядных и 16-разрядных процессоров (например, карты «расширенной памяти», подключаемые к слоту ISA в ПК в начале 1980-х годов); но стало значительно менее распространенным, поскольку размеры физических адресов увеличились.
Ответ №2:
Ограничение связано с тем, что в 32-разрядных архитектурах вы ссылаетесь на адреса в памяти, используя 32-разрядные адреса. Таким образом, это означает, что в 32-разрядной архитектуре вы можете ссылаться только на 2 ^ 32 адреса. Далее нам нужно принять во внимание, что каждый адрес означает, что мы ссылаемся на один байт, который равен 8 битам. Это означает, что фактически мы можем ссылаться на 2 ^ 32 * 8 бит
Теперь давайте перейдем к математической части ответа. Если вы можете ссылаться на 2 ^ 32 * 8 бит, то вы можете ссылаться на 2 ^ 35 бит и 2 ^ 35 = 34359738368 бит = 4294967296 байт = 4194304 килобайт = 4096 мегабайт
И именно поэтому вы можете ссылаться только на 4 ГБ памяти на 32-разрядных компьютерах.