Основы компьютерной памяти

Основы компьютерной памяти

При объеме основной памяти 2 ГБ какая самая большая программа может быть доступна процессору при поддержке 32-битной адресной шины?

решение1

Если у вас 32-битное адресное пространство, то вы можете адресовать 2^32 (4Gi) байт памяти. Что касается программы, работающей в виртуальном адресном пространстве, я не вижу причин, по которым она не могла бы адресовать и получать доступ к памяти объемом 4GiB.

Это предполагает несколько вещей, таких как ОС, которая использует виртуальную память, возможно, некоторое аппаратное обеспечение (MMU) для помощи и т. д. Но для любого современного 32-битного ЦП и любой современной ОС это не должно быть проблемой. Все современное поддерживает подкачку, поэтому оно должно иметь только часть этих 4GiB, к которой в данный момент осуществляется доступ в физической памяти.


Вот вам и общий ответ, теперь ответ для Windows и x86.

Windows (начиная с эпохи win2000?) использует виртуальную память и подкачку. Она также по умолчанию делит адресный диапазон 4Gi пополам. Верхняя половина для ядра, нижняя половина для пользовательских программ. Это накладывает искусственный предел в 2GiB адреса для пользовательских программ или 3GiB, когда вы загружаете ядро ​​в специальном режиме и используете программы LARGEADDRESSAWARE.

Это ограничит ваши пользовательские программы этим.

Затем есть PAE, искусственно расширяющий шину памяти до 36 бит. PAE — это уродливая ерунда, не нужная с 64-битными процессорами (которые были обычным явлением в течение последних двух десятилетий).

Это превращается в пост типа «что если», а затем «ответ X». А это значит, что было бы неплохо задать более конкретный вопрос.

решение2

Теоретически это может составить 2 ГБ, но часть из них будет зарезервирована и/или использована самой ОС.

Обратите внимание, что 32-битные процессы также ограничены 2 ГБ, даже если вы запускаете их на 64-битной ОС, если только они не были намеренно переработаны. Если переработаны с учетом IMAGE_FILE_LARGE_ADDRESS_AWARE, ограничение становится,по данным MSDN, 3ГБ.

Связанный контент